我想知道如何解决我的应用在 Android 上的高内存使用问题。我搜索了互联网,发现 DDMS 插件在为我的应用程序获取堆的内存转储方面很有用。然而这已经没有用了。
应用程序“Usage Timelines Free”显示使用了 94 MB 的内存,而 DDMS 堆转储显示总共 8.4 MB,疑似泄漏是资源文件。
当我从 adb (dumpsys meminfo) 生成转储时,我得到:
Shared Private Heap Heap Heap
Pss Dirty Dirty Size Alloc Free
------ ------ ------ ------ ------ ------
Native 20 8 20 54588 39431 1892
Dalvik 6732 9952 6396 10756 10028 728
Cursor 0 0 0
Ashmem 184 0 184
Other dev 11462 1172 11384
.so mmap 2467 2072 1156
.jar mmap 0 0 0
.apk mmap 48 0 0
.ttf mmap 2 0 0
.dex mmap 1037 0 0
其他地图 41 16 32
Unknown 46352 292 46348
TOTAL 68345 13512 65520 65344 49459 2620
我怎么知道这个巨大的内存消耗背后是什么。我的应用程序是一个永久运行的前台监控服务,其中有一些每天访问几次的活动。
谢谢。