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