这是一个android gdx游戏项目,我觉得不是很重要,可能是。我的应用程序有两个.so
文件:gdx.so
和freetype.so
. 现在原生层出现了严重的内存泄漏。
我试图adb shell am dumpheap -n
转储本机内存堆并使用native_heapdump_viewer.py
谷歌来解析它,就像文档说的那样。然后发生了一个奇怪的问题。
这是已解析堆的一部分:
BYTES. %TOTAL %PARENT COUNT ADDR. LIBRARY. FUNCTION LOCATION
150995808 32.70% 100.00% 72 e22ca701 /apex/com.android.art/lib/libart.so ??? ???
150995808 32.70% 100.00% 72 e2114392 /apex/com.android.art/lib/libart.so ??? ???
150995808 32.70% 100.00% 72 e207faf2 /apex/com.android.art/lib/libart.so ??? ???
150995808 32.70% 100.00% 72 e2086132 /apex/com.android.art/lib/libart.so ??? ???
150995808 32.70% 100.00% 72 [!HERE!]-> b89d73c8 /data/app/~~Gc8PoEgh7qxkd3ami6f_zQ==/com.example.mobile-WN4rRCxbP9Pu00JRJ5XLpA==/base.apk ??? ???
150994944 32.70% 100.00% 36 [!HERE!]-> b89dc2dc /data/app/~~Gc8PoEgh7qxkd3ami6f_zQ==/com.example.mobile-WN4rRCxbP9Pu00JRJ5XLpA==/base.apk ??? ???
150994944 32.70% 100.00% 36 e5d7a1e4 /apex/com.android.runtime/lib/bionic/libc.so ??? ???
864 0.00% 0.00% 36 [!HERE!]-> b89dc293 /data/app/~~Gc8PoEgh7qxkd3ami6f_zQ==/com.example.mobile-WN4rRCxbP9Pu00JRJ5XLpA==/base.apk ??? ???
864 0.00% 100.00% 36 e5d7a1e4 /apex/com.android.runtime/lib/bionic/libc.so ??? ???
如您所见,关键部分不是任何so文件,而是apk本身。我不知道那是什么意思。因此,无法定位内存泄漏的位置。