Android 之内存初次亲密接触

84 阅读1分钟

在今天的时候,公司因为要使用一块小的低版本开发板运行程序,所以出现了这个情况.


错误:

image.png 之后多次搜索 SuspendAll starting 但是没有搜索到相关的内容,所以再次转换思维,搜索起了 GC_FOR_ALLOC,终于在一番搜索之下找到相关的内容,

LOG信息描述
freed 836K此次回收1063K
27% free可用内存空间15%
9653K/13116K活跃对象与总大小具体指
paused 101ms暂停进行垃圾回收用时29ms
total 104ms总用时30ms

发现这个问题之后,首先查看的是运行线程的数量

指令: adb shell -> ps -> cat proc/{pid}/status -> cat /proc/sys/kernel/threads-max


查看应用使用内存大小

之后使用 adb shell 在terminal 查看获得以下结果:

  • small 394408 kb
  • big 1040368 kb

所以,得出内存不足造成 dalvikvm 虚拟机触发gc垃圾回收导致应用无法运行的问题. 注:

  1. shell 指令使用的是 adb shell -> top
  2. 内容参考 CSDN 获得
  3. 查看运行线程CSDN