古詩詞大全網 - 個性簽名 - 常用的安卓手機adb命令總結

常用的安卓手機adb命令總結

很早就想整理壹下自己平時常用的壹些adb命令,不僅為了便於以後查找,而且整理的過程自己又重新復習了壹遍,但是當我開始在度娘壹搜的時候,發現很多人已經寫的非常詳細了,尤其是當我發現了這篇adb概括

心中壹句NND,怎麽可以寫的這麽詳細,瞬間沒了想寫這篇文章的欲望,如果妳點了鏈接發現確實很全,那麽恭喜妳可以關掉這篇了,哈哈哈。

我就不這麽想的,雖然很全,但不是我常用的,因人而異,所以我就權當記筆記+替這哥們宣傳了。

– adb devices , 獲取設備列表及設備狀態

設備的狀態有 3 種

device , 設備連接正常

offline , 設備離線,連接出現異常

unauthorized 設備為進行授權,需要在設備上是否允許調試對話框進行授權

offline情況解決辦法,先執行adb kill-server 命令,再執行adb start-server 命令,再嘗試adb devices 查看列表,如果還是offline,來來來,使用必殺技,重啟大法。

當電腦連接多個android設備並可用時,所有的adb命令都需要指定設備後執行(當然妳也可以移除多余的設備)

adb -s <設備名稱> install/uninstall/shell/pull/push等命令

– adb install app在pc硬盤路徑,選中app直接拖入即可

常見的錯誤情況

INSTALL_FAILED_TEST_ONLY, 安裝的app的debug版本的,未簽名,adb install -t 路徑即可安裝

INSTALL_FAILED_DUPLICATE_PACKAGE, 已經安裝相同包名的app, 先卸載再安裝

– adb uninstall app的包名,卸載app

adb pull 將 Android 設備上的文件或者文件夾復制到本地

adb pull sdcard/Android/111.txt E:\

小技巧,可以將本地路徑指定為桌面,方便查看, 在桌面按住shift鍵,鼠標右鍵選擇在此處打開命令行窗口,直接輸入adb pull sdcard/Android/111.txt 執行,就可將111.txt復制到桌面。

前提是設備已經獲取root權限

adb root

adb remount

adb push 將pc上文件復制到android設備中,修改room原生應用時比較頻繁使用,如settings.apk, launcher3.apk

– adb shell pm 命令

adb shell pm list package 列出android設備上的所有app

adb shell pm list package -s 列出android設備上的系統級別app

adb shell pm list package -3 列出android設備上的第三方app(用戶安裝的)

adb shell pm list package -f 列出app包名及對應的apk名及存放位置

adb shell pm list package -i 列出app包名及其安裝來源(應用市場名稱)

adb shell pm dump app包名 列出app的相關信息,類似獲取Manifest文件內容

-查看前臺 Activity

adb shell dumpsys activity activities “| grep mFocusedActivity”

-adb shell am 命令

最常用的就是啟動指定的activity和發送指定的廣播

啟動指定的activity

操作指令 adb shell am start -n 包名/類名

註:如果啟動activity時,出現如下錯誤

java.lang.SecurityException: Permission Denial: starting Intent { flg=0x10000000 > > cmp=com.mediatek.engineermode/.io.Gpio } from null (pid=3083, uid=2000) not exported from uid 1001

解決辦法,1、如果是妳自己可控的app,那麽找到妳要調用的activity在manifest.xml中,增加

1

配置即可, android:name="" 可以為空字符串。

2、如果是不可控的app,例如我調用的系統原生app,那麽妳就洗洗睡吧,別折騰了,除非妳修改源碼和上邊壹樣操作,重新push替換原來的app。

啟動默認瀏覽器打開壹個網頁

adb shell am start -a android.intent.action.VIEW -d? * ********

先停止目標應用,再啟動

adb shell am start -s com.android.camera/.Camera

啟動相機

adb shell am start -n com.android.camera/.Camera

啟動設置

adb shell am start -n com.android.settings/com.android.settings.Settings

啟動Wifi設置

adb shell am start -n com.android.settings/com.android.settings.wifi.WifiSettings

啟動藍牙設置

adb shell am start -n com.android.settings/com.android.settings.bluetooth.BluetoothSettings

其它的類似只要妳能在manifest中找到配置的,都可以通過這種方法來調用

發送指定的廣播

操作指令 adb shell am broadcast -a 廣播名 --ei/es/ez 參數名 參數值 --ei/es/ez 參數名 參數值

