天地會珠海分舵注:本來這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