iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android Robotium跨应用处理方法
  • 952
分享到

Android Robotium跨应用处理方法

robotium方法Android 2022-06-06 12:06:56 952人浏览 安东尼
摘要

  相信用过一段时间Robotium的同学一般都遇到过如下情况:界面跳转到被测程序外以后,Robotium毫无对策了,这也是Instrumentation框架致命的一个缺点

  相信用过一段时间Robotium的同学一般都遇到过如下情况:界面跳转到被测程序外以后,Robotium毫无对策了,这也是Instrumentation框架致命的一个缺点;然而领导是不会管你这些很“充分”的理由的…..   Ok,既然我们有这样的需求,还是想办法解决吧。调研了几天终还是实现了一个曲线救国的方法:   实现原理:编写一个程序A,用于接收CASE中发送的指定广播,当程序A接收到指定的广播后会响应你注入的动作事件。   准备工作:   熟悉Service 、BoradCastReceiver、input keyevent, 有不清楚的同学可以先百度下以上知识模块。   具体实现:   1、首先为了方便我们使用,我们可以设置为程序A为开机启动一个Service,该Service中注册一个BoardCastReceiver用于接收一个特定action的广播,设置一个IntentFilter:IntentFilter mIntentFilter=new IntentFilter(); mIntentFilter.addAction(“Android.zered.action”);然后在BoardCastReceiver的OnReceive方法中使用Runtime.getRuntime.exec(cmdB)执行我们Case中发送过来的指令(input keyevent xx 当然也可以是其他的一些shell命令)。注意:关于设置程序开机启动,3.1以后Android系统对广播接收做了安全处理——未启动过的程序是不能接收广播的,当然我们还是有方法解决:即把该程序设置为系统级应用即可,然后把该程序push到system/app下重启手机;   2、步骤1的完成已经为我们完成了一个命令执行端(可以理解为CS的server端),现在我们需要做的是发送这个广播,发送广播的方法为context.sendbroadcast,所以我们在Case中可以使用solo.getCurrentActivity.sendbroadcast发送广播;   剩下的是我们要把这个命令行cmdB封装到广播中,Intent intent=new Intent();intent.setAction(“android.zered.action”);intent.putExtra(TAG,cmdB);solo.getCurrentActivity.sendbroadcast(intent);   Ok,这样以来一个带有命令行的广播算是发送出去了。   3、以上步骤完成以后,步骤1启动的程序A中的Service接收到步骤2发送的广播以后,会执行我们发送的命令行指令cmdB了:Runtime.getRuntime.exec(intent.getStringExtra(TAG))   以上是Robotium跨应用的一种处理方法,欢迎大家拍砖。


--结束END--

本文标题: Android Robotium跨应用处理方法

本文链接: https://www.lsjlt.com/news/28565.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作