Android之匯入源碼到eclipse中以及單模組調試

來源:互聯網
上載者:User

一、匯入源碼到eclipse:相信大部分做源碼開發的童鞋都不怎麼用eclipse調試吧,畢竟還是有各種不方便的:首先工程比較浩大,匯入eclipse會比較慢而且比較卡,有時候還會崩潰,然後eclipse不能編譯單個模組,只能在eclipse中修改儲存,然後還是得回到linux終端中編譯。所以,高手們都會選擇直接在vim中修改,然後直接編譯,這樣相當方便快捷,省掉了很多步驟,然而,對於像我這樣的菜鳥而言,很多介面、文法之類的很容易出錯,所以還是很依賴eclipse的自動提示和補全。好了,廢話不多說,下面我們來看看關鍵的幾個步驟:1.取一份完整的Android源碼,然後全編譯(具體操作不作細說)。2.將idh.code/development/ide/eclipse/.classpath檔案拷貝到idh.code下。(重要)3.開啟eclipse,最好一份代碼獨佔一份workspace,這樣開啟載入速度快。4.選擇File-->New-->Java project。5.在彈出的視窗的location處Browse或填寫上idh.code所在的路徑,最後Finish。(耗時12分鐘左右,Source Insight第一次建項目並同步也要很久)6.可能會彈出一些錯誤視窗,關掉就可以了。經過繁瑣的幾個步驟和長時間的等待之後,終於匯入結束了,假如該代碼全編譯是可以通過的話,這份project應該是沒有一個表示錯誤的x在類的表徵圖上。大家在這份eclipse裡面編寫代碼,會即時的檢查文法,有誤,滑鼠移過去,就可以看得錯誤內容和修改建議。大家可以發現(如所示),一些framework和package中的類都列在了最開頭,這就是.classpath檔案的功勞,開啟這個檔案一目瞭然,大家可以根據自己的需要對這個檔案進行改動。 另外,下面給出幾個常用的快速鍵:搜尋檔案,可以ctrl+shift+R。搜尋類,可以ctrl+shift+H。看某個方法被誰調用,可以ctrl+alt+H。看某個方法的具體實現,可以按F3,假如對象是匿名繼承介面的類,則ctrl+T。(如一些介面的類是在哪實現的,ctrl+T的功能是Source Insight不曾具備的)搜尋指定檔案夾裡面檔案的內容,可以在package explorer處選擇對應的檔案夾,再ctrl+H,在scope欄選擇Selected resources。看當前檔案裡面的成員和方法列表,可以按ctrl+o,或者通過window-->show view-->outline將可拖拽的視窗調出。 二、單模組調試(以Launcher為例):上面說完匯入全部源碼到eclipse中調試,但是大部分情況下,我們要調試的不是全部的代碼,而是簡單的一個應用而已:比如相機、簡訊、連絡人、案頭等等,把全部代碼匯入明顯是不理智的,那有沒有匯入單個模組調試的方法呢?答案是肯定的,下面我就以Launcher為例,簡單的介紹一下:1.由於在Android源碼中,很多方法、成員、類、包都被打上@hide標籤,這些成員在SDK中沒有公開,以至於在編譯Launcher源碼時最常遇到的類android.view.View的成員mScrollX無法訪問,因此我們需要將源碼下的jar匯入,而不是單獨使用Android開放的jar包,所以,我們還是需要一份完全編譯過並且無錯的源碼。2.在該源碼的out目錄下尋找包含你所用隱藏類的jar檔案,通常檔案名稱為classes.jar。例如framework的jar檔案為out\target\common\obj\JAVA_LIBRARIES\framework_intermediates\classes.jar。3.在eclipse的Android項目中,選擇項目屬性->Java Build Path->Libraries->Add Library->User Library->Next-> UserLibraries進入到User Libraries管理介面,點擊New建立一個User Library,比如android_framework,點擊Add Jars把Jar包加入到建立的User Library中,最後點擊OK就可以了。注意:為了訪問因此成員,需要改變類搜尋順序,選擇項目屬性->Java Build Path->Order and Export,把所建立的User Libraries移到android sdk的上面。這個時候你的eclipse中的錯誤應該已經減少,甚至沒有了。4.要想在模擬器上馬上看效果的話,按照以下方式進行修改:改掉原始包的名字,切記使用eclipse的重新命名機制(在包名上按F2可修改),不僅是類的引用,還有很多xml檔案內部的引用(如import com.android.launcher3.R;),只要重新命名不錯,這些都可以一次性搞定的。最後在AndroidManifest.xml檔案裡面,找到這句話刪除掉(android:sharedUserId="android.uid.shared")。到現在為止,你就擁有了自己的Launcher了! 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.