在上文<Android工具HierarchyViewer 代碼導讀(1) -- 功能實現演示>中,咱們介紹了HierarchyViewer主要技術點的實現。雖然咱們尚未涉及到HierarchyViewer的源代碼,可是利用上節所講到的知識,讀者甚至已經能夠實現一個本身的HierarchyViewer了。html
本文的內容比較輕鬆,咱們將介紹如何把Android源代碼中的HierarchyViewer項目和依賴項目導入Eclipse中,經過Eclipse閱讀和調試將提升咱們理解的效率,所謂磨刀不誤砍柴工。android
若是你沒有安裝Eclipse,能夠在Eclipse官網下載Eclipse IDE for Java Developers。本文的講解基於Android4.0 ICS,關於源代碼的下載與編譯,網絡上已經有不少資料,咱們這裏再也不多作介紹,不過因爲主站因爲某些緣由很難同步成功,建議你們從鏡像服務器codeaurora.org下載,能夠參考<更換 codeaurora.org 的 repo 源解決同步緩慢問題>一文。api
1,導入HierarchyViewer和HierarchyViewerlib服務器
打開Eclipse,打開File-> Import –> Existing Projects into Workspace,點擊Next網絡
選擇從~/Android-Source/sdk/hierarchyviewer2/app中導入hierarchyviewer項目。(做者的Android源代碼地址爲~/Android-Source)app
重複上面的步驟,從~/Android-Source/sdk/hierarchyviewer2/libs/hierarchyviewerlib導入hierarchyviewerlib項目。eclipse
2, 導入ddmlib和ddmuilib項目ide
ddmlib和ddmuilib是許多Android SDK工具共同依賴的包,你能夠選擇不導入這兩個項目而直接引入jar文件,若是你已經編譯了Android源代碼,你能夠在~/Android-Source/out/host/liunx-x86/framwork/目錄下找到ddmlib.jar和ddmuilib.jar,或者從Android SDK中的\tools\lib目錄下找到他們。函數
ddmlib包含了adb的api,若是你對adb的初始化和通訊感興趣,最好導入這兩個工程,從如下目錄導入:工具
~/Android-Source/sdk/ddms/libs/ddmlib
~/Android-Source/sdk/ddms/libs/ddmuilib
導入後,可能沒法編譯它們,這是因爲源代碼中的重載函數都沒有加上@Override聲明,而eclipse默認把這個看成error來處理。咱們須要修改一下項目的設置:
打開ddmlib和ddmuilib的工程屬性對話框,選擇Java compiler->Error/Warnings,在Annotations節點下,把「Missing’@Override’ annotation」的錯誤級別從「Error」改成「Warning」或者「Ignore」
3, 添加jar文件引用
最後,爲項目添加通用的jar文件引用,這些jar文件均可以在~/Android-Source/out/host/liunx-x86/framwork/或者Android-SDK\tools\lib目錄下找到:
ddmulib須要添加的引用:
HierarchyViewerlib項目須要添加的引用:
HierarchyViewer項目須要添加的引用:
特別須要注意的是,swt.jar在Android-SDK\tools\lib下的x86和x86_64目錄下有2個版本,必須根據你機器的jre是32位仍是64位的,來選擇正確的版本,不然的話雖然編譯能經過卻沒法運行。
4,調試啓動
這時,全部的項目都一個編譯經過了,調試啓動HierarchyViewer,選擇入口點com.android.hirarchyviewer 啓動:
5,在線閱讀網址
最後,介紹一個在線閱讀Android源代碼的地址http://androidxref.com/,網站提供了很是方便的搜索、變量引用和類型定義導航功能。雖然沒法調試,但也是一個不錯的選擇。
知平軟件致力於移動平臺自動化測試技術的研究,咱們但願經過向社區貢獻知識和開源項目,來促進行業和自身的發展。