自动抓取渠道包欢迎页的脚本

需求背景

有一个版本需要按照渠道区分欢迎页样式,需要每个渠道包都检查一次欢迎页,总共100+个渠道包手工检查非常麻烦。鉴于检查欢迎页样式步骤简单,只需安装后启动APP检查首个欢迎页即可,所以写了一个简单的脚本来执行这个操作。

脚本设计思路

  • 安装app→ 启动app→等待欢迎页出现→截图保存到手机特定文件夹→ 卸载app
  • 遍历文件夹内所有的apk文件,并取渠道名为截图命名,将运行结束的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,这个等待时间视手机而定,在启动后还可根据不同的手机系统插入系统弹窗的处理步骤
adb shell am start -n com.myapp.myapp/com.myapp.myapp.app.main.SplashActivity
sleep 5
 
# 截屏两次,并以渠道包来命名
# 需要先在手机创建文件夹/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,输出日志并将已执行的apk移动到run文件夹
adb uninstall com.myapp.myapp
echo $qudao+"done"
mv $file ./run
 
fi
done

使用方法

  • 执行脚本前在手机上必须存在 /storage/emulated/0/DCIM/welcome/这个文件夹,如不存在,需要先手动创建好(也可以直接用脚本检测创建)
  • 执行脚本前需要先卸载手机上的被测的APP(脚本调整为前置删除/覆盖安装也可以)
  • 将上述脚本放在渠道包的文件夹目录下执行,支持随时停止,停止后卸载掉手机上的PPmoney理财APP才可继续运行
  • 执行完成后使用adb pull的命令将整个截屏的文件夹放到电脑上进行检查,即可快速检查出有问题的渠道包。

PS1:上述脚本是基于小米6的手机进行调试的,使用其他手机执行还需要进行系统弹窗处理+等待时间的调整。同时非常建议使用小米6进行执行,因为执行速度快,没有系统弹窗。

PS2:目前只能在Mac OS顺利执行,在Windows系统运行到截图就提示报错,应该是在Windows的运行shell脚本的程序没有安装adb导致,按照上述思路出一个.bat版本脚本即可

推荐阅读更多精彩内容