自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

盤點Python編程的簡易版自動化工具——ADB史上全操作

開發(fā) 后端 自動化
ADB,中文名安卓調(diào)試橋,它是一種功能多樣的命令行工具,可用于執(zhí)行各種設(shè)備操作(例如安裝和調(diào)試應(yīng)用),并提供對 Unix shell(可用來在設(shè)備上運行各種命令)的訪問權(quán)限。

[[397623]]

前言

ADB,中文名安卓調(diào)試橋,它是一種功能多樣的命令行工具,可用于執(zhí)行各種設(shè)備操作(例如安裝和調(diào)試應(yīng)用),并提供對 Unix shell(可用來在設(shè)備上運行各種命令)的訪問權(quán)限。它是一種客戶端-服務(wù)器程序,包括以下三個組件:

客戶端:用于發(fā)送命令??蛻舳嗽陂_發(fā)計算機上運行。您可以通過發(fā)出 ADB命令來從命令行終端調(diào)用客戶端。

守護進程:在設(shè)備上運行命令。守護進程在每個設(shè)備上作為后臺進程運行。

服務(wù)器:管理客戶端和守護進程之間的通信。服務(wù)器在開發(fā)機器上作為后臺進程運行。

通過這個命令行工具我們可以使用它來操作手機上的資源,而且不需要借助Android SDK就可以輕松操控手機里的應(yīng)用。

一、工作原理

當(dāng)您啟動某個ADB客戶端時,客戶端會先檢查是否有 ADB服務(wù)器進程正在運行。如果沒有,它將啟動服務(wù)器進程。服務(wù)器在啟動后會與本地 TCP 端口 5037 綁定,并監(jiān)聽 ADB 客戶端發(fā)出的命令 - 所有 ADB客戶端均通過端口 5037 與 ADB 服務(wù)器通信。

然后,服務(wù)器會與所有正在運行的設(shè)備建立連接。它通過掃描 5555 到 5585 之間(該范圍供前 16 個模擬器使用)的奇數(shù)號端口查找模擬器。服務(wù)器一旦發(fā)現(xiàn)ADB守護進程 (ADBD),便會與相應(yīng)的端口建立連接。請注意,每個模擬器都使用一對按順序排列的端口 - 用于控制臺連接的偶數(shù)號端口和用于ADB 連接的奇數(shù)號端口。

二、下載ADB

這里小編已經(jīng)給大家準(zhǔn)備好了,下載地址:https://u062.com/file/7715018-452566390,如果你想在任何文件目錄使用ADB的話,必須把ADB的安裝目錄加入環(huán)境變量,然后我們可以使用ADB的界面工具,它可以很直觀方便的執(zhí)行ADB的命令并顯示結(jié)果,這個工具就是APKInstaller,下載地址:https://u062.com/file/7715018-452566398,如圖:

三、基本操作

1.設(shè)備的啟動關(guān)閉操作

這里我選擇連接模擬器,看看連接有什么區(qū)別。

1).連接設(shè)備

  1. adb connect 127.0.0.1:62001#連接一個模擬器 

2).啟動服務(wù)

  1. adb start-server#開啟服務(wù) 

3).查看設(shè)備

  1. adb devices #查看設(shè)備信息 
  2. adb version #設(shè)備版本 
  3. adb help #幫助文檔  
  4. adb get-state #查看設(shè)備狀態(tài) device(正常連接),offline(連接異常),unknown(沒有連接) 
  5. adb get-serialno #獲取序列號 
  6. adb get-devpath #獲取設(shè)備路徑 
  7. adb shell cat /system/build.prop #獲取設(shè)備名稱 

