当我在 android 4.2 上运行“adb shell dumpsys meminfo”时,我得到的结果如下
Shared Private Heap Heap Heap Pss Dirty Dirty Size Alloc Free ------ ------ ------ ------ ------ ------ Native 28 8 28 16404 12256 3663 Dalvik 14062 10060 13736 20032 15254 4778 Cursor 0 0 0 Ashmem 0 0 0 Other dev 4762 9556 0 .so mmap 11699 1824 1500 .jar mmap 0 0 0 .apk mmap 368 0 0 .ttf mmap 811 0 0 .dex mmap 3736 0 0 Other mmap 114 16 32 Unknown 12064 544 12052 TOTAL 47644 22008 27348 36436 27510 8441
我已阅读如何在 Android 中发现我的应用程序的内存使用情况?,但仍有几个问题:
- 为什么原生Pss、shareddirty、privatedirty很少?
- 堆大小应该小于 Pss?
- 未知是什么意思?看起来很大。
- 如果我想知道我的应用程序使用了多少内存,我应该使用哪些数据?总Pss?但它不包括接近于零的原生 Pss?