首页 > 2015年12月08日 > 全部分享
第8章6节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-启动Monkey
大家可能会觉得奇怪,为什么启动目标设备端的monkey进程会放在“运行测试脚本”这一节之后来阐述。 纵观前面整个MonkeyRunner的启动流程,我们看到并没有提及到monkey进程启动的地方。那么就奇怪了,monkey是什么时候被MonkeyRunner启动起来的呢? 我们的测试脚本一开始时几乎毫无例外的都需要执行一个调用:MonkeyRunner.waitForConnection(),如果...
分类:其他   时间:2015-12-08 10:15:30    收藏:0  评论:0  赞:0  阅读:221
第8章4节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-启动AndroidDebugBridge
上一节我们看到在启动AndroidDebugBridge的过程中会调用其start方法,而该方法会做2个主要的事情:715行startAdb:开启AndroidDebugBridge722-723行:初始化android设备监控并启动DeviceMonitor设备监控线程。 其中第一点我们上一小节已经做了详尽分析了,那么我们往下就去分析下第2点。 DeviceMonitor主要的功能就是监控是否有...
分类:移动平台   时间:2015-12-08 10:15:20    收藏:0  评论:0  赞:0  阅读:195
第8章5节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-运行测试脚本
MonkeyRunner在准备好AndroidDebugBridge和DeviceMonitor等服务之后,就基本上是解决了和目标设备通信的问题了,那往下需要做的就是把测试脚本运行起来了。178 public static void main(String[] args) { 179 MonkeyRunnerOptions options = MonkeyRunnerOptions.p...
分类:其他   时间:2015-12-08 10:15:09    收藏:0  评论:0  赞:0  阅读:173
第8章7节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-小结
最后我们对MonkeyRunner启动的过程做一个总结,当然,其中也包括启动Monkey,虽然它不属于启动过程的一部分:monkeyrunner这个shell脚本会先设置一些运行环境的系统属性保存到JVM的System.Propery里面然后该脚本会通过java -jar直接运行sdk下面的monkeyruner.jar然后操作系统直接回调到monkeyrunner在MonkeyRunnerSta...
分类:其他   时间:2015-12-08 10:14:59    收藏:0  评论:0  赞:0  阅读:224
第8章3节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-启动AndroidDebugBridge
用户在命令行运行monkeyrunner命令来执行测试脚本的时候ADB服务器有可能还没有起来,AndroidDebugBridge类的主要作用之一就是去开启一个新的进程来启动ADB服务器,这样我们的测试脚本才能发送命令给ADB服务器去驱动目标设备做事情,比如安装或者删除待测应用的安装包等。 MonkeyRunner在启动的过程中会牵涉到一系列的调用并关联到不同的类来做不同的事情。 图8-3-1...
分类:移动平台   时间:2015-12-08 10:14:49    收藏:0  评论:0  赞:0  阅读:265
第8章2节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-解析处理命令行参数
MonkeyRunnerStarter是MonkeyRunner启动时的入口类,因为它里面包含了main方法.它的整个启动过程主要做了以下几件事情:解析用户启动MonkeyRunner时从命令行传输进来的参数: 因为MonkeyRunner需要根据指定的参数才能做事情,比如输入的一个需要执行的脚本。如果确实不知道任何参数的话它就会进入MonkeyRunner的交互模式,其实就是Jythong的交互...
分类:其他   时间:2015-12-08 10:14:40    收藏:0  评论:0  赞:0  阅读:260
第8章1节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-运行环境初始化
首先大家应该清楚的一点是,MonkeyRunner的运行是牵涉到主机端和目标设备端的,流程控制逻辑代码是在PC端运行的,但很多命令请求的执行是在目标机器端执行的。这不像其他框架如UiAutomator是所有东西都完全在目标设备端运行的。 这里我们首先应该去看的不是MonkeyRunnerStarter这个类里面的main这个入口函数,因为monkeyrunner其实是个shell脚本,它就在你的s...
分类:其他   时间:2015-12-08 10:14:29    收藏:0  评论:0  赞:0  阅读:242
第6章8节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-小结
本章我们重点围绕处理网络过来的命令的MonkeySourceNetwork这个事件源来阐述学习Monkey是如何处理MonkeyRunner过来的命令的。以下总结下MonkeyRunner从启动Monkey开始到如何处理完成一个命令的流程总结如下:MonkeyRunner通过ADB发送shell命令”monkey --port 12345”来启动MonkeyMonkey启动运行进入runMonke...
分类:其他   时间:2015-12-08 10:14:19    收藏:0  评论:0  赞:0  阅读:123
第6章6节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-命令队列
事件源在获得字串命令并把它翻译成对应的MonkeyEvent事件后,会把这些事件排队放入一个由事件源维护的队列,然后其他地方如Monkey类的runMonkeyCycles方法就可以去把队列里面的事件取出来进一步进行处理了。那么这里我们先看下属于MonkeySourceNetwork内部类的命令队列的类图: 图6-6-1 命令队列类图 整个继承关系非常清晰简洁,CommandQueue接口定...
分类:其他   时间:2015-12-08 10:14:09    收藏:0  评论:0  赞:0  阅读:156
第6章5节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-事件
从网络过来的命令字串需要解析翻译出来,有些命令会在翻译好后直接执行然后返回,但有一大部分命令在翻译后需要转换成对应的事件,然后放入到命令队列里面等待执行。Monkey在取出一个事件执行的时候主要是执行其injectEvent方法来注入事件,而注入事件根据是否需要往系统注入事件分为两种:需要通过系统服务往系统注入事件:如MonkeyKeyEvent事件会通过系统的InputManager往系统窗口注...
分类:其他   时间:2015-12-08 10:13:59    收藏:0  评论:0  赞:0  阅读:191
第6章7节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-注入按键事件实例
在事件生成并放入到命令队列后,Monkey类的runMonkeyCycles就会去调用相应事件源的getNextEvent来获的事件来执行事件注入,那么这一小节我们通过MonkeyKeyEvent这个事件的注入方法来看下事件注入过程是怎么样的。 往系统注入按键事件最终是通过调用InputManager提供的方法来实现的,在Android系统中,按键事件是由InputManager来收集并由Wind...
分类:其他   时间:2015-12-08 10:13:49    收藏:0  评论:0  赞:0  阅读:236
图的邻接矩阵实现_MGraph
邻接矩阵有两种, 不带权图和网的邻接矩阵. 不带权图的邻接矩阵元素为0或1, 网的邻接矩阵中包含0, INF, 和边上的权值, 权值类型T可 为整型, 实型. 三元组(u, v, w)代表一条边, u, v是边的两个定点, w表示u v的关系:  a[u][u] = 0, 两种邻接矩阵的主对角元素都是0. a[u][v] = w, 若 在E中, 则w = 1(不带权图)或w = w(i, j)...
分类:其他   时间:2015-12-08 10:13:39    收藏:0  评论:0  赞:0  阅读:201
WebService是什么?
一、序言大家或多或少都听过WebService(Web服务),有一段时间很多计算机期刊、书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成分。但是不得不承认的是WebService真的是一门新兴和有前途的技术,那么WebService到底是什么?何时应该用?当前的应用...
分类:Web开发   时间:2015-12-08 10:13:09    收藏:0  评论:0  赞:0  阅读:249
Spring MVC 方法注解拦截器
应用场景,在方法级别对本次调用进行鉴权,如api接口中有个用户唯一标示accessToken,对于有accessToken的每次请求可以在方法加一个拦截器,获得本次请求的用户,存放到request或者session域。python中,之前在python flask中可以使用装饰器来对方法进行预处理,...
分类:编程语言   时间:2015-12-08 10:12:59    收藏:0  评论:0  赞:0  阅读:281
poj 3667 Hotel 线段树
题目链接这个题需要维护三个变量, 一个是区间最大连续长度, 一个是最长前缀, 一个是最长后缀。 需要注意的就是查询的时候, 先查左区间是否满足, 然后应该查左区间和右区间交界处是否满足, 这里要看pre_max[rt#include #include #include #include #inclu...
分类:其他   时间:2015-12-08 10:12:49    收藏:0  评论:0  赞:0  阅读:137
关于Finereport移动端报表二次开发的两个小例子
列举两个Finereport移动端报表二次开发的小例子,解决有关刷新页面和获取表单图表并刷新两个开发人员可能会经常碰到的问题,并进行了详细的操作演示。
分类:移动平台   时间:2015-12-08 10:12:39    收藏:0  评论:0  赞:0  阅读:212
网站Gzip压缩
GZIP能对网页文件进行高效率压缩,一般压缩比率在50%以上,既能减少传输流量,又能提升访问速度。对图象文件(GIF/JPG)则没有什么效果,因为这些文件本身就是压缩后的。
分类:Web开发   时间:2015-12-08 10:12:19    收藏:0  评论:0  赞:0  阅读:168
linux 磁盘df 100% 查找大文件
转自http://www.cnblogs.com/kerrycode/p/4391859.html在Windows系统中,我们可以使用TreeSize工具查找一些大文件或文件夹,非常的方便高效,在Linux系统中,如何去搜索一些比较大的文件呢?下面我整理了一下在Linux系统中如何查找大文件或文件夹...
分类:系统服务   时间:2015-12-08 10:12:09    收藏:0  评论:0  赞:0  阅读:230
javaweb开发-问题笔记
1.在eclipse中单独启动tomcat7时,报错。错误内容,如下严重: A child container failed during startjava.util.concurrent.ExecutionException: org.apache.catalina.LifecycleExcep...
分类:编程语言   时间:2015-12-08 10:11:49    收藏:0  评论:0  赞:0  阅读:264
ios开发中遇到的问题和解答汇总
如何让一个数组中的字典,如果字典中有重复的id.将重复的id的字典进行数组整合...。iOS UIView 创建是不是都会经过initWithFrame?iPad 9.1系统上键盘响应很慢ios如何绑定数据?iOS开发,我想上传一个.gsd的文件(或者stl),请问该怎么做iOS NSTimer问题...
分类:移动平台   时间:2015-12-08 10:11:29    收藏:0  评论:0  赞:0  阅读:514
2003条   上一页 1 ... 68 69 70 71 72 ... 101 下一页
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!