14

我正在尝试处理我的 Android 应用程序遇到的一些问题,我认为这些问题与我在显式“前台”模式 (Service.startForeground) 下运行时的内存压力有关。

为了调试它,我需要对我的应用程序施加内存压力,我可以通过各种方式来做到这一点,例如启动各种其他应用程序,例如带有大量网页的 Firefox。然而,这并不理想,因为它仍然相当耗时且不精确。所以我的问题是,有没有办法使用调试器(例如在 Eclipse 下)或专门为此目的的特殊应用程序来强制内存压力?我宁愿不绕道自己写一个,显然在我自己的应用程序中分配内存是行不通的。

更新:更改标题以反映我需要设备上的实际内存压力,而不是在仿真中。

4

1 回答 1

1

编辑:(考虑到克里斯托夫的评论)

你可以制造人为的记忆压力。为此,请在 MainActivity 中创建一个按钮。然后,在按钮的onClick方法中,创建 10,000 个对象(实验不同数量的对象)。然后,当您的应用程序运行时,多次单击该按钮会产生很大的内存压力。

代码可能如下所示:

class MainActivity {
    ArrayList<String> stringArray = new ArrayList<>();

    ...

    public void click(View view) {
        // Add 10,000 String objects to Array List

        for (int i = 0; i < 10000; i++) {
        stringArray.add("A string");
        }
    }
}

假设您将按钮的onClickXML 属性设置为click.

于 2015-04-21T05:39:15.673 回答