am這個(gè)指令是 activity manager的縮寫。這個(gè)命令可以啟動(dòng)Activity、打開或關(guān)閉進(jìn)程、發(fā)送廣播等操作。
am命令格式如下
adb shell am <command>
1、start [options] <INTENT>
根據(jù)Intent 啟動(dòng)Activity
options參數(shù)如下:
-D:開啟debug模式-W:等待啟動(dòng)完成--start-profiler<FILE>:將profiler中的結(jié)果輸出到指定文件中-P:和--start-profiler一樣,區(qū)別在于,在app進(jìn)入idle狀態(tài)時(shí)profiler結(jié)束-R <Count>: 重復(fù)啟動(dòng)Activity,但每次重復(fù)啟動(dòng)都會(huì)關(guān)閉掉最上面的Activity-S:關(guān)閉Activity所屬的App進(jìn)程后再啟動(dòng)Activity--opengl-trace:開啟OpenGL tracing--user <USER_ID> :使用指定的用戶來啟動(dòng)activity,如果不輸入,則使用當(dāng)前用戶執(zhí)行
INTENT參數(shù)參見附錄1:
命令樣例:
//使用Action方式打開系統(tǒng)設(shè)置-輸入法設(shè)置adb shell am start -a android.settings.INPUT_METHOD_SETTINGS//使用組件名方式啟動(dòng)照相機(jī)功能adb shell am start -n com.android.camera/.Camera//打開撥號(hào)界面,并傳遞一個(gè)DATA_URI數(shù)據(jù)給撥號(hào)界面am start -a android.intent.action.CALL -d tel:10086
2、startservice [options] <INTENT>
根據(jù)Intent 啟動(dòng)Service
options參數(shù)如下:
--user <USER_ID> :使用指定的用戶來啟動(dòng)activity,如果不輸入,則使用當(dāng)前用戶執(zhí)行
INTENT參數(shù)參見附錄1:
命令樣例:
//使用ComponentName 方式啟動(dòng)一個(gè)Serviceadb shell am startservice com.some.package.name/.YourServiceSubClassName
3、force-stop <PACKAGE>
關(guān)閉指定包名的應(yīng)用程序
命令樣例:
adb shell am force-stop com.some.package
4、kill [options] <PACKAGE>
殺死與應(yīng)用程序的包名稱相關(guān)聯(lián)的所有進(jìn)程。該命令只會(huì)殺死安全的進(jìn)程,不會(huì)影響用戶體驗(yàn)。
options參數(shù)如下:
--user <USER_ID> :使用指定的用戶來啟動(dòng)activity,如果不輸入,則使用當(dāng)前用戶執(zhí)行
命令樣例:
adb shell am kill com.some.package
5、kill-all
殺死全部的后臺(tái)進(jìn)程
命令樣例:
adb shell am kill-all
6、broadcast [options] <INTENT>
發(fā)送一個(gè)廣播
options參數(shù)如下:
--user <USER_ID> :使用指定的用戶來啟動(dòng)activity,如果不輸入,則使用當(dāng)前用戶執(zhí)行
命令樣例:
//恢復(fù)出廠設(shè)置的方法,會(huì)清除內(nèi)存所有內(nèi)容(慎重測(cè)試?。。。。゛db shell am broadcast -a android.intent.action.MASTER_CLEAR
7、instrument [options] <COMPONENT>
啟動(dòng)對(duì)instrument實(shí)例的監(jiān)視
options參數(shù)如下:
-r: 以原始形式輸出測(cè)試結(jié)果。該選項(xiàng)通常是在性能測(cè)試時(shí)與-e perf true一起使用。-e <NAME> <VALUE>: 提供了以鍵值對(duì)形式存在的測(cè)試選項(xiàng)。格式一般為 -e <testrunner_flag> <value>[,<value>...].-p <FILE>: 將profiling數(shù)據(jù)寫入制定的文件-w: 保持adb shell打開直至測(cè)試完成--no-window-animation:關(guān)閉運(yùn)行時(shí)window動(dòng)畫--user <USER_ID> :使用指定的用戶來啟動(dòng)activity,如果不輸入,則使用當(dāng)前用戶執(zhí)行
命令樣例:
adb shell am instrument -w com.android.phone.tests/com.android.phone.runners.FunctionalTestRunner
8、profile start <PROCESS> <FILE>
開始收集目標(biāo)進(jìn)程運(yùn)行過程中的函數(shù)調(diào)用關(guān)系
其中PROCESS是所要收集的進(jìn)程,直接用進(jìn)程號(hào)即可, FILE是收集后trace所在的文件,一般直接放在/sdcard 目錄下,所以直接用/sdcard/文件名 即可。
命令樣例:
adb shell am profile start 17495 /mnt/sdcard/profile.txt
9、profile stop <PROCESS>
其中PROCESS是所要收集的進(jìn)程,直接用進(jìn)程號(hào)即可
停止收集目標(biāo)進(jìn)程運(yùn)行過程中的函數(shù)調(diào)用關(guān)系
命令樣例:
adb shell am profile stop 17495
10、dumpheap [options] <PROCESS> <FILE>
將指定進(jìn)程號(hào)的堆信息輸出到指定的文件中
options參數(shù)如下:
--user <USER_ID> :使用指定的用戶來啟動(dòng)activity,如果不輸入,則使用當(dāng)前用戶執(zhí)行-n: 直接存儲(chǔ)原始堆信息,而不是系統(tǒng)管理后的堆信息
命令樣例:
adb shell am dumpheap -n 17495 /mnt/sdcard/dumpheap.txt
11、set-debug-app [options] <PACKAGE>
設(shè)置特定包名的應(yīng)用程序開啟debug
options參數(shù)如下:
-w: 等待應(yīng)用程序啟動(dòng)--persistent: 持久化
命令樣例:
adb shell am set-debug-app -w com.some.package
12、clear-debug-app
取消設(shè)置debug狀態(tài)的應(yīng)用程序
命令樣例:
adb shell am clear-debug-app
13、monitor [options]
監(jiān)視Crash 或者ANR錯(cuò)誤
options參數(shù)如下:
--gdb: 在給定的端口上啟動(dòng)gdbserv監(jiān)控crash/ANR錯(cuò)誤.
命令樣例:
adb shell am monitor
14、screen-compat [on|off] <PACKAGE>
開啟或關(guān)閉指定package的屏幕兼容模式
命令樣例:
adb shell am screen-compat on com.some.package
15、display-size [reset|<WxH>]
重寫模擬器/設(shè)備顯示大小。這個(gè)命令是有幫助的測(cè)試你的應(yīng)用程序在不同的屏幕大小,通過模仿一個(gè)小屏幕分辨率,使用一個(gè)大屏幕的設(shè)備,反之亦然。
命令樣例:
adb shell am display-size 1280x800
16、display-density <dpi>
重寫模擬器/設(shè)備顯示密度。該命令有助于測(cè)試你的應(yīng)用程序在不同的屏幕密度對(duì)高密度屏幕環(huán)境,使用低密度屏幕,反之亦然。
命令樣例:
adb shell am display-density 480
17、to-uri <INTENT>
將intent轉(zhuǎn)換為Uri
命令樣例:
adb shell am to-uri -a android.settings.INPUT_METHOD_SETTINGS
18、to-intent-uri <INTENT>
將intent轉(zhuǎn)換為intent:Uri
命令樣例:
adb shell am to-intent-uri -a android.settings.INPUT_METHOD_SETTINGS
附錄1:
-a <ACTION> intent action, 例如 "android.intent.action.VIEW". -d <DATA_URI> intent data URI, 例如 "content://contacts/people/1". -t <MIME_TYPE> intent MIME type, 例如 "image/png". -c <CATEGORY> intent category, 例如 "android.intent.category.APP_CONTACTS". -n <COMPONENT> 指定組件名稱以包名稱前綴來創(chuàng)建一個(gè)Intent, 例如 "com.example.app/.ExampleActivity". -f <FLAGS> 在intent 中添加 flags, Java代碼中對(duì)應(yīng)的是 Intent.setFlags(). --esn <EXTRA_KEY> 添加 a null extra. 這個(gè)參數(shù)不支持 URI intents.-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> 添加一個(gè) string 數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)是鍵值對(duì) --ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> 添加一個(gè) boolean 數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)是鍵值對(duì) --ei <EXTRA_KEY> <EXTRA_INT_VALUE> 添加一個(gè) int 數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)是鍵值對(duì) --el <EXTRA_KEY> <EXTRA_LONG_VALUE> 添加一個(gè) long 數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)是鍵值對(duì) --ef <EXTRA_KEY> <EXTRA_FLOAT_VALUE> 添加一個(gè) float 數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)是鍵值對(duì) --eu <EXTRA_KEY> <EXTRA_URI_VALUE> 添加一個(gè) URI data 數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)是鍵值對(duì) --ecn <EXTRA_KEY> <EXTRA_COMPONENT_NAME_VALUE> 添加一個(gè)組件的名稱, 這個(gè)屬性將會(huì)被轉(zhuǎn)換成 ComponentName 對(duì)象進(jìn)行傳遞. --eia <EXTRA_KEY> <EXTRA_INT_VALUE>[,<EXTRA_INT_VALUE...] 添加一個(gè)int數(shù)組--ela <EXTRA_KEY> <EXTRA_LONG_VALUE>[,<EXTRA_LONG_VALUE...] 添加一個(gè)long數(shù)組--efa <EXTRA_KEY> <EXTRA_FLOAT_VALUE>[,<EXTRA_FLOAT_VALUE...] 添加一個(gè)floats數(shù)組--grant-read-uri-permission 包含 flag值 FLAG_GRANT_READ_URI_PERMISSION. --grant-write-uri-permission 包含 flag值 FLAG_GRANT_WRITE_URI_PERMISSION. --debug-log-resolution 包含 flag值 FLAG_DEBUG_LOG_RESOLUTION. --exclude-stopped-packages 包含 flag值 FLAG_EXCLUDE_STOPPED_PACKAGES. --include-stopped-packages 包含 flag值 FLAG_INCLUDE_STOPPED_PACKAGES. --activity-brought-to-front 包含 flag值 FLAG_ACTIVITY_BROUGHT_TO_FRONT. --activity-clear-top 包含 flag值 FLAG_ACTIVITY_CLEAR_TOP. --activity-clear-when-task-reset 包含 flag值 FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET. --activity-exclude-from-recents 包含 flag值 FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS. --activity-launched-from-history 包含 flag值 FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY. --activity-multiple-task 包含 flag值 FLAG_ACTIVITY_MULTIPLE_TASK. --activity-no-animation 包含 flag值 FLAG_ACTIVITY_NO_ANIMATION. --activity-no-history 包含 flag值 FLAG_ACTIVITY_NO_HISTORY. --activity-no-user-action 包含 flag值 FLAG_ACTIVITY_NO_USER_ACTION. --activity-previous-is-top 包含 flag值 FLAG_ACTIVITY_PREVIOUS_IS_TOP. --activity-reorder-to-front 包含 flag值 FLAG_ACTIVITY_REORDER_TO_FRONT. --activity-reset-task-if-needed 包含 flag值 FLAG_ACTIVITY_RESET_TASK_IF_NEEDED. --activity-single-top 包含 flag值 FLAG_ACTIVITY_SINGLE_TOP. --activity-clear-task 包含 flag值 flag FLAG_ACTIVITY_CLEAR_TASK. --activity-task-on-home 包含 flag值 FLAG_ACTIVITY_TASK_ON_HOME. --receiver-registered-only 包含 flag值 FLAG_RECEIVER_REGISTERED_ONLY. --receiver-replace-pending 包含 flag值 FLAG_RECEIVER_REPLACE_PENDING. --selector 必須使用 -d 和 -t 參數(shù) 來設(shè)置intent 數(shù)據(jù)和類型. <URI> <COMPONENT> <PACKAGE> 直接指定URI、組件名、包名方式啟動(dòng)Activity是無法使用上述選項(xiàng)的,當(dāng)參數(shù)不合法時(shí),am命令默認(rèn)的識(shí)別方式是,URI方式需要包含":";組件名方式是包含"/";其他的格式,am命令默認(rèn)識(shí)別為包名方式。