需求背景
有一個版本需要按照渠道區(qū)分歡迎頁樣式,需要每個渠道包都檢查一次歡迎頁,總共100+個渠道包手工檢查非常麻煩。鑒于檢查歡迎頁樣式步驟簡單,只需安裝后啟動APP檢查首個歡迎頁即可,所以寫了一個簡單的腳本來執(zhí)行這個操作。
腳本設計思路
- 安裝app→ 啟動app→等待歡迎頁出現(xiàn)→截圖保存到手機特定文件夾→ 卸載app
- 遍歷文件夾內(nèi)所有的apk文件,并取渠道名為截圖命名,將運行結(jié)束的apk文件移到另外的文件夾
apppath="."
# 如果當前文件夾下沒有“run”文件夾,就新建一個
if [ ! -d "./run" ]; then
mkdir ./run
fi
# 開始遍歷文件夾
for file in ${apppath}/*
do
# 抽取后綴名為apk的文件
if [[ $file == *.apk ]] || [[ $file == *.APK ]]
then
# 取出包名并過濾出渠道號
# 例:MyAPP_WHAN_channel_v8.1.0.apk ==> WHAN_channel_v8.1.0
qudao=${file#*WHAN_}
qudao=${qudao%.apk}
# 安裝app
adb install $file
# 啟動app并等待5s,這個等待時間視手機而定,在啟動后還可根據(jù)不同的手機系統(tǒng)插入系統(tǒng)彈窗的處理步驟
adb shell am start -n com.myapp.myapp/com.myapp.myapp.app.main.SplashActivity
sleep 5
# 截屏兩次,并以渠道包來命名
# 需要先在手機創(chuàng)建文件夾/storage/emulated/0/DCIM/welcome
adb shell /system/bin/screencap -p /storage/emulated/0/DCIM/welcome/$qudao.png
sleep 2
adb shell /system/bin/screencap -p /storage/emulated/0/DCIM/welcome/$qudao.png
sleep 1
# 卸載app,輸出日志并將已執(zhí)行的apk移動到run文件夾
adb uninstall com.myapp.myapp
echo $qudao+"done"
mv $file ./run
fi
done
使用方法
- 執(zhí)行腳本前在手機上必須存在 /storage/emulated/0/DCIM/welcome/這個文件夾,如不存在,需要先手動創(chuàng)建好(也可以直接用腳本檢測創(chuàng)建)
- 執(zhí)行腳本前需要先卸載手機上的被測的APP(腳本調(diào)整為前置刪除/覆蓋安裝也可以)
- 將上述腳本放在渠道包的文件夾目錄下執(zhí)行,支持隨時停止,停止后卸載掉手機上的PPmoney理財APP才可繼續(xù)運行
- 執(zhí)行完成后使用adb pull的命令將整個截屏的文件夾放到電腦上進行檢查,即可快速檢查出有問題的渠道包。
PS1:上述腳本是基于小米6的手機進行調(diào)試的,使用其他手機執(zhí)行還需要進行系統(tǒng)彈窗處理+等待時間的調(diào)整。同時非常建議使用小米6進行執(zhí)行,因為執(zhí)行速度快,沒有系統(tǒng)彈窗。
PS2:目前只能在Mac OS順利執(zhí)行,在Windows系統(tǒng)運行到截圖就提示報錯,應該是在Windows的運行shell腳本的程序沒有安裝adb導致,按照上述思路出一個.bat版本腳本即可