4).操作多個設(shè)備

  1. adb —a 監(jiān)聽所有網(wǎng)絡(luò)接口,而不僅僅是localhost 
  2.   -d 使用USB設(shè)備(如果多個設(shè)備連接錯誤) 
  3.   -e 使用TCP / IP設(shè)備(如果可用多個TCP / IP設(shè)備錯誤) 
  4.   -s 使用給定的序列號(覆蓋ANDROID_SERIAL) 
  5.   -t 使用給定設(shè)備ID 
  6.   -h adb服務(wù)器主機名稱(默認(rèn)= localhost) 
  7.   -p adb服務(wù)器的端口(默認(rèn)= 5037) 
  8.   -l 監(jiān)聽來自套接字的adb服務(wù)器(默認(rèn)= tcp: localhost: 5037) 
  9.   例如:adb -s 127.0.0.1:62001 shell 

這樣我們呢就進入了模擬器的Shell界面了。

5).關(guān)閉服務(wù)

  1. adb kill-server 

6).設(shè)置監(jiān)聽TCP/IP的端口

  1. adb tcpip 5555 

7).斷開連接

  1. adb disconnect 127.0.0.1:62001 

8).關(guān)機與重啟

  1. adb reboot #設(shè)備重啟 
  2. adb shutdown #設(shè)備關(guān)機 

9).Root權(quán)限

  1. adb root   # 正常輸出:restarting adbd as root 
  2. adb unroot # 取消root權(quán)限 

10).刷機模式

  1. adb reboot bootloader #重啟到bootloader,即刷機模式 
  2. adb reboot recovery #重啟到recovery,即恢復(fù)模式 
  3. adb sideload <path-to-update.zip>#更新系統(tǒng) 

11).命令轉(zhuǎn)載

  1. adb wait-for-device # 在模擬器/設(shè)備連接之前把命令轉(zhuǎn)載在adb的命令器中 

2.設(shè)備應(yīng)用操作

1).查看應(yīng)用

  1. adb shell pm list packages #所有應(yīng)用 
  2. adb shell pm list package -f # 
  3. adb shell pm list packages -s #系統(tǒng)應(yīng)用 
  4. adb shell pm list packages -3 #三方應(yīng)用 
  5. adb shell pm list packages | findstr bluetooth #過濾應(yīng)用  管道符進行搜索,Linux下使用grep 

2).查看應(yīng)用的Activity信息

  1. adb shell dumpsys package com.android.bluetooth #查看系統(tǒng)應(yīng)用藍牙的包名信息 
  2. adb shell dumpsys activity activities #查看所有的活動程序包名 
  3. adb shell dumpsys activity | findstr mFocusedActivity #查看當(dāng)前重啟的是哪個包 
  4. adb shell dumpsys activity top | findstr activity #查找設(shè)備活動程序的父窗口 

3).清除應(yīng)用數(shù)據(jù)和緩存

  1. adb shell pm clear 

3.安裝卸載應(yīng)用

  1. adb install D:/aa.apk #安裝在電腦上的apk 
  2. adb install -r D:/aa.apk#覆蓋安裝 保留數(shù)據(jù)和緩存文件 -g 授予所有運行時權(quán)限 
  3. adb shell pm install /scard/picture#安裝在手機上的apk 
  4. adb uninstall -k 包名 
  5. 在模擬器或者真機中需要使用 -s來指定 

4.日志

  1. adb logcat#查看日志 
  2. adb logcat -v time #打印詳情日志,會記錄當(dāng)前的所有操作行為以及產(chǎn)生的結(jié)果,默認(rèn)持續(xù)監(jiān)聽,按下Ctrl+c即可結(jié)束 
  3. adb logcat -v time >D:\log.txt #保存日志到電腦 
  4. adb logcat -f /sdcard/1.txt    #保存日志到手機 
  5. adb logcat | findstr com.android.bluetooth #保存指定包名的日志 
  6. adb logcat -c  #清除之前的日志輸出 
  7. adb logcat | findstr ActivityManager  #查看當(dāng)前正在運行的Activity 
  8. adb logcat | findstr Displayed        #查看當(dāng)前正在運行的Activity 
  9. adb bugreport #查看bug報告 
  10. adb logcat -b radio #無線通訊的日志 
  11. adb shell dmesg #內(nèi)核日志 

