第1章2节《MonkeyRunner源码剖析》概述:边界(原创)
天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文“寻求合作伙伴编写《深入理解 MonkeyRunner》书籍“。但因为诸多原因,没有如愿。所以这里把草稿分享出来,所以错误在所难免。有需要的就参考下吧,转发的话还请保留每篇文章结尾的出处等信息。
边界
怎么样才算分析清楚一个事物的原理是什么呢?就以前面提到的《LINUX内核源代码情景分析》为例子,分析到什么程度算是把Linux内核给分析清楚呢?一个操作系统内核的原理无非是要描述清楚这几个核心是如何工作的:
- 进程管理和CPU调度
- 设备驱动
- 文件系统
那么它会去分析CPU的电路是怎么实现的吗?或者它会去分析一个iSCSI的HBA卡的固件代码是怎么实现的吗?都不会,因为它超出了该书的边界。对于CPU这个例子,在这种情况下你只需要知道CPU提供的接口是怎么工作的就行了,比如它的寄存器的功能是什么,谁用来存储代码,谁用来存储地址,等等;对于iSCSI这个例子,只需要分析到iSCSI协议是怎么工作的,知道该HBA里面的固件代码有实现相应的协议来做相应的事情就够了,就好比你只需要知道往一个PLC的针脚发送指定的指令,返回的将会是对应的某个值一样。
那么它会去分析C语言的实现原理吗?大家都知道Linux内核大部分是用C语言编写的。也不会,因为这些知识是你在阅读该书籍之前就必须掌握的。
同理,仿效该大作,本书也应该有所为有所不为,不然一本书出来最终什么都囊括了的话最终可能出来的不仅仅是描述MonkeyRunner的运行原理,甚至是描述安卓操作系统的实现原理了,到时就真的是四不像了。这样就算我有时间和能力把它写出来,相信你也没心情把它给读完了。
那么我们在分析MonkeyRunner的源代码来剖析它的运行原理的过程中,它的边界应该如下:
- 不会去分析安卓操作系统的源代码。在需要用到相应的API或者服务的时候会对其进行描述。比如在分析MonkeyRunner是如何注入事件来出发屏幕点击事件的时候,不会去分析使用到的安卓系统的InputManager和牵涉到的安卓内核的源码,只需要知道它是做这样的事情的就够了
- 不会去分析ADB的任何源代码,因为ADB的代码分析已经足可编写另外一本书了。但我们还是会去描述ADB各个部件的原理是什么以及它的协议的详细信息以及给出常用的ADB命令的示例及描述
同时为了保证你可以顺利的阅读本文的所有内容,我会建议你最好先准备下以下的知识:
- Java语言基础:因为MonkeyRunner所用到的库都是用java写的
- Python语言基础 : 因为MonkeyRunner的测试脚本都是通过Python语言进行编写的,而本书会有相当一部分的脚本示例
- 安卓界面应用基本知识:比如了解下Activity活动在安卓中是怎么回事,Intent大概又是怎么一回事等等。不需要了解的很深,只需要有基本概念就够了
最后我们看下我们要分析的对象-MonkeyRunner。MonkeyRunner是一个安卓平台用户界面自动化测试框架,这个框架内部其实是通过多个库协同工作组成的,以下会列出牵涉到的库并标明本人当前分析的该库的对应版本是什么,以免造成不必要的混乱:
表1-2-1 分析目标的版本列表
作者:天地会珠海分舵
微信公众号:TechGoGoGo
微博:http://weibo.com/techgogogo
CSDN:http://blog.csdn.net/zhubaitian
第1章2节《MonkeyRunner源码剖析》概述:边界(原创)的更多相关文章
- 老李推荐:第14章9节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-遍历控件树查找控件
老李推荐:第14章9节<MonkeyRunner源码剖析> HierarchyViewer实现原理-遍历控件树查找控件 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员 ...
- 老李推荐:第14章5节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-装备ViewServer-查询ViewServer运行状态
老李推荐:第14章5节<MonkeyRunner源码剖析> HierarchyViewer实现原理-装备ViewServer-查询ViewServer运行状态 poptest是国内唯一 ...
- 老李推荐:第14章6节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-装备ViewServer-启动ViewServer
老李推荐:第14章6节<MonkeyRunner源码剖析> HierarchyViewer实现原理-装备ViewServer-启动ViewServer poptest是国内唯一一家培养 ...
- 老李推荐:第14章3节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-HierarchyViewer实例化
老李推荐:第14章3节<MonkeyRunner源码剖析> HierarchyViewer实现原理-HierarchyViewer实例化 poptest是国内唯一一家培养测试开发工程师的培 ...
- 老李推荐: 第14章2节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-HierarchyViewer架构概述
老李推荐: 第14章2节<MonkeyRunner源码剖析> HierarchyViewer实现原理-HierarchyViewer架构概述 HierarchyViewer库的引入让M ...
- 老李推荐:第14章1节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-面向控件编程VS面向坐标编程
老李推荐:第14章1节<MonkeyRunner源码剖析> HierarchyViewer实现原理-面向控件编程VS面向坐标编程 poptest是国内唯一一家培养测试开发工程师的培训机 ...
- 老李推荐:第8章7节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-小结
老李推荐:第8章7节<MonkeyRunner源码剖析>MonkeyRunner启动运行过程-小结 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性 ...
- 老李推荐:第8章5节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-运行测试脚本
老李推荐:第8章5节<MonkeyRunner源码剖析>MonkeyRunner启动运行过程-运行测试脚本 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化 ...
- 老李推荐:第6章8节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-小结
老李推荐:第6章8节<MonkeyRunner源码剖析>Monkey原理分析-事件源-事件源概览-小结 本章我们重点围绕处理网络过来的命令的MonkeySourceNetwork这个事 ...
- 老李推荐:第8章1节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-运行环境初始化
老李推荐:第8章1节<MonkeyRunner源码剖析>MonkeyRunner启动运行过程-运行环境初始化 首先大家应该清楚的一点是,MonkeyRunner的运行是牵涉到主机端和目 ...
随机推荐
- C和指针 (pointers on C)——第十一章:动态内存分配(下)习题
1.编写calloc,内部用malloc. void *calloc (size_t n, size_t size) { char * memory; memory =(char*) malloc(n ...
- POJ 3579- Median
Description Given N numbers, X1, X2, ... , XN, let us calculate the difference of every pair of n ...
- WPF学习(6)路由事件
做过.net开发的朋友对于事件应该都不陌生.追溯历史,事件(Event)首先应用在Com和VB上,它是对在MFC中使用的烦琐的消息机制的一个封装,然后.net又继承了这种事件驱动机制,这种事件也叫.n ...
- 三种字符编码:ASCII、Unicode和UTF-8
原文:三种字符编码:ASCII.Unicode和UTF-8 什么是字符编码? 计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特(bit)作为一个字 ...
- hadoop工作平台梳理
文章 http://blog.csdn.net/lili72/article/details/41130743 lili72 数据平台: 一. hadoop平台:Hbase.hive,storm,s ...
- Android数据加载和Json解析——蓝本
1.下载数据来创建一个实体类 class MyData { String imagepath; String title; String desc; public MyData(String imag ...
- cocos2d-x3.0 lua学习(一个)
最近开始学习Lua这里记录下一个写简单Lua代码,但我在写Lua代码.自己主动的代码提示的一些问题,谁希望提供下很好的解决方案,编辑我用SubLime Text2 test.lua.这里创建一个场景, ...
- android 推断应用程序是系统程序还是用户程序
直接上代码: AppInfo.java <span style="font-size:18px;">package com.example.packages; publ ...
- CIC and Fir 滤波器的级联
在FDATool中 CIC 和 Fir 级联滤波器的设计 1 设计CIC滤波器的幅频特性曲线如下 2.设计FIR 滤波器的幅频特性曲线如下 3.总的特性曲线如下 4.把通带部分放大后的图,比较平坦
- ActionBarActivity: cannot be resolved to a type
"the import android.support.v7 cannot be resolved " or "ActionBarActivity: cannot be ...