【发布时间】:2013-04-16 21:36:22
【问题描述】:
这发生在使用自定义构建的 Android 4.0.2 平台的嵌入式系统上。我看到我们的一个 android 活动应用程序增长到大约 400MB(调用“ps”时的 rss 大小)并被 Linux OOM 杀手杀死。 android 平台配置为最大堆大小设置为 62M。我不知道 Dalvik VM 如何让活动增长到 400MB。
当堆达到大约 60MB 时,应用程序不应该让 Java 出现内存不足异常吗? 我们在 logcat 日志或 anr 跟踪中看不到这些 Java 异常。
我们实现了一个示例活动,它按顺序分配字节数组并将每个字节设置为一个虚拟值。当活动分配大约 60MB 时,我们确实会看到内存不足异常。
android 中是否存在不计入堆预算的分配路径? 该活动呈现从网站下载的位图 png。
以下是我们平台上的“getprop”结果。
$ adb shell getprop | grep -i 堆
感谢任何指点。
谢谢
编辑: 笔记: 下面是ps输出。 Pss 和 Uss 大约是 316M 左右。
PID Vss Rss Pss Uss 命令行 logcat: hd[0]: pexecd(65): 982 351512K 351316K 326300K 316632K mytest.home^M logcat: hd[0]: pexecd(65): 660 679916K 61044K 57200K 56952K ./videngine^M RAM:总共 741764K,20320K 空闲,2148K 缓冲区,80104K 缓存,24964K shmem,10368K 平板【问题讨论】:
标签: android out-of-memory