当前标签 / adb / 总共1篇

Android 查看内存指令

问题

最近在项目中遇到一个 Low on memory 内存过高导致应用退出问题,其中使用了一些内存查看命令,这里做一个记录,错误日志如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
I/ActivityManagerService(  443): Low on memory:
I/ActivityManagerService(  443):   ntv   N     4118 kB: zygote (pid 161) native
I/ActivityManagerService(  443):   ntv   N     2814 kB: surfaceflinger (pid 142) native
I/ActivityManagerService(  443):   ntv   N     1986 kB: logd (pid 136) native
I/ActivityManagerService(  443):   ntv   N     1925 kB: mediaserver (pid 157) native
I/ActivityManagerService(  443):   ntv   N     2749 kB: (Other native)
I/ActivityManagerService(  443):   sys   P    24827 kB: system (pid 443) fixed
I/ActivityManagerService(  443):   pers  P    37707 kB: com.android.systemui (pid 612) fixed
I/ActivityManagerService(  443):   pers  P    13423 kB: com.android.phone (pid 819) fixed
I/ActivityManagerService(  443):   pers  P     8760 kB: com.android.inputmethod.latin (pid 706) fixed
I/ActivityManagerService(  443):   pers  P     5996 kB: android.process.media (pid 575) fixed
I/ActivityManagerService(  443):   pers  P     3577 kB: com.cghs.stresstest (pid 796) fixed
I/ActivityManagerService(  443):   fore  T   153394 kB: com.dlc.huishouxiang (pid 24324) top-activity
I/ActivityManagerService(  443):             261276 kB: TOTAL
I/ActivityManagerService(  443):   MemInfo: 25032 kB slab, 140 kB shmem, 379704 kB vm alloc, 7532 kB page el stack
I/ActivityManagerService(  443):            132 kB buffers, 86556 kB cached, 42500 kB mapped, 180476 kB free
I/ActivityManagerService(  443):   ZRAM: 5652 kB RAM, 520908 kB swap total, 503928 kB swap free
I/ActivityManagerService(  443):   Free RAM: 224664 kB
I/ActivityManagerService(  443):   Used RAM: 677980 kB
I/ActivityManagerService(  443):   Lost RAM: 1158732 kB
I/ActivityManagerService(  443): Start proc 3350:com.android.smspush/u0a43 for service com.android.smspush/.WapPushManager

从日志上 18 ~ 20 行看 Lost RAM 占用太大了,而 Used RAM 占用并不大。

Free RAM:为剩余内存。

Used RAM:为用户态使用总内存。

Lost RAM:为内核态使用内存,比如 OpenGL 纹理内存、GPU 占用内存、图形显示 ION buffer 都包含在 Lost RAM 里,从字面意思是理解它是丢失的内存,也就是说它是操作系统无法解释和正常利用的内存。

其中 Lost RAM = TotalRAM - FreeRAM - UsedRAM 也可以理解为其他内存。

阅读更多