Android工具HierarchyViewer 代碼導讀(2) -- 建立Eclipse調試環境

在上文<Android工具HierarchyViewer 代碼導讀(1) -- 功能實現演示>中,我們介紹了HierarchyViewer主要技術點的實現。雖然我們還沒有涉及到HierarchyViewer的源代碼,但是利用上節所講到的知識,讀者甚至已經可以實現一個自己的HierarchyViewer了。

 

本文的內容比較輕鬆,我們將介紹如何把Android源代碼中的HierarchyViewer項目和依賴項目導入Eclipse中,通過Eclipse閱讀和調試將提高我們理解的效率,所謂磨刀不誤砍柴工。

 

如果你沒有安裝Eclipse,可以在Eclipse官網下載Eclipse IDE for Java Developers。本文的講解基於Android4.0 ICS,關於源代碼的下載與編譯,網絡上已經有很多資料,我們這裏不再多做介紹,不過由於主站由於某些原因很難同步成功,建議大家從鏡像服務器codeaurora.org下載,可以參考<更換 codeaurora.org 的 repo 源解決同步緩慢問題>一文。

 

1,導入HierarchyViewer和HierarchyViewerlib

打開Eclipse,打開File-> Import –> Existing Projects into Workspace,點擊Next

p_w_picpath

 

選擇從~/Android-Source/sdk/hierarchyviewer2/app中導入hierarchyviewer項目。(作者的Android源代碼地址爲~/Android-Source)

重複上面的步驟,從~/Android-Source/sdk/hierarchyviewer2/libs/hierarchyviewerlib導入hierarchyviewerlib項目。

 

2, 導入ddmlib和ddmuilib項目

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”

p_w_picpath

 

3, 添加jar文件引用

最後,爲項目添加通用的jar文件引用,這些jar文件都可以在~/Android-Source/out/host/liunx-x86/framwork/或者Android-SDK\tools\lib目錄下找到:

ddmulib需要添加的引用:

p_w_picpath

 

HierarchyViewerlib項目需要添加的引用:

p_w_picpath

 

 

HierarchyViewer項目需要添加的引用:

p_w_picpath

 

特別需要注意的是,swt.jar在Android-SDK\tools\lib下的x86和x86_64目錄下有2個版本,必須根據你機器的jre是32位還是64位的,來選擇正確的版本,否則的話雖然編譯能通過卻無法運行。

 

4,調試啓動

這時,所有的項目都一個編譯通過了,調試啓動HierarchyViewer,選擇入口點com.android.hirarchyviewer 啓動:

p_w_picpath

 

5,在線閱讀網址

最後,介紹一個在線閱讀Android源代碼的地址http://androidxref.com/,網站提供了非常方便的搜索、變量引用和類型定義導航功能。雖然無法調試,但也是一個不錯的選擇。

 

本文由知平軟件劉斌華原創,轉載請註明出處。

知平軟件致力於移動平臺自動化測試技術的研究,我們希望通過向社區貢獻知識和開源項目,來促進行業和自身的發展。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章