天天看點

《Android架構揭秘》——2.5節應用程式Framework源碼級别調試

本節書摘來自異步社群《android架構揭秘》一書中的第2章,第2.5節應用程式framework源碼級别調試,作者 金泰延 , 宋亨周 , 樸知勳 , 李白 , 林起永,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

2.5 應用程式framework源碼級别調試

android架構揭秘

android平台由采用c/c++開發的linux驅動、本地庫、應用程式framework(采用java開發)以及應用程式四部分組成。在開發android平台代碼時,要經常調試編好的程式。下面以java代碼為例,講解如何進行應用程式framework源碼級别的調試。

2.5.1 加載應用程式framework源

在調試系統源碼之前,首先要把系統源碼調入eclipse中。但在android平台目錄中存在數量龐大的framework源碼,若想将它們全部調入到eclipse中,需要花費大量功夫。值得慶幸的是在android中包含eclipse設定檔案,利用它可以把framework的所有源碼路徑儲存下來。下面列出了操作步驟,依據這些步驟,即可把framework源碼調入eclipse之中。

(1)如2.2節所述,先搭建好android編譯環境,下載下傳android平台源代碼,再使用make指令,編譯android系統。

(2)再把android提供的.classpath檔案複制到android平台源碼所在的最上層目錄中。

《Android架構揭秘》——2.5節應用程式Framework源碼級别調試

(3)運作eclipse,在菜單欄,依次單擊file-new-java project,如圖2-21所示。在彈出的new java project視窗中,輸入工程名稱後,指定location為android源碼所在的目錄(.classpath檔案複制的位置),而後單擊finish按鈕。

(4)檢視eclipse左側的package explorer視窗,可以看到android framework源碼被導入進來,如圖2-22所示。

《Android架構揭秘》——2.5節應用程式Framework源碼級别調試
《Android架構揭秘》——2.5節應用程式Framework源碼級别調試

(6)在debug configurations視窗左側清單中,選擇remote java application,單擊滑鼠右鍵,在彈出的菜單中,選擇new,在右側窗框内進行相應設定後,單擊apply按鈕,應用更改項目,如圖2-24所示。

《Android架構揭秘》——2.5節應用程式Framework源碼級别調試

2.5.2 調試helloworld framework(源碼級)

調試android應用程式framework的準備工作完成後,接下來開始調試helloworld程式,跟随與應用程式相關的framework源代碼,檢視變量的值。

(1)首先在helloworld應用程式起始的地方,設定一個斷點,而後在helloworld工程上單擊滑鼠右鍵,在彈出的菜單中,依次選擇debug as>android application,打開調試視窗,程式運作到斷點的位置停止,并把控制權交給eclipse的java調試器,如圖2-25所示。

(2)為了在源碼級别上調試應用程式framework,在左上debug視窗中,選擇activitythread類,出現源碼無法找到的錯誤,如圖 2-26 所示。此時在activitythread.perform launchactivity上,單擊滑鼠右鍵,在彈出的菜單中,選擇edit source lookup菜單,彈出edit source lookup path視窗。

《Android架構揭秘》——2.5節應用程式Framework源碼級别調試
《Android架構揭秘》——2.5節應用程式Framework源碼級别調試
《Android架構揭秘》——2.5節應用程式Framework源碼級别調試

繼續閱讀