一、性能分析工具
ftrace、perf tool、simpleperf、systrace、perfetto、traceview、ebpf、cma tool、MAT、iotop\iostat\atop\top\strace\vmstat、QT tool、systemtap、Dtrace等
二、功耗分析工具
bugreport + battery-historian
三、稳定性分析工具
tombstone、dropbox、gdb、addr2line、objdump、kdump、kprobe、kdb等
内存泄漏分析工具:
3.1 Android Java内存泄漏检测与分析
针对Android单个java进程的内存泄漏检测工具:hprof+MAT
抓取hprof文件的adb命令:
adb shell am dumpheap + package + filepath
如:adb shell am dumpheap com.android.systemui /data/local/tmp/systemui.hprof
hprof文件分析:
用MAT工具打开hprof文件分析
3.2 Android Native内存泄漏检测与分析
针对整个Android系统(user space)的内存泄漏检测工具:HWASAN\MTE
针对单个Native进程的内存泄漏检测工具:malloc_debug
malloc_debug使能:
1)adb shell stop
2)adb shell setprop libc.debug.malloc.program + binary
3)adb shell setprop libc.debug.malloc.options "\"backtrace front_guard=16 rear_guard=16 backtrace_dump_prefix=/sdcard/Download/heap"\"
4)adb shell start
相关异常日志会输出到google logd,可通过logcat获取到
3.3 Kernel内存泄漏检测与分析
针对整个kernel的内存泄漏检测工具:KASAN
轻量级的内存泄漏检测工具:kmemleak
内存出错(访问越界、多次释放内存、访问已释放的内存等)检测工具:slub_debug