經過adb shell,可使用activity manager(arm)工具來執行不一樣的系統操做,如開啓一個action,開啓一個activity、強制中止一個線程、修改設備屏幕屬性等等,adb shell命令格式以下:android
am <command>shell
intent能夠理解爲不一樣組件通訊的媒介或者信使;函數
intent能夠啓動一個Activity,也能夠啓動一個Service,好能夠發起一個廣播Broadcast工具
經過intent,你的程序能夠像Android表達某種請求或者意願,Android會根據意願的內容選擇適當的組件來完成請求性能
Intenturl |
說明spa |
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 |
#啓動界面 adb shell am start [參數] <INTENT>
參數3d |
說明調試 |
-D | 開啓調試模式 |
-W | 等待啓動完成 |
--start-profile <file> | 開始分析器和發送結果(文件) |
--sampling INTERVAL | 使用樣本分析 間隔:微秒 樣品(使用—start-profiler)之間 |
-P <FILE> | 應用空閒下來後,中止profile |
-R COUNT | 重複活動推出<統計>次。每一個重複以前,活動將會結束 |
-S | 組織目標應用開始前的活動 |
--opengl-trace | 啓用跟蹤OpenGL函數 |
[—user <USER_ID> | current] | 指定哪些用戶運行,若是不指定則使用當前用戶 |
#啓動服務 adb shell am startservice [參數] <INTENT> #中止服務 adb shell am stopservice [參數] <INTENT>
參數 | 說明 |
--user <USER_ID> | current | 指定哪些用戶運行,若是不指定則使用當前用戶 |
#啓動廣播 adb shell am broadcast [參數] <INTENT>
參數 | 說明 |
--user <USER_ID> | current | 指定哪些用戶運行,若是不指定則使用當前用戶 |
獲取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
#中止後臺所進程
截圖來自極客學院
Traceview是android平臺配備一個很好的性能分析的工具。它能夠經過圖形化的方式讓咱們瞭解咱們要跟蹤的程序的性能,而且能具體到method。
監聽crash和ANR:adb shell monitor [options]