老李推荐:第1章2节《MonkeyRunner源码剖析》概述:边界
老李推荐:第1章2节《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 分析目标的版本列表
老李推荐:第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的运行是牵涉到主机端和目 ...
随机推荐
- Centos更换yum源
Centos更换yum源 步骤如下: 备份原始源 cd /etc/yum.repos.d/ mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/ ...
- sqlalchemy ORM模块使用介绍
前几天用到了flask框架,所以顺带介绍了flask-sqlalchemy扩展模块,去瞄一眼,由于有好多非web的python程序也用到了数据库,所以今天分享一下sqlalchemy的模块的使用方法. ...
- UWP: ListView 中与滚动有关的两个需求的实现
在 App 的开发过程中,ListView 控件是比较常用的控件之一.掌握它的用法,能帮助我们在一定程度上提高开发效率.本文将会介绍 ListView 的一种用法--获取并设置 ListView 的滚 ...
- 页面添加数据的PHP
(接前面写的) 第一个页面tianjia.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...
- ES6新属性笔记
一.destructuring--解构赋值 1.数组解构赋值 (1)完全解构 let [a,b,c] = [1,2,3];//普通 console.log(a+":"+b+&quo ...
- 项目架构开发:数据访问层之Cache
数据访问层简单介绍 数据访问层,提供整个项目的数据访问与持久化功能.在分层系统中所有有关数据访问.检索.持久化的任务,最终都将在这一层完成. 来看一个比较经典的数据访问层结构图 大概可以看出如下信息 ...
- LeetCode 2. Add Two Numbers 解题报告
题意: 有两个链表,它们表示逆序的两个非负数.例 (2 -> 4 -> 3)表示342,求两个数字的和,并用同样的方式逆序输出.如342+465 = 807,你需要把结果表达为(7 -&g ...
- 为什么每个浏览器User-Agent都是Mozilla?真相原来是这样!
转载自简明现代魔法http://www.nowamagic.net/librarys/veda/detail/2576 故事还得从头说起,最初的主角叫NCSA Mosaic,简称Mosaic(马赛克) ...
- python3.4 安装 scrapy 报错 VS2010
安装scrapy框架报错是常见问题 还好,本人只碰到其中一个bug,以下是此次安装经验 环境 py3.4 windows7 64位 安装有VS2010 pip包管理(pycharm) 报错信息 安装l ...
- RabbitMQ-从基础到实战(2)— 防止消息丢失
转载请注明出处 1.简介 RabbitMQ中,消息丢失可以简单的分为两种:客户端丢失和服务端丢失.针对这两种消息丢失,RabbitMQ都给出了相应的解决方案. 2.防止客户端丢失消息 如图,生产者P向 ...