Android 开机内存分析
时间: 2024-05-04 09:14:32 浏览: 245
android内存分析
要对Android开机时的内存进行分析,可以使用以下方法[^1]:
1. 首先,通过adb shell命令获取系统当前内存状态。可以使用以下命令:
```
adb shell cat /proc/meminfo
```
该命令可以输出系统的内存信息,包括总内存、空闲内存、缓存等。
2. 如果机器在运行的过程中MemAvailable持续减小,就可以怀疑系统中存在内存泄漏。但是并不是MemAvailable减小就一定存在内存泄漏,还要进一步分析减少的内存被什么占用了。可以使用以下命令获取内存占用信息:
```
adb shell cat /proc/meminfo | grep "Active(anon)\|Inactive(anon)\|SUnreclaim"
```
该命令可以输出Active(anon)、Inactive(anon)和SUnreclaim所占用的内存情况。其中,Active(anon)+Inactive(anon)所占用的内存增加,说明用户进程占用的内存增加。如果SUnreclaim所占用的内存增加,说明kernel占用的内存增加。
3. 知道了减少的内存是被用户进程还是kernel占用之后,要分析是哪个用户进程或内核哪部分占用了内存。可以使用以下命令:
```
adb shell dumpsys meminfo
```
该命令可以输出每个进程的内存占用情况,包括Native Heap、Dalvik Heap等。
4. 如果需要进一步分析某个进程的内存占用情况,可以使用以下命令:
```
adb shell dumpsys meminfo <pid>
```
其中,<pid>为进程的ID号。
另外,如果需要分析slab占用情况,可以使用以下命令:
```
adb shell cat /proc/slabinfo
```
该命令可以输出所有slab的信息,包括名称、对象大小、分配情况等。
阅读全文