一、開啟Activity、服務、廣播
1.開啟Activity、服務、廣播基礎知識
通過adb shell,可以使用activity manager(arm)工具來執行不同的系統操作,如開啟一個action,開啟一個activity、強制停止一個線程、修改設備屏幕屬性等等,adb shell命令格式如下:
am <command>
1)intent
intent可以理解為不同組件通信的媒介或者信使;
intent可以啟動一個Activity,也可以啟動一個Service,好可以發起一個廣播Broadcast
通過intent,你的程序可以像Android表達某種請求或者意願,Android會根據意願的內容選擇適當的組件來完成請求
| Intent |
說明 |
Am參數 |
| component | 組件名稱 格式為:包名/類名 | -n |
| action | 指定Intent的執行動作,比如調用撥打電話組件 | -a |
| data_url | 表示與動作要操縱的數據 | -d |
| category | categary是一個字符串,提供了額外的信息,有關於能夠處理這個Intent對象的組件種類 | -c |
| extra | 傳遞給Intent的額外數據,以Bundle的形式定義,就是一些鍵值對 | -e |
| mime_type | MIME類型 | -t |
| flags | 各種類型的flag,很多是用來指定Android系統如何啟動activity,還有啟動了activity后如何對待他 | -f |
| package | 包名 | -p |
2)啟動Activity
#啟動界面 adb shell am start [參數] <INTENT>
| 參數 |
說明 |
| -D | 開啟調試模式 |
| -W | 等待啟動完成 |
| --start-profile <file> | 開始分析器和發送結果(文件) |
| --sampling INTERVAL | 使用樣本分析 間隔:微秒 樣品(使用—start-profiler)之間 |
| -P <FILE> | 應用空閑下來后,停止profile |
| -R COUNT | 重復活動推出<統計>次。每個重復之前,活動將會結束 |
| -S | 組織目標應用開始前的活動 |
| --opengl-trace | 啟用跟蹤OpenGL函數 |
| [—user <USER_ID> | current] | 指定哪些用戶運行,如果不指定則使用當前用戶 |
3)啟動和停止服務
#啟動服務 adb shell am startservice [參數] <INTENT> #停止服務 adb shell am stopservice [參數] <INTENT>
| 參數 | 說明 |
| --user <USER_ID> | current | 指定哪些用戶運行,如果不指定則使用當前用戶 |
4)啟動廣播
#啟動廣播 adb shell am broadcast [參數] <INTENT>
| 參數 | 說明 |
| --user <USER_ID> | current | 指定哪些用戶運行,如果不指定則使用當前用戶 |
二、內存與進程操作
1.內存操作
獲取heap文件:adb shell am dumpheap [參數] <process>
| 參數 | 說明 |
| --user <USER_ID> | current | 指定哪些用戶運行,如果不指定則使用當前用戶 |
| -n | 獲取native heap而不是managed heap |
例如:
adb shell am dumpheap com.android.browser /data/local/tmp/test.hprof
#獲取內存快照(后綴名必需為.hprof)
使用adb pull /data/local/tmp/test.hprof e:\命令將testr.hprof文件保存到電腦本地
使用命令:hprof-conv e:\test.hprof e:\test1.hprof進行文件轉化
然后就可以使用mat工具對內存進行查看分析
2.進程操作
adb shell am force-stop [參數] <process>
#強制停止應用(process=包名)
adb shell am kill [參數] <process>
#停止后台單個進程
adb shell am kill-all
#停止后台所進程
三、調試相關操作
1.性能相關
截圖來自極客學院
Traceview是android平台配備一個很好的性能分析的工具。它可以通過圖形化的方式讓我們了解我們要跟蹤的程序的性能,並且能具體到method。
2.監聽異常
監聽crash和ANR:adb shell monitor [options]