–ei integer 值

–es String 值

–ez boolean 值

–ef float 值

–el long 值

例如之前寫的

Android6.0 源碼修改之Setting列表配置項動態添加和靜態添加, 當中就通過發送廣播來接收增加配置列表項

adb shell am broadcast -a cn.dynamic.add.settingcategoryitem --es location “0-2” --es title “紅” --es intent “com.android.settings.SCHEDULE_POWER_ON_OFF_SETTING”

-adb shell input keycode 指令

HOME 鍵 adb shell input keycode 3

返回鍵 adb shell input keycode 4

打開瀏覽器 adb shell input keycode 64

-adb shell wm 指令

屏幕分辨率 adb shell wm size

屏幕密度 adb shell wm density

adb shell wm density 320/480/640 可修改屏幕密度查看效果,對應Launcher圖標會縮放

adb shell ifconfig 命令

IP 地址 adb shell ifconfig “| grep Mask”

WIFI 地址 adb shell ifconfig wlan0

狀態欄和導航欄的顯示隱藏

命令:

adb shell settings put global policy_control

可由如下幾種鍵及其對應的值組成,格式為 key1=value1:key2=value2。

key 含義

immersive.full 同時隱藏

immersive.status 隱藏狀態欄

immersive.navigation 隱藏導航欄

immersive.preconfirms 同時顯示

這些鍵對應的值可則如下值用逗號組合:

value 含義

apps 所有應用

所有界面

packagename 指定應用

packagename 排除指定應用

例如:

adb shell settings put global policy_control immersive.full=*

表示設置在所有界面下都同時隱藏狀態欄和導航欄。(重啟也不會失效,恢復需調用下面的命令)

adb shell settings put global policy_control immersive.preconfirms=*

表示恢復顯示

adb shell settings put global policy_control immersive.status=com.package1,com.package2:immersive.navigation=apps,-com.package3

表示設置在包名為 com.package1 和 com.package2 的應用裏隱藏狀態欄,在除了包名為 com.package3 的所有應用裏隱藏導航欄

adb shell am force-stop app?關閉APP

adb shell pm clear APP?app進程被殺死,且會清楚所有數據

1:查找手機安裝應用的包名:adb shell pm list packages -f

2:查看系統盤符:adb shell df

3:查看Log 1:adb shell 2: logcat | grep "abc"

4:刪除應用:1:adbremount?2:adb shell?3:cdsystem/app 4:rm *.apk

5:安裝APK: adbinstall -r *.apk?或者 adb push*.apk?/system/app

6:查看APP啟動的時間指令

? adb shell am start -W -ncom.android.dialer/.DialtactsActivity?(W是大寫)執行命令後APP會自 動啟動,其中ThisTime即是本次? App啟動所花費的時間。

7:查看包名中當前所在進程信息:adb shell ps | grep +包名

8:查看Activity運行的任務棧:adb shell dumpsys activity

? 9:查看鍵值:adb logcat | grep intercep?-i

10:查看模塊所占有的CPU資源:adb shell top -d 2 -m 10

11:查看可用系統的權

? $ adb shell

? # pm list permissions

12:模擬按鍵的輸入:adb shell input keyevent + 鍵值

?eg:?adb shell input keyevent?82 表示menu

? adb shell input keyevent?3? 表示home

?adb shell input keyevent?19 表示up

? adb shell input keyevent?20 表示down

?adb shell input keyevent?21 表示left

? adb shell input keyevent?22 表示right

?adb shell input keyevent?66 表示enter

? adb shell input keyevent?4? 表示back

13:模擬滑動輸入:adb shell input touchscreen <x1> <y1> <x2> <y2>

eg: adb shell input touchscreen swipe 18 665 18 350

14:啟動壹個Activity : adb shell am start -n 包名+類名

15:錄制屏幕:adb shell screenrecord /sdcard/demo.mp4

16:重新啟動:adb reboot

17:Monkey的基本用法下面是壹個更為典型的命令行示例,它啟動指定的應用程序,並向其發送500個偽隨機事件:

$ adb shell monkey -p your.package.name -v 500

如果跑桌面或者systemUi的monkey的話:

adb shell monkey -v -v -p 桌面包名 --pct-touch 50 --pct-motion 30 --pct-syskeys 20 --throttle 300 -s 200 200000

18:查找第三方應用的詳細信息:

adb shell dumpsys package +第三方包名(com.txznet.webchat)