[老欧的问题]如何在应用内使用adb命令[待优化]
2014-06-19 22:11
323 查看
问题来源:
Robotium的测试是直接在手机上安装被测包,由于种种原因,启动图的验证,还有初始化状态的验证非常不方便.
如果直接卸载应用会导致Robotium脚本的运行失败,删除Data下文件夹比较担心会出现问题,也不够贴近用户.
想要通过代码直接删除,需要对应用的权限进行更改, 方法如: http://bbs.51cto.com/thread-1034446-1.html .过于复杂
也不知道有什么好的方法,所以,希望通过打开应用详细设置,然后点击按钮清除数据.
解决方案:
想到过很多种,但都没有实现.MontionEvent直接把被测应用调起点击,感觉是卡在Robotium不能跨应用上了.
能力有限,所以想到用最笨的方法,通过adb shell命令使用input tap进行点击.
在网上找到别人成功的代码,进行命令行调用.
代价不得不说还是有的,比如测试设备需要是root的,比如之后的点击操作单纯靠touch坐标,可移植性也比较差.
意外收获:
这么个破东西耗了我一天多的时间,会的太少就是麻烦啊.还好最后找到解决方法了.
特别大的意外收获,就是以后再遇见需要跨应用操作的时候,可以用adb进行控制了.哦也.
待优化:
可能要等更加了解android才知道怎么才能直接清除了.
Robotium的测试是直接在手机上安装被测包,由于种种原因,启动图的验证,还有初始化状态的验证非常不方便.
如果直接卸载应用会导致Robotium脚本的运行失败,删除Data下文件夹比较担心会出现问题,也不够贴近用户.
想要通过代码直接删除,需要对应用的权限进行更改, 方法如: http://bbs.51cto.com/thread-1034446-1.html .过于复杂
也不知道有什么好的方法,所以,希望通过打开应用详细设置,然后点击按钮清除数据.
解决方案:
想到过很多种,但都没有实现.MontionEvent直接把被测应用调起点击,感觉是卡在Robotium不能跨应用上了.
能力有限,所以想到用最笨的方法,通过adb shell命令使用input tap进行点击.
在网上找到别人成功的代码,进行命令行调用.
/** * 在手机上执行adb命令,必须是root的手机,必须是root权限手机 * @param cmd String adb shell下命令 */ public void execShell(String cmd){ try{ //权限设置 Process p = Runtime.getRuntime().exec("su"); //获取输出流 OutputStream outputStream = p.getOutputStream(); DataOutputStream dataOutputStream=new DataOutputStream(outputStream); //将命令写入 dataOutputStream.writeBytes(cmd); //提交命令 dataOutputStream.flush(); //关闭流操作 dataOutputStream.close(); outputStream.close(); } catch(Throwable t) { t.printStackTrace(); } }
代价不得不说还是有的,比如测试设备需要是root的,比如之后的点击操作单纯靠touch坐标,可移植性也比较差.
意外收获:
这么个破东西耗了我一天多的时间,会的太少就是麻烦啊.还好最后找到解决方法了.
特别大的意外收获,就是以后再遇见需要跨应用操作的时候,可以用adb进行控制了.哦也.
待优化:
可能要等更加了解android才知道怎么才能直接清除了.
相关文章推荐
- [老欧的问题]如何在应用内使用adb命令[待优化]
- 如何使用REORG TABLE命令优化数据库性能
- 使用DOS命令如何操作Windows防火墙(命令介绍及应用举例) .
- linux ubuntu系统下,adb不是内部命令 (如何才能让adb命令可以使用)
- 手机软件测试如何使用adb命令抓取手机Log
- Android 使用adb shell命令时出现sqlite3 : not found 问题 解决方法
- 如何使用adb命令查看android中的数据库
- 使用shell命令安装系统级应用以及adb配置环境变量
- 如何使用adb命令查看android中的数据库
- Android 使用adb shell命令时出现sqlite3 : not found 问题 解决方法
- Android中adb常用命令使用及问题
- 如何使用ADB命令查看Android手机相关信息参数
- 使用adb命令卸载Android系统应用
- 如何使用REORG TABLE命令优化数据库性能
- 关于FriendlyARM--Smart210--Android4.0.3设备在为windows 7下使用ADB命令提示找不到设备的问题
- 如何使用jacl命令列出所有企业应用ear
- adb 命令及使用权限问题
- 五十二、使用Adb命令卸载android应用配置方法
- linux ubuntu系统下,adb不是内部命令 (如何才能让adb命令可以使用)
- 解决Ubuntu14.04 64bit 安装AndroidSDK后adb命令无法使用问题