5.設(shè)備文件操作

  1. #把電腦上的文件傳到手機儲存卡中 
  2. adb push C:\Users\Administrator\Desktop\1.gif /sdcard/ 
  3.  
  4. #把手機存儲卡里的文件傳到電腦 
  5. adb pull /sdcard/1.gif C:\Users\Administrator\Desktop\ 

6.截屏,錄屏

  1. adb shell screencap /sdcard/1.png #當(dāng)前窗口截屏保存到手機 
  2. adb shell /system/bin/screencap -p /sdcard/2.png 
  3. adb exec-out screencap -p >1.png #截圖保存到電腦 
  4. adb shell screenrecord >1.mp4  #屏幕錄像,Ctrl+c停止錄制 
  5. --size #視頻大小 
  6. --bit-rate #比特率 
  7. --time-limit #持續(xù)時間 
  8. --verbose #命令行顯示log信息 
  9. 注:模擬器和安卓4.4以下版本不支持錄屏 

7.Shell

Shell里有很多命令,我們簡單列舉下:

命令 功能
cat 顯示文件內(nèi)容
cd 切換目錄
chmod 改變文件的存取模式/訪問權(quán)限
df 查看磁盤空間使用情況
grep 過濾輸出
kill 殺死指定 PID 的進程
ls 列舉目錄內(nèi)容
mount 掛載目錄的查看和管理
mv 移動或重命名文件
ps 查看正在運行的進程
rm 刪除文件
top 查看進程的資源占用情況

1).進入退出

  1. adb shell #進入shell 返回$ 則沒有root權(quán)限  #有root權(quán)限 
  2. exit #退出shell 

2).設(shè)備的相關(guān)信息

  1. adb shell getprop ro.build.version.release #安卓系統(tǒng)版本 
  2. adb shell getprop ro.product.model #查看設(shè)備型號 
  3. adb shell cat /sys/class/net/wlan0/address #查看MAC地址 
  4. adb shell wm size #設(shè)備屏幕分辨率 
  5. adb shell wm size 400X654 #設(shè)置屏幕分辨率 
  6. adb shell wm size reset #恢復(fù)原屏幕分辨率 
  7. adb shell wm density #設(shè)備屏幕密度 
  8. adb shell wm density 100 #修改屏幕密度為100dpi 
  9. adb shell wm density reset #恢復(fù)原屏幕密度 
  10. adb shell wm overscan 10,20,30,100 #顯示區(qū)域 
  11. adb shell wm overscan reset #恢復(fù)原顯示區(qū)域 
  12. adb shell dumpsys window displays #顯示屏參數(shù) 
  13. adb shell service list  #查看后臺services信息 
  14. adb shell settings put global adb_enabled 0 #關(guān)閉 USB 調(diào)試模式 
  15. adb shell uiautomator dump   #獲取當(dāng)前界面的控件信息 
  16. adb shell ime list -s  #設(shè)備上的輸入法 

3).進程

  1. adb shell ps #查看手機正在運行的進程 adb shell ps | findstr bluetooth  
  2. adb shell ps -x pid #查看指定pid的進程狀態(tài)信息 
  3. adb shell kill pid #根據(jù)進程號殺進程 
  4. adb shell procrank #殺進程  
  5. adb shell start adbd #啟動守護進程 
  6. adb shell stop adbd  #關(guān)閉守護進程 

4).性能分析

  1. adb shell cat /proc/cpuinfo #獲取CPU序列號 
  2. adb shell cat /proc/meminfo #查看當(dāng)前內(nèi)存占用 
  3. adb shell cat /proc/iomem #查看IO內(nèi)存分區(qū) 
  4. adb remount #將system分區(qū)重新掛載為可讀寫分區(qū) 
  5. adb shell dumpsys meminfo bluetooth #查看藍牙占用的內(nèi)存 
  6. adb shell dumpsys cpuinfo | findstr bluetooth #獲取CPU 
  7. adb shell top #查看實時資源占用情況 
  8. adb shell top -n 1 | findstr bluetooth #刷新一次內(nèi)存信息,然后返回藍牙內(nèi)存占用 
  9. adb shell top #查看設(shè)備cpu和內(nèi)存占用情況 
  10. adb shell top -m 6 #查看占用內(nèi)存前6的app 
  11. adb shell dumpsys gfxinfo bluetooth #獲取流暢度相關(guān) 
  12. adb shell netcfg #查看設(shè)備的網(wǎng)絡(luò)連接情況 
  13. adb shell ifconfig wlan0 #獲取wlan0的IP地址和子網(wǎng)掩碼 

