上一篇使用java调用monkeyrunner(http://fengbohaishang.blog.51cto.com/5106297/1065647)中遗留了一个问题,就是上次用的是低版本的4个包解决的问题,使用高版本的jar包怎么调用monkeyrunner呢?

经过一位朋友的提示说,现在高版本的方法已经变了,我就按照他的提示,上网搜了一下需要的类,测试通过后,特写此补充篇总结一下。
上次使用的是android sdk tools路径下的lib里面的4个包:ddmlib.jar,guavalib.jar,monkeyrunner.jar,sdklib.jar.而更新后的版本需要添加另外一个包就是:chimpchat.jar,monkerunner.jar这个包倒不是必须的了。另外,低版本中是用AdbMonkeyDevice实现IMonkeyDevice,高版本中没有这两个类了,用的AdbChimpDevice和IchimpDevice。
而通过查看AdbChimpDevice(http://code.google.com/p/aster/source/browse/src/com/android/chimpchat/adb/AdbChimpDevice.java?r=967f7f8cd6249c69e00c6de7ff1b55bd0f51d311)和IchimpDevice(http://code.google.com/p/aster/source/browse/src/com/android/chimpchat/core/IChimpDevice.java?r=967f7f8cd6249c69e00c6de7ff1b55bd0f51d311)这两个类在官方的源码,就不难发现,AdbChimpDevice实现了IchimpDevice这个接口,不过连接方法还是通过AdbBackend,通过adb方式连接模拟器,或者真机。只是Device的父类发生了变化。
下面还是用以前的测试类,进行稍微改变一下,就可以看出两者的不同:
  1. import java.util.ArrayList;
  2. import java.util.Collection;
  3. import java.util.HashMap;
  4. import com.android.chimpchat.adb.AdbBackend;
  5. import com.android.chimpchat.adb.AdbChimpDevice;
  6. public class TestNewMonkeyrunner {
  7. /**
  8. * @param args
  9. */
  10. //这里有变化
  11. private static AdbChimpDevice device;
  12. private static AdbBackend adb;
  13. public static void main(String[] args) {
  14. // TODO Auto-generated method stub
  15. if (adb==null){
  16. adb = new AdbBackend();
  17. //      参数分别为自己定义的等待连接时间和设备id
  18. //这里需要注意一下adb的类型
  19. device = (AdbChimpDevice) adb.waitForConnection(8000,"MSM8225QRD5");
  20. }
  21. //添加启动权限
  22. String action = "android.intent.action.MAIN";
  23. Collection<String> categories = new ArrayList<String>();
  24. categories.add("android.intent.category.LAUNCHER");
  25. //              启动要测试的主界面
  26. device.startActivity(null, action, null, null, categories,
  27. new HashMap<String, Object>(),"cn.com.fetion/.android.ui.activities.StartActivity", 0);
  28. //           点击某一个坐标
  29. //touch方法略有变化
  30. device.touch(202,258,com.android.chimpchat.core.TouchPressType.DOWN_AND_UP);
  31. }
  32. }

从上面可以看出,高版本与低版本的变化,并不是很多。只要连接上设备,一些需要用到的操作方法,自己可以去源码里面看,也可以自己重写一些常用的方法。

源码里的注释是非常详细,比如IchimpDevice接口类中的startActivity方法:

  1. void startActivity(@Nullable String uri, @Nullable String action,
  2. @Nullable String data, @Nullable String mimeType,
  3. Collection<String> categories, Map<String, Object> extras, @Nullable String component,
  4. int flags);
  5. /**
  6. * Send a broadcast intent to the device.
  7. *
  8. * @param uri the URI for the Intent
  9. * @param action the action for the Intent
  10. * @param data the data URI for the Intent
  11. * @param mimeType the mime type for the Intent
  12. * @param categories the category names for the Intent
  13. * @param extras the extras to add to the Intent
  14. * @param component the component of the Intent
  15. * @param flags the flags for the Intent
  16. */

该方法里对重要参数解释的都很清楚。所以,建议正在研究java调用monkeyrunner问题的朋友们,不要忘了源码这个最好的资源。

本文转自 风泊海上 51CTO博客,原文链接:http://blog.51cto.com/fengbohaishang/1071155

Android自动化测试之使用java调用monkeyrunner(补充篇)相关推荐

  1. Android自动化测试之MonkeyRunner MonkeyDevice MonkeyImage API使用详解 脚本编写 脚本录制回放

    MonkeyRunner 系列文章 MonkeyRunner简介 MonkeyRunner 三大模块 MonkeyRunner API MonkeyDevice API MonkeyImage API ...

  2. Android自动化测试之MonkeyRunner录制和回放脚本

    Android自动化测试之MonkeyRunner录制和回放脚本(十一) 分类: 自动化测试 Android自动化 2013-02-22 10:57 7346人阅读 评论(2) 收藏 举报 andro ...

  3. Android自动化测试之Monkey命令使用及monkey脚本编写

    系列文章 Android自动化测试环境部署及adb sdkmanager avdmanager Monitor DDMS工具使用及命令详解 Android自动化测试之Monkey使用及monkey脚本 ...

  4. android jni java调用c,Android与JNI(一) ---- Java调用C 静态调用

    第一.通过eclipse新建一个工程名为HelloJni的android工程,并编译. 第二.右键工程-->Android Tools --> Add Native Support,出现如 ...

  5. Android自动化测试之MonkeyRunner

    2019独角兽企业重金招聘Python工程师标准>>> MonkeyRunner是Google Android SDK下的一个工具,用于自动化测试Android程序. Monkeyr ...

  6. android 自动化测试之monkeyrunner学习(三),自动化测试之Monkeyrunner

    一.功能 Android自动化测试工具 二.环境配置 1 android-sdk 2 jdk 3 配置python环境 monkeyrunner在Android SDK的tools文件夹下 三.打开方 ...

  7. Android自动化测试之monkeyrunner基本要素(七)

    2019独角兽企业重金招聘Python工程师标准>>> 1. #导入模块;      from com.android.monkeyrunner import MonkeyRunne ...

  8. Android自动化测试之Shell脚本一——模拟触屏事件

    摘自:http://guolin.guosfamily.com/2012/02/15/android-automated-test-by-shell-touch-event/ Android自动化测试 ...

  9. Android自动化测试之Robotium学习(二)

    2019独角兽企业重金招聘Python工程师标准>>> 新建好测试程序之后,我们需要做的就是把Robotium这个包导入进你的工程里.这样才能跟Robotium关联起来.       ...

最新文章

  1. 所有类是object的子类,但是又可以继承一个其他类解析
  2. [转]Format a ui-grid grid column as currency
  3. 互联网协议 — TLS — CA 认证
  4. 需要按次序点击链接的网页特效
  5. vue-cli如何创建项目到计算机指定位置(如何自定义选择磁盘?)
  6. Nhibernate+MVC开发日志
  7. jquery按键事件_jQuery按键事件
  8. fedora 11 下分析系统性能瓶颈之(一)mpstat
  9. lopatkin俄大神精简中文系统Windows 8.1 Pro 19599 x86-x64 ZH-CN SM
  10. Zoom视频会议软件
  11. HTML5七夕情人节表白网页制作【一款乾坤八卦风水罗盘旋转CSS3动画特效代码,给人一种玄机重重的感觉】HTML+CSS+JavaScript
  12. IDL实现TM遥感影像直方图统计(中值、均值、方差、众数及峰度系数计算)
  13. 311、FirebaseAnalytics和Google Analytics总结
  14. 同一无线络下电脑会打不开个别的网站网页,而手机却可以打开。
  15. Python+FFmpeg音视频格式转换
  16. Java项目:文具学习用品商城系统(java+SSM+JSP+jQuery+Mysql)
  17. 猫盘plus开启ssh登录
  18. QT-Linux安装
  19. css做三角形横线加小三角,CSS创建三角形(小三角)的几种方法
  20. ArcGIS 10 Desktop完全破解方法

热门文章

  1. PAT 乙级 1054. 求平均值 (20) Java版
  2. 1046. 划拳(15)-PAT乙级真题
  3. 徐直军 华为没有鸿蒙,3亿只剩1亿?华为高管改口,推出鸿蒙到底有啥苦衷?
  4. oracle数据设置为ull,Oracle _11g_使用手册_自备
  5. 织梦列表页生成的html在哪里,织梦系统给手机版生成静态页HTML的方法
  6. 测试用什么编译java代码_java – 测试编译器
  7. 比特币算法——SHA256算法介绍
  8. 在Linux上离线安装SQL Server 2017
  9. 关于表、栈、队列的几种操作
  10. DateTime和DateTime2