基于uiautomator的android脚本录制记录

    最近有个项目大概需求是 根据服务端发送的指令 去执行一些特定的操作采集数据后并上传给服务器,前后搞了10来天,总算是搞出来了,现在记录下,省的以后忘记

给以后有类似需求的小伙伴多点资料,有啥问题可以联系我QQ 442947949  带上备注


     刚拿到这个需求的时候一头雾水根本不知道怎么做操作,立马上网找资料,并且询问相关人员,想着这玩意跟测试一点有点关系,于是搜了许多移动端测试框架,

  最后发现很多测试框架都需要基于链接PC端执行,但是我们的需求有不能连接PC,单独一个APK就行了。

  

     最后对比了下 还是决定用最原始的 uiautomator 来做(其实应为项目比较急,周期为一个月,看了下感觉这个最容易上手),

  好了主要问题解决了 接下去就是思考一需求上需要实现的问题了


  比如我们要做一个微信助手(自动附近打招呼,回复信息,上报好友,发朋友圈,虚拟定位) 目标手机是100台,

  其实,100台跟一台手机都一样,能控制1台就能控制一百台


  前沿:uiautomator  这个是必须要了解的,百度下资料很多,大概看个半小时差不多了,然后就直接上手测试吧,有各种坑等你,不过没关系 应为uiautomator  需要掌握的东西并不是很多,相信你很快就会学会

       

   1.uiautomator  写好的脚本怎么跑?(http://blog.csdn.net/robinzhou/article/details/8447058  这篇文章是写这么生成uiautomator脚本的必须看)

   

    这个比较简单了,我们在PC端使用adb命令 可以直接调用uiautomator 来执行我们编译后的脚本,那边在android手机上肯定也是可以的嘛 ,直接当shell脚本跑嘛

 (http://blog.163.com/wangguangxu08@126/blog/static/103783575201421454122742/) 执行工具类    这里需要ROOT掉手机,不然不行


  2.怎么跟服务端通信?

  

    这里我采用了个推  服务端给机子发消息  接受后 根据指令调用不同的脚本,回传就很简单了,执行完毕脚本后http回传到服务端就好了


 3.如何采集会员消息

   

    一个新的知识点,安卓无障碍模式, accessibility 啥红包助手,自动安装,基本都是基于他来做的,他主要的功能就是能监控指定APP当前状态,各种事件,然后又有uiautomator  的一些功能,这样就很好理解了吧

   

   拦截通知栏,然后拿到消息,处理, 有人发红包了,通知栏收到红包 立马唤醒微信,然后点到第一个群 拿到红包 控件,点击打开,

   其实就2步,  拦截通知栏,调用抢红包脚本 


 4 如何虚拟定位?

   这个也很简单 我也是参考了https://github.com/Aslanchen/SimulateGps  这个项目,大家可以下载看看,去掉不需要的代码,剩下修改经纬度的就行了。


 (不过现在很多APP 都会更具WIFI基站来获取位置,所以有这个功能可能以后会没啥用)



 5.100台手机 如果APP要更新怎么办?需要一个个来吗?

    第一次安装的时候记得装个守护APP,设置开启启动,然后注册个广播,监听我们APP 安装,

   服务端发送升级指令时,我们调用系统安装APP的方法,然后无障碍模式接管安装,安装成功后守护APP 启动新应用,这样就完成自动升级再启动APP ,

这样以后机子再多也不用担心控制不过来


6.遇到的各种问题,比如下载文件图片等打开相册没显示,但是图片确实下载下来了

Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
Uri uri = Uri.fromFile(file);
intent.setData(uri);
context.sendBroadcast(intent);
 
我们需要广播下 让系统及时更新数据库
 
7.uiautomator 下无法输入中文
 
 这个http://blog.csdn.net/zimo2013/article/details/49621173  上面有 需要下载个特殊字体


 8.一些坑

  1.wif状态监控,记得要监听  不然断网后 APP可能回死掉,我们在断网恢复后 执行一些方法,去跟服务端发送消息,具体按照业务来啦


好像差不多了。了解这些东西就够了, 不知道自己想的这样的方式行不行,如果其他小伙伴有更好的办法 求告知!

 


  




  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值