5).文件操作

  1. adb shell ls #列出目錄下的文件和文件夾 
  2. adb shell cd sys #切換當(dāng)前目錄為sys 
  3. adb shell rename 舊文件名 新文件名 #重命名文件名 
  4. adb shell rm /sys/1.apk #刪除指定目錄下的文件 
  5. adb shell rm -r #刪除指定目錄下的文件夾及其子目錄 
  6. adb shell mv 舊文件名 新文件名 #移動文件 
  7. adb shell chmod 777 1.jpg #設(shè)置文件權(quán)限 
  8. adb shell mkdir 文件夾名 #新建文件夾 
  9. adb shell cat 文件 #查看文件內(nèi)容 
  10. adb shell cat /data/misc/wifi/*.conf #查看WiFi密碼 

6).按鍵

  1. adb shell input keyevent 3 # HOME 鍵 
  2. adb shell input keyevent 4 # 返回鍵 
  3. adb shell input keyevent 5 # 撥號 
  4. adb shell input keyevent 6 # 掛斷 
  5. adb shell input keyevent 24 # 音量+ 
  6. adb shell input keyevent 25 # 音量- 
  7. adb shell input keyevent 26 # 電源鍵 
  8. adb shell input keyevent 27 # 拍照 
  9. adb shell input keyevent 64 # 打開瀏覽器 
  10. adb shell input keyevent 82 # 菜單鍵 
  11. adb shell input keyevent 85 # 播放/暫停 
  12. adb shell input keyevent 86 # 停止播放 
  13. adb shell input keyevent 87 # 播放下一首 
  14. adb shell input keyevent 88 # 播放上一首 
  15. adb shell input keyevent 122 #移動光標(biāo)到行首或列表頂部  
  16. adb shell input keyevent 123 #移動光標(biāo)到行尾或列表底部 
  17. adb shell input keyevent 126 # 恢復(fù)播放 
  18. adb shell input keyevent 127 # 暫停播放 
  19. adb shell input keyevent 164 # 靜音  
  20. adb shell input keyevent 176 # 打開系統(tǒng)設(shè)置  
  21. adb shell input keyevent 187 # 切換應(yīng)用 
  22. adb shell input keyevent 207 # 打開聯(lián)系人  
  23. adb shell input keyevent 208 # 打開日歷 
  24. adb shell input keyevent 209 # 打開音樂 
  25. adb shell input keyevent 210 # 打開計算器  
  26. adb shell input keyevent 220 # 降低屏幕亮度 
  27. adb shell input keyevent 221 # 提高屏幕亮度 
  28. adb shell input keyevent 223 # 休眠 
  29. adb shell input keyevent 224 # 點亮屏幕 
  30. adb shell input keyevent 231 # 打開語音助手 
  31. adb shell input keyevent 276 # 如果沒有 wakelock 則讓系統(tǒng)休眠 

7).點擊,滑動屏幕

  1. adb shell input tap 100 300 #在(100,300)處點擊 
  2. adb shell input swipe 100 1200 100 200 #上滑 
  3. adb shell input swipe 100 200 100 1200  #下滑 

8).輸入

  1. adb shell input text hello  #輸入hello 

9).電池

  1. adb shell dumpsys battery 

10).設(shè)備ID

  1. adb shell settings get secure android_id 

11).無線網(wǎng)絡(luò)

在操作前必須獲得Root權(quán)限。

  1. adb shell svc wifi enable  #開啟WiFi 
  2. adb shell svc wifi disable #關(guān)閉WiFi 

8.端口轉(zhuǎn)發(fā)

  1. adb forward tcp:60 tcp:70 #將60端口轉(zhuǎn)到70端口 
  2. adb forward tcp:60 local:logd # 將60端口轉(zhuǎn)到local:logd的轉(zhuǎn)發(fā) 

9.Activity 管理器

  1. adb shell am start -n activity路徑 #啟動某一個activity 
  2. adb shell am start -a android.intent.action.VIEW -d www.baidu.com#啟動默認(rèn)瀏覽器打開一個網(wǎng)頁 
  3. adb shell am start -n com.android.camera/.Camera #啟動相機 
  4. adb shell am start -a android.intent.action.CALL -d tel:10086#啟動撥號10086 
  5. adb shell am startservice -n 服務(wù) #開啟服務(wù) 
  6. adb shell am stopservice  服務(wù) #停止服務(wù) 
  7. adb shell am force-stop bluetooth #殺死藍牙進程 
  8. adb shell am kill 進程號  #殺掉進程 
  9. adb shell am broadcast -a android.intent.action.BOOT_COMPLETED #向所有組件廣播設(shè)備啟動完畢 

10.調(diào)用軟件包管理器

  1. adb shell pm list permissions #查看權(quán)限 
  2. adb shell pm list permission-groups #輸出所有已知的權(quán)限組 
  3. adb shell pm list permissions -d -g -f #查看系統(tǒng)危險權(quán)限并按組輸出所有信息 
  4. adb shell pm list instrumentation#列出所有測試軟件包,-f列出測試軟件包的APK文件 
  5. adb shell pm path com.android.bluetooth #查看軟件安裝路徑 
  6. adb shell pm list features  #輸出系統(tǒng)的所有功能 
  7. adb shell pm list libraries #輸出當(dāng)前設(shè)備支持的所有庫 
  8. adb shell pm list users #輸出系統(tǒng)中的所有用戶 
  9. adb shell pm enable ** #啟用給定的軟件包或組件(寫為“package/class”) 
  10. adb shell pm disable ** #停用給定的軟件包或組件(寫為“package/class”) 
  11. adb shell pm get-max-users #輸出設(shè)備支持的最大用戶數(shù) 

11.備份

adb backup -all #備份所有數(shù)據(jù)

12.壓力測試Monkey

  1. 格式:adb shell monkey -v -p your.package.name 500 
  2. adb shell monkey -v -p com.tencent.weishi 500 

四、總結(jié)

以上就是ADB的全部內(nèi)容了,通過對ADB的了解我相信大家應(yīng)該能通過Python編程做一個簡易版的自動化工具了,不再依靠Airtest。

本文轉(zhuǎn)載自微信公眾號「IT共享之家」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系IT共享之家公眾號。

 

責(zé)任編輯:武曉燕 來源: IT共享之家
相關(guān)推薦

2010-05-26 16:21:25

2022-07-20 12:18:36

Python自動化工具tox

2016-09-08 15:20:04

JavascriptNodeGulp

2021-05-19 17:04:29

Python阿里自動化工具

2023-12-29 08:31:49

Spring框架模塊

2010-12-06 09:56:52

數(shù)據(jù)中心網(wǎng)絡(luò)

2017-01-13 08:37:57

PythonAlphaGoMuGo

2024-06-13 12:11:13

2021-07-12 15:50:55

Go 語言netstat命令

2021-05-08 09:00:53

AI 工具人工智能

2024-03-08 13:11:05

前端自動化工具

2020-03-31 10:58:35

網(wǎng)絡(luò)自動化SD-WAN軟件定義網(wǎng)絡(luò)

2022-02-11 13:44:56

fiber架構(gòu)React

2024-04-08 11:45:11

Pythonpyinfra編程語言

2019-12-11 11:54:37

IT工具云計算

2023-01-07 23:24:00

python格式化工具

2022-10-20 11:49:49

JS動畫幀,CSS

2013-12-19 09:56:12

云計算自動化工具云計算管理

2019-12-04 08:00:00

IT基礎(chǔ)架構(gòu)自動化工具

2020-12-23 10:43:40

云計算基礎(chǔ)設(shè)施自動化工具
點贊
收藏

51CTO技術(shù)棧公眾號