adb shell 命令中的am和pm命令參數詳解


一、 adb shell 

進入到安卓手機內部的linux系統命令行中(安卓操作系統是linux操作系統),如下圖:

二、am參數

am全稱activity manager,你能使用am參數去模擬各種系統的行為,例如去啟動一個activity,強制停止進程,發送廣播進程,修改設備屏幕屬性等等。

例如: adb shell am start -a android.intent.action.VIEW 

關於am參數的一些命令:

start [options] :啟動activity通過指定的intent參數。具體intent參數參照官方表。

startservice [options] : 啟動service通過指定的intent參數。具體intent跟start命令參數相同。

force-stop : 強制停止指定的package包應用。

kill [options] :殺死指定package包應用進程,該命令在安全模式下殺死進程,不影響用戶體驗。參數選項:--user | all | current: 指定user進程殺死,如果不指定默認為所有users。(關於USER_ID下面會介紹到)

kill-all :殺死所有的后台進程。

broadcast [options] :發送一個intent。具體intent參數參照start命令參數。參數選項:--user | all | current: 指定user進程殺死,如果不指定默認為所有users。

instrument [options] :測試命令,不多作介紹。

profile start :在進程中運行profile,分析結果寫到里。

profile stop :停止profile。

set-debug-app [options] :設置package包應用為debug模式。參數選項:-w|--persistent:等待進入調試模式,保留值。

clear-debug-app :清空之前用set-debug-app命令設置的package包應用。

啟動:adb shell app am start -n {packageName}/.{activityName}

殺app的進程:adb shell am kill <packageName>

強制停止一切:adb shell am force-stop <packageName>

啟動服務:adb shell am startservice

停止服務:adb shell am stopservice

打開簡書: adb shell am start -a android.intent.action.VIEW -d http://www.jianshu.cn/

撥打電話: adb shell am start -a android.intent.action.CALL -d tel:10086  或者 adb shell am start -a android.intent.action.CALL tel:15967562075

進入手機qq主頁:adb shell am start -n com.tencent.mobileqq/com.tencent.mobileqq.activity.SplashActivity

進入手機微信主頁 :adb shell am start -n com.tencent.mm/.ui.LauncherUI

二、pm參數

pm全稱package manager,你能使用pm命令去模擬android行為或者查詢設備上的應用等。

例如: adb shell pm uninstall com.example.MyApp 

關於一些pm命令的介紹:

list packages [options] :打印所有包,選擇性的查詢包列表。

參數選項:-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:The user space to query。

list permission-groups :打印所有已知的權限群組。

list permissions [options] :選擇性的打印權限。參數選項:

list features :設備特性。硬件之類的性能。

list libraries :當前設備支持的libs。

list users :系統上所有的users。(上面提到的USER_ID查詢方式,如:UserInfo{0:Primary:3}那么USER_ID為0)

path :查詢package的安裝位置。

install [options] :安裝命令。

uninstall [options] :卸載命令。

clear :對指定的package刪除所有數據。

enable :使package或component可用。(如:pm enable "package/class")

disable :使package或component不可用。(如:pm disable "package/class")

disable-user [options] :參數選項:--user : The user to disable。

grant :授權給應用。

revoke :撤銷權限。

set-install-location :設置默認的安裝位置。其中0:讓系統自動選擇最佳的安裝位置。1:安裝到內部的設備存儲空間。2:安裝到外部的設備存儲空間。(這只用於調試應用程序, 使用該命令可能導致應用程序退出或者其他不適的后果)。

get-install-location :返回當前的安裝位置。返回結果同上參數選項。

set-permission-enforced [true|false] :使指定權限生效或者失效。

create-user :增加一個新的USER。

remove-user :刪除一個USER。

get-max-users :該設備所支持的最大USER數。(某些設備不支持該命令)

列出手機所有的包名: pm list packages

安裝/卸載: pm install/uninstall


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM