前面給大家分享了Airtest,感興趣的小夥伴,可以前往:手機自動化測試IDE—–Airtest實戰篇、手機自動化測試IDE —– 手把手教你用Airtest模擬器來連接手機、手機自動化測試IDE—–Airtest基本操作方法、手機自動化測試IDE —– Airtest的安裝和IDE控件詳解,任君挑選。
前言
ADB,中文名安卓調試橋,它是一種功能多樣的命令行工具,可用於執行各種設備操作(例如安裝和調試應用),並提供對 Unix shell(可用來在設備上運行各種命令)的訪問權限。它是一種客戶端-服務器程序,包括以下三個組件:
客戶端:用於發送命令。客戶端在開發計算機上運行。您可以通過發出 ADB命令來從命令行終端調用客戶端。
守護進程:在設備上運行命令。守護進程在每個設備上作為後台進程運行。
服務器:管理客戶端和守護進程之間的通信。服務器在開發機器上作為後台進程運行。
通過這個命令行工具我們可以使用它來操作手機上的資源,而且不需要藉助Android SDK就可以輕鬆操控手機里的應用。
一、工作原理
當您啟動某個ADB客戶端時,客戶端會先檢查是否有 ADB服務器進程正在運行。如果沒有,它將啟動服務器進程。服務器在啟動後會與本地 TCP 端口 5037 綁定,並監聽 ADB 客戶端發出的命令 – 所有 ADB客戶端均通過端口 5037 與 ADB 服務器通信。
然後,服務器會與所有正在運行的設備建立連接。它通過掃描 5555 到 5585 之間(該範圍供前 16 個模擬器使用)的奇數號端口查找模擬器。服務器一旦發現ADB守護進程 (ADBD),便會與相應的端口建立連接。請注意,每個模擬器都使用一對按順序排列的端口 – 用於控制台連接的偶數號端口和用於ADB 連接的奇數號端口。
二、下載ADB
這裡小編已經給大家準備好了,下載地址:
https://u062.com/file/7715018-452566390,如果你想在任何文件目錄使用ADB的話,必須把ADB的安裝目錄加入環境變量,然後我們可以使用ADB的界面工具,它可以很直觀方便的執行ADB的命令並顯示結果,這個工具就是APKInstaller,下載地址:https://u062.com/file/7715018-452566398,如圖:


三、基本操作
1.設備的啟動關閉操作
這裡我選擇連接模擬器,看看連接有什麼區別。
1).連接設備
adb connect 127.0.0.1:62001#連接一個模擬器2).啟動服務
adb start-server#開啟服務3).查看設備
adb devices #查看設備信息
adb version #設備版本
adb help #幫助文檔
adb get-state #查看設備狀態 device(正常連接),offline(連接異常),unknown(沒有連接)
adb get-serialno #獲取序列號
adb get-devpath #獲取設備路徑
adb shell cat /system/build.prop #獲取設備名稱4).操作多個設備
adb —a 監聽所有網絡接口,而不僅僅是localhost
-d 使用USB設備(如果多個設備連接錯誤)
-e 使用TCP / IP設備(如果可用多個TCP / IP設備錯誤)
-s 使用給定的序列號(覆蓋ANDROID_SERIAL)
-t 使用給定設備ID
-h adb服務器主機名稱(默認= localhost)
-p adb服務器的端口(默認= 5037)
-l 監聽來自套接字的adb服務器(默認= tcp: localhost: 5037)
例如:adb -s 127.0.0.1:62001 shell
這樣我們呢就進入了模擬器的Shell界面了。
5).關閉服務
adb kill-server6).設置監聽TCP/IP的端口
adb tcpip 55557).斷開連接
adb disconnect 127.0.0.1:620018).關機與重啟
adb reboot #設備重啟
adb shutdown #設備關機9).Root權限
adb root # 正常輸出:restarting adbd as root
adb unroot # 取消root權限10).刷機模式
adb reboot bootloader #重啟到bootloader,即刷機模式
adb reboot recovery #重啟到recovery,即恢復模式
adb sideload <path-to-update.zip>#更新系統11).命令轉載
adb wait-for-device # 在模擬器/設備連接之前把命令轉載在adb的命令器中2.設備應用操作
1).查看應用
adb shell pm list packages #所有應用
adb shell pm list package -f #
adb shell pm list packages -s #系統應用
adb shell pm list packages -3 #三方應用
adb shell pm list packages | findstr bluetooth #過濾應用 管道符進行搜索,Linux下使用grep
2).查看應用的Activity信息
adb shell dumpsys package com.android.bluetooth #查看系統應用藍牙的包名信息
adb shell dumpsys activity activities #查看所有的活動程序包名
adb shell dumpsys activity | findstr mFocusedActivity #查看當前重啟的是哪個包
adb shell dumpsys activity top | findstr activity #查找設備活動程序的父窗口
3).清除應用數據和緩存
adb shell pm clear
3.安裝卸載應用
adb install D:/aa.apk #安裝在電腦上的apk
adb install -r D:/aa.apk#覆蓋安裝 保留數據和緩存文件 -g 授予所有運行時權限
adb shell pm install /scard/picture#安裝在手機上的apk
adb uninstall -k 包名
在模擬器或者真機中需要使用 -s來指定4.日誌
adb logcat#查看日誌
adb logcat -v time #打印詳情日誌,會記錄當前的所有操作行為以及產生的結果,默認持續監聽,按下Ctrl+c即可結束
adb logcat -v time >D:log.txt #保存日誌到電腦
adb logcat -f /sdcard/1.txt #保存日誌到手機
adb logcat | findstr com.android.bluetooth #保存指定包名的日誌
adb logcat -c #清除之前的日誌輸出
adb logcat | findstr ActivityManager #查看當前正在運行的Activity
adb logcat | findstr Displayed #查看當前正在運行的Activity
adb bugreport #查看bug報告
adb logcat -b radio #無線通訊的日誌
adb shell dmesg #內核日誌5.設備文件操作
#把電腦上的文件傳到手機儲存卡中
adb push C:UsersAdministratorDesktop1.gif /sdcard/
#把手機存儲卡里的文件傳到電腦
adb pull /sdcard/1.gif C:UsersAdministratorDesktop


6.截屏,錄屏
adb shell screencap /sdcard/1.png #當前窗口截屏保存到手機
adb shell /system/bin/screencap -p /sdcard/2.png
adb exec-out screencap -p >1.png #截圖保存到電腦
adb shell screenrecord >1.mp4 #屏幕錄像,Ctrl+c停止錄製
--size #視頻大小
--bit-rate #比特率
--time-limit #持續時間
--verbose #命令行顯示log信息
註:模擬器和安卓4.4以下版本不支持錄屏7.Shell
Shell里有很多命令,我們簡單列舉下:
| 命令 | 功能 |
| cat | 顯示文件內容 |
| cd | 切換目錄 |
| chmod | 改變文件的存取模式/訪問權限 |
| df | 查看磁盤空間使用情況 |
| grep | 過濾輸出 |
| kill | 殺死指定 PID 的進程 |
| ls | 列舉目錄內容 |
| mount | 掛載目錄的查看和管理 |
| mv | 移動或重命名文件 |
| ps | 查看正在運行的進程 |
| rm | 刪除文件 |
| top | 查看進程的資源佔用情況 |
1).進入退出
adb shell #進入shell 返回$ 則沒有root權限 #有root權限
exit #退出shell2).設備的相關信息
adb shell getprop ro.build.version.release #安卓系統版本
adb shell getprop ro.product.model #查看設備型號
adb shell cat /sys/class/net/wlan0/address #查看MAC地址
adb shell wm size #設備屏幕分辨率
adb shell wm size 400X654 #設置屏幕分辨率
adb shell wm size reset #恢復原屏幕分辨率
adb shell wm density #設備屏幕密度
adb shell wm density 100 #修改屏幕密度為100dpi
adb shell wm density reset #恢復原屏幕密度
adb shell wm overscan 10,20,30,100 #顯示區域
adb shell wm overscan reset #恢復原顯示區域
adb shell dumpsys window displays #顯示屏參數
adb shell service list #查看後台services信息
adb shell settings put global adb_enabled 0 #關閉 USB 調試模式
adb shell uiautomator dump #獲取當前界面的控件信息
adb shell ime list -s #設備上的輸入法3).進程
adb shell ps #查看手機正在運行的進程 adb shell ps | findstr bluetooth
adb shell ps -x pid #查看指定pid的進程狀態信息
adb shell kill pid #根據進程號殺進程
adb shell procrank #殺進程
adb shell start adbd #啟動守護進程
adb shell stop adbd #關閉守護進程4).性能分析
adb shell cat /proc/cpuinfo #獲取CPU序列號
adb shell cat /proc/meminfo #查看當前內存佔用
adb shell cat /proc/iomem #查看IO內存分區
adb remount #將system分區重新掛載為可讀寫分區
adb shell dumpsys meminfo bluetooth #查看藍牙佔用的內存
adb shell dumpsys cpuinfo | findstr bluetooth #獲取CPU
adb shell top #查看實時資源佔用情況
adb shell top -n 1 | findstr bluetooth #刷新一次內存信息,然後返回藍牙內存佔用
adb shell top #查看設備cpu和內存佔用情況
adb shell top -m 6 #查看佔用內存前6的app
adb shell dumpsys gfxinfo bluetooth #獲取流暢度相關
adb shell netcfg #查看設備的網絡連接情況
adb shell ifconfig wlan0 #獲取wlan0的IP地址和子網掩碼5).文件操作
adb shell ls #列出目錄下的文件和文件夾
adb shell cd sys #切換當前目錄為sys
adb shell rename 舊文件名 新文件名 #重命名文件名
adb shell rm /sys/1.apk #刪除指定目錄下的文件
adb shell rm -r #刪除指定目錄下的文件夾及其子目錄
adb shell mv 舊文件名 新文件名 #移動文件
adb shell chmod 777 1.jpg #設置文件權限
adb shell mkdir 文件夾名 #新建文件夾
adb shell cat 文件 #查看文件內容
adb shell cat /data/misc/wifi/*.conf #查看WiFi密碼6).按鍵
adb shell input keyevent 3 # HOME 鍵
adb shell input keyevent 4 # 返回鍵
adb shell input keyevent 5 # 撥號
adb shell input keyevent 6 # 掛斷
adb shell input keyevent 24 # 音量+
adb shell input keyevent 25 # 音量-
adb shell input keyevent 26 # 電源鍵
adb shell input keyevent 27 # 拍照
adb shell input keyevent 64 # 打開瀏覽器
adb shell input keyevent 82 # 菜單鍵
adb shell input keyevent 85 # 播放/暫停
adb shell input keyevent 86 # 停止播放
adb shell input keyevent 87 # 播放下一首
adb shell input keyevent 88 # 播放上一首
adb shell input keyevent 122 #移動光標到行首或列表頂部
adb shell input keyevent 123 #移動光標到行尾或列表底部
adb shell input keyevent 126 # 恢復播放
adb shell input keyevent 127 # 暫停播放
adb shell input keyevent 164 # 靜音
adb shell input keyevent 176 # 打開系統設置
adb shell input keyevent 187 # 切換應用
adb shell input keyevent 207 # 打開聯繫人
adb shell input keyevent 208 # 打開日曆
adb shell input keyevent 209 # 打開音樂
adb shell input keyevent 210 # 打開計算器
adb shell input keyevent 220 # 降低屏幕亮度
adb shell input keyevent 221 # 提高屏幕亮度
adb shell input keyevent 223 # 休眠
adb shell input keyevent 224 # 點亮屏幕
adb shell input keyevent 231 # 打開語音助手
adb shell input keyevent 276 # 如果沒有 wakelock 則讓系統休眠7).點擊,滑動屏幕
adb shell input tap 100 300 #在(100,300)處點擊
adb shell input swipe 100 1200 100 200 #上滑
adb shell input swipe 100 200 100 1200 #下滑8).輸入
adb shell input text hello #輸入hello9).電池
adb shell dumpsys battery
10).設備ID
adb shell settings get secure android_id11).無線網絡
在操作前必須獲得Root權限。
adb shell svc wifi enable #開啟WiFi
adb shell svc wifi disable #關閉WiFi8.端口轉發
adb forward tcp:60 tcp:70 #將60端口轉到70端口
adb forward tcp:60 local:logd # 將60端口轉到local:logd的轉發9.Activity 管理器
adb shell am start -n activity路徑 #啟動某一個activity
adb shell am start -a android.intent.action.VIEW -d www.baidu.com#啟動默認瀏覽器打開一個網頁
adb shell am start -n com.android.camera/.Camera #啟動相機
adb shell am start -a android.intent.action.CALL -d tel:10086#啟動撥號10086
adb shell am startservice -n 服務 #開啟服務
adb shell am stopservice 服務 #停止服務
adb shell am force-stop bluetooth #殺死藍牙進程
adb shell am kill 進程號 #殺掉進程
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED #向所有組件廣播設備啟動完畢10.調用軟件包管理器
adb shell pm list permissions #查看權限
adb shell pm list permission-groups #輸出所有已知的權限組
adb shell pm list permissions -d -g -f #查看系統危險權限並按組輸出所有信息
adb shell pm list instrumentation#列出所有測試軟件包,-f列出測試軟件包的APK文件
adb shell pm path com.android.bluetooth #查看軟件安裝路徑
adb shell pm list features #輸出系統的所有功能
adb shell pm list libraries #輸出當前設備支持的所有庫
adb shell pm list users #輸出系統中的所有用戶
adb shell pm enable ** #啟用給定的軟件包或組件(寫為“package/class”)
adb shell pm disable ** #停用給定的軟件包或組件(寫為“package/class”)
adb shell pm get-max-users #輸出設備支持的最大用戶數11.備份
adb backup -all #備份所有數據12.壓力測試Monkey
格式:adb shell monkey -v -p your.package.name 500
adb shell monkey -v -p com.tencent.weishi 500
四、總結
以上就是ADB的全部內容了,通過對ADB的了解我相信大家應該能通過Python編程做一個簡易版的自動化工具了,不再依靠Airtest。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/258725.html
微信掃一掃
支付寶掃一掃