【问题标题】:Android Simulator: Easy way to simulate a process restart due to low memory?Android模拟器:由于内存不足而模拟进程重启的简单方法?
【发布时间】:2012-02-01 09:32:13
【问题描述】:

正如我刚刚了解到的,Android 保留随时终止后台应用程序进程以回收 RAM 的权利。应用程序仍在运行并且可以恢复,但是我所有的静态变量都消失了(参见this 文章)。

我想模拟我的应用在这种情况下的行为。最简单的方法是什么?肯定有比编写一些分配大量内存的附加应用程序更容易和更可预测的方法。

【问题讨论】:

标签: android memory process emulation multitasking


【解决方案1】:

发现两个类似的问题Simulate killing of activity in emulatorSimulate low battery & low memory in Android

这些问题的解决方案:

  • 使用adb shell,然后使用killPID 来自ps 的进程
  • 使用DDMS 杀死它

【讨论】:

    【解决方案2】:

    简短回答:如果您使用的是模拟器,请更改方向。如果使用实际设备,请转到设置-> 开发人员选项-> 不保留活动来更改设置。

    详细解释见我对thisthis的回答。

    【讨论】:

    • 谢谢!下次我更新我的 Android 应用程序时,我会检查一下。
    • 这会测试配置更改 - 而不是重新启动进程。这是两个不同的东西。
    • 不保留活动不会破坏全局应用上下文,我们希望能够破坏全局应用上下文,以便在重新运行时它会尝试从应用程序 onCreate() 开始并启动最后打开的活动
    【解决方案3】:

    另一种方法是为您的包构建一个调用killBackgroundProcesses() 的超级基本应用程序,因为这种方法“与内核杀死这些进程以回收内存相同;系统将在未来需要。”

    【讨论】:

      【解决方案4】:

      要终止后台进程(但仍通过历史记录重新启动),您可以在模拟器或设备上使用活动管理器 shell 命令:

      $ adb shell am kill com.my.package
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-20
        • 1970-01-01
        • 2020-07-13
        • 1970-01-01
        • 2011-05-15
        相关资源
        最近更新 更多