Android常用adb命令總結(二)


adb shell 命令

 

簡單點講,adb 命令是 adb 這個程序自帶的一些命令,而 adb shell 則是調用的 Android 系統中的命令,這些 Android 特有的命令都放在了 Android 設備的 system/bin 目錄下,如下在命令行中敲這樣一個命令:
root@generic:/ # adb shell jjj

adb shell jjj

/system/bin/sh: jjj: not found    很明顯,在 bin 目錄下並不存在這個命令。

想看看有哪些命令,也不想去找文檔,於是就啟動模擬器,將整個 system/bin 目錄復制了出來,然后一個一個的去試。

C:\Users\Administrator>adb pull /system/bin/ E:\system-bin

 

 

打開這些文件就可以發現,里面有些命令其實是一個 shell 腳本,例如打開 monkey 文件:

 

打開 am:

 

pm


Package Manager , 可以用獲取到一些安裝在 Android 設備上得應用信息
pm 的源碼 pm.java , 直接運行 adb shell pm 可以獲取到該命令的幫助信息

 

pm list package 列出安裝在設備上的應用

不帶任何選項:列出所有的應用的包名

 

-s:列出系統應用

adb shell pm list package -s

 

-3:列出第三方應用

adb shell pm list package -3

 

-f:列出應用包名及對應的apk名及存放位置

adb shell pm list package -f

root@generic:/ # pm list package -f

pm list package -f

package:/system/app/SoundRecorder.apk=com.android.soundrecorder

package:/system/app/SdkSetup.apk=com.android.sdksetup

 

-i:列出應用包名及其安裝來源,結果顯示例子:

adb shell pm list package -i

 

 

package:com.zhihu.android installer=com.xiaomi.market

adb shell pm list package -i

命令最后加上grep關鍵字,可以很方便地查找自己想要的應用

 

 

參數組合使用,例如,查找三方應用中知乎的包名、apk存放位置、安裝來源:

root@generic:/ # pm list package -f -i fused

pm list package -f -i fused

package:/system/app/FusedLocation.apk=com.android.location.fused  installer=null

 

pm path 列出對應包名的 .apk 位置

root@generic:/ # pm path com.android.smoketest

pm path com.android.smoketest

package:/data/app/SmokeTestApp.apk

 

pm list instrumentation , 列出含有單元測試 case 的應用,

后面可跟參數 -f (與 pm list package 中一樣),以及 [target=package]

pm install , 安裝應用

目標 apk 存放於 PC 端,請用 adb install 安裝
目標 apk 存放於 Android 設備上,請用 pm install 安裝

 

pm uninstall , 卸載應用,同 adb uninstall , 后面跟的參數都是應用的包名

 

am

am start 程序名 , 啟動一個 Activity,已啟動系統相機應用為例

 

啟動通訊錄

root@generic:/ # am start com.android.contacts

am start com.android.contacts

Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.L

AUNCHER] pkg=com.android.contacts }

 

啟動撥號器撥打 10086

root@generic:/ # am start -a android.intent.action.CALL -d tel:10086

am start -a android.intent.action.CALL -d tel:10086

Starting: Intent { act=android.intent.action.CALL dat=tel:xxxxx 

 

am monitor , 監控 crash(閃退) 與 ANR(Application Not Responding)

root@generic:/ # am monitor

am monitor

Monitoring activity manager...  available commands:

(q)uit: finish monitoring

 

 

 

Input

這個命令可以向 Android 設備發送按鍵事件,其源碼 Input.java

input text , 發送文本內容,不能發送中文(前提先將鍵盤設置為英文鍵盤)

root@generic:/ # input text testrabbit

 

screencap

adb shell screencap -p /sdcard/screen.png  截圖命令

截屏,保存至 sdcard 目錄

root@generic:/ # screencap -p /sdcard/screen.jpg

screencap -p /sdcard/screen.jpg

 

查看到截圖如下:

 

getprop

查看 Android 設備的參數信息,只運行 adb shell getprop,結果以 key : value 鍵值對的形式顯示

adb shell getprop ro.build.version.sdk

獲取設備的 sdk 版本

adb shell getprop ro.build.version.release

獲取手機系統版本:

 

 

 學習交流QQ:270224761 (ep)

 


免責聲明!

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



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