AndroidLeakFinder是一个基于pc端(linux系统)的一个自动找内存泄露的工具,目前仅支持专门对Destroy的Activity做排查,便于开发或测试有目的性的查找内存泄露。 该工具是基于haha库的二次开发,通过haha库找到没有回收的Destory的Activity,然后通过GC-root去顺藤摸瓜式查找(借用LeakCanny核心源码),如果能查到说明有内存泄露。
源码是android-studio工程,开发者可以用as打开本工程,此程序是一个java可执行程序,入口是App; 运行的时候需要配置ANDROID_HOME环境变量,还要通过配置参数来达到目的
#指定hprof和指定类的排查
-t com.seekting.demo2019.LeakActivity -f ./skt/com.seekting.demo2019.LeakActivity.hprof
#指定包名排查
-p com.seekting.demo2019
#基于指定包名最新的hprof排查
-l基于leakCanny内存泄露工具,用于Pc端
./gradlew jar可以下载 和 这两个jar包。 运行的时候cd 到AndroidLeakFinder.jar所在目录
java -cp  .:pathto/AndroidLeakFinder.jar:pathto/haha-2.0.3.jar  Appjava -cp  .:pathto/AndroidLeakFinder.jar:pathto/haha-2.0.3.jar  App -t com.seekting.demo2019.LeakActivity -f ./skt/com.seekting.demo2019.LeakActivityjava -cp  .:pathto/AndroidLeakFinder.jar:pathto/haha-2.0.3.jar  App -p com.seekting.demo2019java -cp  .:pathto/AndroidLeakFinder.jar:pathto/haha-2.0.3.jar  App -l
java -cp  .:./AndroidLeakFinder.jar:./haha-2.0.3.jar  App -p com.android.browser
java -cp  .:./AndroidLeakFinder.jar:./haha-2.0.3.jar  App -p com.android.browser.debug
java -cp  .:./AndroidLeakFinder.jar:./haha-2.0.3.jar  App -l
java -cp  .:./AndroidLeakFinder.jar:./haha-2.0.3.jar  App -t android.app.Activity -f ../hprof/2019-06-10_10_13_56.hprofjava -cp  .;./AndroidLeakFinder.jar;./haha-2.0.3.jar  App -p com.android.browser
java -cp  .;./AndroidLeakFinder.jar;./haha-2.0.3.jar  App -p com.android.browser.debug
java -cp  .;./AndroidLeakFinder.jar;./haha-2.0.3.jar  App -l
java -cp  .;./AndroidLeakFinder.jar;./haha-2.0.3.jar  App -t android.app.Activity -f ../hprof/2019-06-10_10_13_56.hprofjava -cp  .:./build/libs/AndroidLeakFinder.jar:./libs/haha-2.0.3.jar  Appjava -cp  .;./build/libs/AndroidLeakFinder.jar;./libs/haha-2.0.3.jar  Appjava -cp  .:./build/libs/AndroidLeakFinder.jar:./libs/haha-2.0.3.jar  App -t com.seekting.demo2019.LeakActivity -f ./skt/com.seekting.demo2019.LeakActivityjava -cp  .;./build/libs/AndroidLeakFinder.jar;./libs/haha-2.0.3.jar  App -t com.seekting.demo2019.LeakActivity -f ./skt/com.seekting.demo2019.LeakActivityjava -cp  .:./build/libs/AndroidLeakFinder.jar:./libs/haha-2.0.3.jar  App -p com.seekting.demo2019java -cp  .;./build/libs/AndroidLeakFinder.jar;./libs/haha-2.0.3.jar  App -p com.seekting.demo2019java -cp  .:./build/libs/AndroidLeakFinder.jar:./libs/haha-2.0.3.jar  App -ljava -cp  .;./build/libs/AndroidLeakFinder.jar;./libs/haha-2.0.3.jar  App -l- 需要java1.8的环境
 - 需要adb环境
 - windows环境无法找到App类
 
java -cp .;./AndroidLeakFinder.jar;./haha-2.0.3.jar App