Android手机批处理
先说背景:集团公司发起了一项大型工会活动。活动内容包括健步走、摄影比赛等项目。健步走通过华为运动记录的步数进行对标,而摄影比赛则通过健步走活动官方APP进行投票,根据票数对标。
PS1:本文技术方面参考了以下两篇文章
《Android手机上,利用bat脚本模拟用户操作》
《android adb shell循环模拟点击》
PS2:实现本文所列需要一部安卓手机和一台PC。
下面进入正文
玩安卓手机电脑端需要有adb命令,压缩包拿去adb.zip
adb可以用来模拟用户在手机上的操作,先普及一下操作相关的adb命令
input keyevent
//发送键盘事件
用法说明:
adb shell input keyevent “value”
usage: input ...
input text <string> //在EditText中输入字符串
input keyevent <key code number or name> //模拟back键、home键、音量键等操作
input tap <x> <y> //模拟点击事件
input swipe <x1> <y1> <x2> <y2> //模拟滑动事件
先列举 input keyevent
几个比较常用的code值:
input keyevent 3 // Home
input keyevent 4 // Back
input keyevent 19 //Up
input keyevent 20 //Down
input keyevent 21 //Left
input keyevent 22 //Right
input keyevent 23 //Select/Ok
input keyevent 24 //Volume+
input keyevent 25 // Volume-
input keyevent 82 // Menu 菜单
下面来举个栗子:
在cmd窗口,进入adb文件夹
例1:adb shell input keyevent 3 //点击Home键。看手机是否有相应的操作。
例2:adb shell input tap 200 1200 //点击坐标200 1200位置。
例3:adb shell input swipe 200 1700 200 500 //模拟坐标200,1700滑动到200,500。屏幕上翻。
=================================================================================================
【快速获取想要点击图标像素点的技巧:】想要点击某个button,但是怎么快速获取该button的像素位置呢?
一般Android在[设置--高级设置--开发者选项]中,或者[设置--开发人员选项]中,有“指针位置”这一项,打开该开关
不要怀疑水印,我是从自己博客拿过来的:)
如上图,方框的位置就是你所点击的区域坐标点,注意,原坐标[0, 0]就是手机屏幕的左上角。
还有一点,如果你在屏幕滑动了一段距离,你想知道滑动距离的坐标数值差,也可以看到:
就是上图中的红色数值,[dX, dY]
======================================================================================================
批处理语言
1、注释命令
Rem 或者”::”
例: ::这一行就是注释。
2、屏幕输出命令
echo
例:echo 打印输出
3、@命令
表示不显示@后面的命令。
4、暂停命令
Pause
会暂停批处理的执行并在屏幕上显示Press any key to continue...
的提示,等待用户按任意键后继续
5、延时执行下一句语句:
ping -n N 127.1 >nul
执行该语句,就会延迟执行N-1秒
6、For语句
for %%i in (set) do command
例:for %%i in (num) do goto loop
7、if 语句
IF [NOT] string1==string2 do command
例:if %num%==3 goto end
根据以上命令在文本编辑器中写以下批处理命令,另存为.bat文件,并运行。
--------------------------------------------------------
@echo off
::设置变量num并赋值
set /a num=0
::循环开始
:loop
::每循环一次num加一
set /a num+=1
::屏幕显示第几次投票。
echo 第%num%投票
::点击美景在眸
adb shell input tap 840 1300
::延缓3秒,等待app打开。
ping -n 3 127.0.0.1>nul
::屏幕上拉
adb shell input swipe 200 2063 200 384
adb shell input swipe 200 2000 200 500
::选取照片,坐标点可以更换。
adb shell input tap 120 1530
adb shell input tap 120 1140
adb shell input tap 120 771
::点击投票按钮,坐标点选择。
adb shell input tap 730 2274
::模拟返回按键。
adb shell input keyevent 4
::判断语句,如果num=15 结束,否则循环。
if %num%==3 goto end
ping -n 1 127.0.0.1>nul
goto loop
::结束模块
:end
pause
echo 投票%num%次,快去看看结果吧!
-------------------------------------------------------------------------------------------------------------------
以上批处理文件,根据流程在loop循环中增加步骤或减少步骤
坐标点可以根据需要调整,坐标点获取方式如上。