1、logcat
(四類log buffer是main,radio。system。events)
中相關變量情況等。
在android 中抓取app 的hprof 操作方式有以下幾種:
第一種方式: 使用am 命令
adb shell am dumpheap {Process} file
如 adb shell am dumpheap com.android.phone /data/anr/phone.hprof
adb pull /data/anr/phone.hprof
另外一種方式: 使用DDMS 命令
在DDMS 中選擇相應的process, 然后在Devices button欄中選擇Dump Hprof file, 保存就可以
第三種方式: 通過代碼的方式
在android.os.Debug 這個class 中有定義相關的抓取hprof 的method.
如: public static void dumpHprofData(String fileName) throws IOException;
這樣就可以在代碼中直接將這個process 的hprof 保存到相相應的文件里。注意這個僅僅能抓取當時的
process.
假設想抓其它的process 的hprof, 那么就必須通過AMS 幫忙了。
能夠先獲取IActivityManager 接口,然后調用它的dumpheap 方法。詳細的代碼。大家能夠參考
frameworks/base/cmds/am/src/com/android/commands/am/am.java 中的調用代碼
抓取回hprof 后。就能夠用hprof-conv 命令將DVM 格式的hprof 轉換成標准的java 命令的hprof
hprof-conv in.hprof out.hprof
然后使用如MAT 之類的工具進行詳細的分析
11、其它
adb shell dumpcrash
adb shell dumpsys //查詢全部service的狀態