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循环中增加步骤或减少步骤

坐标点可以根据需要调整,坐标点获取方式如上。

发表回复