【问题标题】:how to eat up all the android memory in an android application?如何在一个android应用程序中吃掉所有的android内存?
【发布时间】:2014-04-29 01:26:44
【问题描述】:

最近,我正在测试安卓设备交换分区的性能。我需要占用测试应用程序中的所有内存(可以具有root权限),以便可以换出一些页面。 我怎样才能做到这一点?谢谢。

【问题讨论】:

    标签: android memory root


    【解决方案1】:

    由于您可以使用 ADB 并拥有busybox,因此您可以使用一个 shell 脚本来分配内存,直到内存耗尽。

    参考Write a bash shell script that consumes a constant amount of RAM for a user defined time

    从那个答案中撕下来:

    #!/bin/ash
    
    echo "Provide sleep time in the form of NUMBER[SUFFIX]"
    echo "   SUFFIX may be 's' for seconds (default), 'm' for minutes,"
    echo "   'h' for hours, or 'd' for days."
    read -p "> " delay
    
    echo "begin allocating memory..."
    for index in $(seq 1000); do
        value=$(seq -w -s '' $index $(($index + 100000)))
        eval array$index=$value
    done
    echo "...end allocating memory"
    
    echo "sleeping for $delay"
    sleep $delay
    

    【讨论】:

      【解决方案2】:

      将一堆位图加载到内存中,没有弱引用

      位图 b = BitmapFactory.decodeResource(R.drawable.someresource, null);

      或者如果你想从磁盘加载

      位图 b = BitmapFactory.decodeFile(filenamestring);

      【讨论】:

      • 很有启发性,我正在尝试使用[新]
      • 我很确定他们想要使用系统中的所有内存,而不仅仅是应用程序。当它达到应用程序的限制时,这将给出内存不足的异常。
      • 你知道有多少关于这个问题的“内存不足错误”的帖子吗?
      • 我觉得系统不会让他吃光系统内存的。仅适用于应用程序本身。根据设备的不同,它可以从 40 兆到 1GB 不等
      • 我同意,这意味着这个答案没有回答问题。
      猜你喜欢
      • 2021-03-24
      • 1970-01-01
      • 2011-07-12
      • 2017-10-09
      • 1970-01-01
      • 2011-08-08
      • 2019-03-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多