ADB,即 Android Debug Bridge,是 Android 開發/測驗人員不可替代的強大工具,
adb與應用的連接
1.啟動/停止
啟動 adb server 命令:
adb start-server
(一般無需手動執行此命令,在運行 adb 命令時若發現 adb server 沒有啟動會自動調起,)
停止 adb server 命令:
adb kill-server
2.查看 adb 版本
命令:
adb version
輸出為:
C:\WINDOWS\system32>adb version
Android Debug Bridge version 1.0.41
Version 29.0.6-6198805
Installed as E:\program\android-sdk_r24.4.1-windows\android-sdk-windows\platform-tools\adb.exe
3.查看已連接設備
adb devices
輸出為:
C:\WINDOWS\system32>adb devices
List of devices attached
CVH7N16A12000234 device
顯示屏引數
1.android_id
adb shell settings get secure android_id
2.android系統版本
adb shell getprop ro.build.version.release
3.解析度
adb shell wm size
輸出為:
C:\WINDOWS\system32>adb shell wm size
Physical size: 1440x2560
4.密度
adb shell wm density
輸出為:
Physical density: 560
5.顯示屏引數
adb shell dumpsys window displays
其中 mDisplayId 為 顯示屏編號,init 是初始解析度和螢屏密度,app 的高度比 init 里的要小,表示螢屏底部有虛擬按鍵
adb與應用互動
1.查看前臺 Activity
adb shell dumpsys activity | findstr "mFocusedActivity"
獲取完整路徑:
adb shell dumpsys window | findstr mCurrentFocus
2.查看正在運行的Services
adb shell dumpsys activity services [packagename]
3查看應用詳細資訊
adb shell dumpsys package [packagename]
| command | 用途 |
|---|---|
| start [options] | 啟動 Activity |
| startservice [options] | 啟動 Service |
| broadcast [options] | 發送廣播 |
| force-stop | 停止行程 |
用于決定intent物件的選項如下:
| 引數 | 作用 |
|---|---|
| -a | 指定action,比如 android.intent.action.VIEW |
| -c | 指定 category,比如 android.intent.category.APP_CONTACTS |
| -n | 指定完整 component 名,用于明確指定啟動哪個 Activity,如 com.example.app/.ExampleActivity |
| -W | 輸出完整的打開應用程序 |
am(Activity Manager)命令來啟動一個APP、啟動Activity、啟動廣播和服務等
4.啟動應用
adb shell am start xx
舉例:
C:\WINDOWS\system32>adb shell am start -W com.tencent.mobileqq/com.tencent.mobileqq.activity.SplashActivity
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.tencent.mobileqq/.activity.SplashActivity }
Warning: Activity not started, its current task has been brought to the front
Status: ok
Activity: com.tencent.mobileqq/.activity.SplashActivity
ThisTime: 2916
TotalTime: 2916
WaitTime: 2936
Complete
5.啟動Service
adb shell am startservice "com.example.crime/com.example.crime.MyService"
6.停止Service
adb shell am stopservice [options] <INTENT>
7.發送廣播
adb shell am broadcast -a "our.specified.action"
8.強制停止應用
adb shell am force-stop com.qihoo360.mobilesafe
9.查看應用安裝路徑
adb shell pm path (PACKAGE)
舉例:
C:\WINDOWS\system32>adb shell pm path com.tencent.mobileqq
package:/data/app/com.tencent.mobileqq-xt0XnDpe7yq8Z5YGef0iEA==/base.apk
10.查看手機應用
adb shell pm list packages
可在 adb shell pm list packages 的基礎上可以加一些引數進行過濾查看不同的串列,支持的過濾引數如下:
| 引數 | 顯示串列 |
|---|---|
| 無 | 所有應用 |
| -f | 顯示應用關聯的apk檔案 |
| -d | 只顯示disabled的應用 |
| -e | 只顯示enabled的應用 |
| -s | 只顯示系統應用 |
| -3 | 只顯示第三方應用 |
| -i | 顯示應用的 installer |
| -u | 包含已卸載應用 |
舉例:
1.列印第三方應用的串列
adb shell pm list package -3
輸出為:
C:\WINDOWS\system32>adb shell pm list package -3
package:com.quark.browser
package:com.safervpn.android
package:de.blinkt.openvpn
package:com.zhiliaoapp.musically.go
package:net.ivpn.client
package:com.networkprotect.ultravpn
package:com.google.android.apps.docs.editors.docs
package:com.expressvpn.vpn
package:com.sharpvpn.freefast_ipchanger
package:com.whatsapp
package:com.google.android.apps.docs.editors.sheets
package:com.google.android.apps.docs.editors.slides
package:com.digitanlabs.apps.supervpn
package:com.gaditek.purevpnics
package:com.speedify.speedifyandroid
package:net.hideman.free
package:net.safemove.android.cip
package:com.securitykiss.android
package:im.zpn
2.包名含有某字符的應用
C:\WINDOWS\system32>adb shell pm list packages tencent
package:com.tencent.mm
package:com.tencent.qqlivei18n
package:com.tencent.mobileqq
當然也可以用管道符來過濾:
C:\WINDOWS\system32>adb shell pm list packages | findstr tencent
package:com.tencent.mm
package:com.tencent.qqlivei18n
package:com.tencent.mobileqq
11.安裝apk
adb install xx.apk
允許覆寫安裝:
adb install -r xx.apk
12.卸載apk
adb uninstall com.tencent.mobileqq
卸載并保留資料:
adb uninstall -k com.tencent.mobileqq
13.指定adb server的網路埠
adb -P <port> start-server
檔案管理
1.復制設備里的檔案到電腦
adb pull <設備里的檔案路徑> [電腦上的目錄]
其中 電腦上的目錄 引數可以省略,默認復制到當前目錄,
2.復制電腦里的檔案到設備
adb push <電腦上的檔案路徑> <設備里的目錄>
事件輸入
1.模擬按鍵操作
adb shell input keyevent < keycode >
不同的 keycode 能實作不同的功能,串列如下:
keycode: 含義
3 HOME 鍵
4 回傳鍵
5 打開撥號應用
6 掛斷電話
24 增加音量
25 降低音量
26 電源鍵
27 拍照(需要在相機應用里)
64 打開瀏覽器
82 選單鍵
85 播放/暫停
86 停止播放
87 播放下一首
88 播放上一首
122 移動游標到行首或串列頂部
123 移動游標到行末或串列底部
126 恢復播放
127 暫停播放
164 靜音
176 打開系統設定
187 切換應用
207 打開聯系人
208 打開日歷
209 打開音樂
210 打開計算器
220 降低螢屏亮度
221 提高螢屏亮度
223 系統休眠
224 點亮螢屏
231 打開語音助手
276 如果沒有 wakelock 則讓系統休眠
亮屏熄屏:
adb shell input keyevent 26
2.滑動螢屏
adb shell input swipe x1 y1 x2 y2
引數分別表示:起始點x坐標 起始點y坐標 結束點x坐標 結束點y坐標
3.輸入文本
adb shell input text 123
4.模擬螢屏點擊事件
adb shell input tap 500 500
事件輸出
1.日志資訊:
使用adb logcat可以顯示日志資訊
2.dumpsys:
dumpsys命令可以提供非常多的系統資訊,可以通過adb shell service list來查看dumpsys能提供查詢資訊的服務,
列舉幾個:
查看電池資訊
adb shell dumpsys battery
查看鬧鐘資訊
adb shell dumpsys alarm
3.截屏
adb shell screencap /imgpath/screen.png
4.錄屏
adb shell screenrecord /imgpath/demo.mp4
imgpath可以根據自己相冊里面的照片路徑資訊獲取
完整的命令:參考鏈接
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/273750.html
標籤:其他
上一篇:macOS部署Appium
