adb shell中的am pm命令,一些自己的見解和大多數官網的翻譯。
先說下am命令,am全稱activity manager,你能使用am去類比各種系統的行為,例如去啟動一個activity,強制停止進程,發送廣播進程,修改裝置螢幕屬性等等。當你在adb shell命令下執行am命令:
am <command>
你也可以在adb shell前執行am命令:
adb shell am start -a android.intent.action.VIEW
關於一些am命令的介紹:
start [options] <INTENT> :啟動activity通過指定的intent參數。具體intent參數參照官方表。
startservice [options] <INTENT> : 啟動service通過指定的intent參數。具體intent跟start命令參數相同。
force-stop <PACKAGE> : 強制停止指定的package包應用。
kill [options] <PACKAGE> :殺死指定package包應用進程,該命令在安全模式下殺死進程,不影響使用者體驗。參數選項:--user <USER_ID> | all | current: 指定user進程殺死,如果不指定預設為所有users。(關於USER_ID下面會介紹到)
kill-all :殺死所有的後台進程。
broadcast [options] <INTENT> :發送一個intent。具體intent參數參照start命令參數。參數選項:--user <USER_ID> | all | current: 指定user進程殺死,如果不指定預設為所有users。
instrument [options] <COMPONENT> :測試命令,不多作介紹。
profile start <PROCESS> <FILE> :在<PROCESS>進程中運行profile,分析結果寫到<FILE>裡。
profile stop <PROCESS> :停止profile。
set-debug-app [options] <PACKAGE> :設定package包應用為debug模式。參數選項:-w|--persistent:等待進入偵錯模式,保留值。
clear-debug-app :清空之前用set-debug-app命令設定的package包應用。
以下命令查看官網:
monitor [options]
screen-compat [on|off] <PACKAGE>
display-size [reset|<WxH>]
display-density <dpi>
to-uri <INTENT>
to-intent-uri <INTENT>
接下來介紹pm命令,pm全稱package manager,你能使用pm命令去類比android行為或者查詢裝置上的應用等,當你在adb shell命令下執行pm命令:
pm <command>
你也可以在adb shell前執行pm命令:
adb shell pm uninstall com.example.MyApp
關於一些pm命令的介紹:
list packages [options] <FILTER> :列印所有包,選擇性的查詢包列表。參數選項:-f:查看關聯檔案,即應用apk的位置跟對應的包名(如:package:/system/app/MusicPlayer.apk=com.sec.android.app.music);-d:查看disabled packages;-e:查看enable package;-s:查看系統package;-3:查看第三方package;-i:查看package的對應安裝者(如:1、package:com.tencent.qqmusic installer=null 2、package:com.tencent.qqpim installer=com.android.vending);-u:查看曾被卸載過的package。(卸載後又重新安裝依然會被列入);--user<USER_ID>:The user space to query。
list permission-groups :列印所有已知的許可權群組。
list permissions [options] <GROUP> :選擇性的列印許可權。參數選項:
list features :裝置特性。硬體之類的效能。
list libraries :當前裝置支援的libs。
list users :系統上所有的users。(上面提到的USER_ID查詢方式,如:UserInfo{0:Primary:3}那麼USER_ID為0)
path <PACKAGE> :查詢package的安裝位置。
install [options] <PATH> :安裝命令。
uninstall [options] <PACKAGE> :卸載命令。
clear <PACKAGE> :對指定的package刪除所有資料。
enable <PACKAGE_OR_COMPONENT> :使package或component可用。(如:pm enable "package/class")
disable <PACKAGE_OR_COMPONENT> :使package或component不可用。(如:pm disable "package/class")
disable-user [options] <PACKAGE_OR_COMPONENT> :參數選項:--user <USER_ID>: The user to disable.
grant <PACKAGE_PERMISSION> :授權給應用。
revoke <PACKAGE_PERMISSION> :撤銷許可權。
set-install-location <LOCATION> :設定預設的安裝位置。其中0:讓系統自動選擇最佳的安裝位置。1:安裝到內部的裝置儲存空間。2:安裝到外部的裝置儲存空間。(這隻用於調試應用程式,使用該命令可能導致應用程式退出或者其他不適的後果)。
get-install-location :返回當前的安裝位置。返回結果同上參數選項。
set-permission-enforced <PERMISSION> [true|false] :使指定許可權生效或者失效。
create-user <USER_NAME> :增加一個新的USER。
remove-user <USER_ID> :刪除一個USER。
get-max-users :該裝置所支援的最大USER數。(某些裝置不支援該命令)