天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文“寻求合作伙伴编写《深入理解 MonkeyRunner》书籍“。但因为诸多原因,没有如愿。所以这里把草稿分享出来,所以错误在所难免。有需要的就参考下吧,转发的话还请保留每篇文章结尾的出处等信息。
怎么样才算分析清楚一个事物的原理是什么呢?就以前面提到的《LINUX内核源代码情景分析》为例子,分析到什么程度算是把Linux内核给分析清楚呢?一个操作系统内核的原理无非是要描述清楚这几个核心是如何工作的:
那么它会去分析CPU的电路是怎么实现的吗?或者它会去分析一个iSCSI的HBA卡的固件代码是怎么实现的吗?都不会,因为它超出了该书的边界。对于CPU这个例子,在这种情况下你只需要知道CPU提供的接口是怎么工作的就行了,比如它的寄存器的功能是什么,谁用来存储代码,谁用来存储地址,等等;对于iSCSI这个例子,只需要分析到iSCSI协议是怎么工作的,知道该HBA里面的固件代码有实现相应的协议来做相应的事情就够了,就好比你只需要知道往一个PLC的针脚发送指定的指令,返回的将会是对应的某个值一样。
那么它会去分析C语言的实现原理吗?大家都知道Linux内核大部分是用C语言编写的。也不会,因为这些知识是你在阅读该书籍之前就必须掌握的。
同理,仿效该大作,本书也应该有所为有所不为,不然一本书出来最终什么都囊括了的话最终可能出来的不仅仅是描述MonkeyRunner的运行原理,甚至是描述安卓操作系统的实现原理了,到时就真的是四不像了。这样就算我有时间和能力把它写出来,相信你也没心情把它给读完了。
那么我们在分析MonkeyRunner的源代码来剖析它的运行原理的过程中,它的边界应该如下:
同时为了保证你可以顺利的阅读本文的所有内容,我会建议你最好先准备下以下的知识:
最后我们看下我们要分析的对象-MonkeyRunner。MonkeyRunner是一个安卓平台用户界面自动化测试框架,这个框架内部其实是通过多个库协同工作组成的,以下会列出牵涉到的库并标明本人当前分析的该库的对应版本是什么,以免造成不必要的混乱:
表1-2-1 分析目标的版本列表
作者:天地会珠海分舵
微信公众号:TechGoGoGo
微博:http://weibo.com/techgogogo
CSDN:http://blog.csdn.net/zhubaitian
第1章2节《MonkeyRunner源码剖析》概述:边界(原创)
原文地址:http://blog.csdn.net/zhubaitian/article/details/44088377