在博主加入的軟體測驗技術交流群日常提問中,看到有個成員提了個這樣的問題:
能不能通過腳本來實作多臺設備同時安裝 App?
這個問題之前我有見過,在實際作業中這個需求確實挺常見,比如我想要在很多臺設備中安裝很多的 APK,手動一個個的安裝程序挺痛苦,既然大家都有這樣的述求,所以就干脆寫篇文章解決大家的問題,
☆Pluto:大佬們,怎么寫腳本運行安裝apk包到手機呀?有教程嘛?
☆ 我:不需要寫腳本,通過adb install命令就可以了
☆Pluto:頻繁安裝的話,是不是用腳本來安裝會快點
☆我:通過腳本會更加方便
☆ Pluto:幾臺手機能同時安裝嘛?
☆我:那你要寫代碼通過多執行緒去安裝了
實作程序
核心技術解決方案:
adb 命令 + 多行程/多執行緒
采用的腳本語言:
Java、Python、Shell、bat 都可
因為 Shell 與 bat 直接可以與 adb 命令互動,效率更高,筆者所用的是 Windows 平臺機器,所以本篇文章采用的 bat 腳本實作,
1、識別多設備資訊
要想要在多臺設備上執行,我們需要得到對應的設備資訊,而由于 adb install 命令可以通過-s 引數指定設備:
adb -s deviceName install XXApk
所以我們這里需要得到設備的 deviceName,
思路:adb devices 命令結果保存在本地檔案中
adb devices > devices.txt
2、獲取當前目錄下所有的 APK 檔案
這里通過 bat 腳本實作非常簡單,對應的腳本如下:
dir *.apk /b > apks.txt
同時我們也選擇將所有的 apk 檔案資訊保存到本地的 apks.txt 檔案中,
3、回圈遍歷設備串列執行安裝
for /f "skip=1 delims=device" %%i in (devices.txt) do (
start adb_install %%i
)
解釋:
for /f in (devices.txt)
表示回圈遍歷 devices.txt 檔案中的文本內容
"skip=1 delims=device"
- skip=1 表示跳過第一行,因為 adb devices 輸出的結果中第一行為 List of devices attached,我們需要跳過處理;
- delims=device 表示通過 device 分隔符切分字串,比如 127.0.0.1:62001 device 切分之后的結果為 127.0.0.1:62001
%%i
表示對每一行的文本內容切分之后的結果,如 127.0.0.1:62001,即設備名
start adb_install %%i
這里我們通過 start 命令重新啟動一個單獨的命令列視窗,然后在里面執行 adb_install.bat 腳本,并且攜帶設備名引數
4、安裝程序(adb_install.bat)
對應的腳本內容如下:
@echo off
echo --------------start install apks to %1--------------------
for /f %%i in (apks.txt) do (
echo install %%i to %1...
adb -s %1 install -r %%i
)
echo -----------------%1 finished install----------------------
這里我們通過回圈遍歷所有的 apk 檔案進行安裝,呼叫 adb install 命令,其中-r 引數表示如果應用已安裝,還是會再強制安裝,
對應的腳本檔案及使用方式
目錄結構如下:

multi_install.bat 檔案對應的腳本內容:
@echo off
echo ------------multi install apks start--------------------
echo get all devices...
adb devices > devices.txt
echo get all apks...
dir *.apk /b > apks.txt
for /f "skip=1 delims=device" %%i in (devices.txt) do (
start adb_install %%i
)
exit
adb_install.bat 檔案對應的腳本內容:
@echo off
echo --------------start install apks to %1--------------------
for /f %%i in (apks.txt) do (
echo install %%i to %1...
adb -s %1 install -r %%i
)
echo -----------------%1 finished install----------------------
使用步驟:
1.確保設備已經通過 adb 連接上(adb devices 命令能夠檢測到設備)
2.將所需安裝的 apk 檔案放置與腳本同目錄下
3.雙擊執行 multi_install.bat 即可
執行效果:

好文推薦
軟體測驗人員必讀的經典書籍(附電子書),前阿里大佬給我推薦...
月薪3萬的大廠測驗工程師裸辭3個月,送外賣謀生背后的真實感悟
測驗行業作業4年了,從只會“點點點”到了現在的測驗開發,年薪30W+,還好當時沒有放棄
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/375746.html
標籤:其他
