如何在Eclipse中瀏覽Android源碼

來源:互聯網
上載者:User

標籤:android   class   java   tar   width   int   

Google的Android SDK包括了android.jar,這個Jar檔案包含了Android公有API類檔案。他們還提供了一個Eclipse外掛程式,這使得開始Android上的開發相當簡單。然而,你卻不能找到androidSrc.jar這個Jar檔案,所以當你想要在Eclipse中看一下Android SDK原始碼的時候,你會碰到的情況:

 

 

開源來解救我們了!

這個月早些時候,Google開放了Android的全部源碼,順便說一下,這相當大!不管怎樣,為了在Eclipse中瀏覽源碼,你需要訪問http://source.android.com/,並且按照他們的說明用Git把每一樣東西都拖下來。絕對值得拿出一個晚上做這件事,因為有完整的源碼使得理解SDK的工作機制變得更容易了。

(把源碼)附加到Eclipse上……兄弟,沒有想象中那麼快

既然你有了原始碼,你可以告訴Eclipse它的位置在哪。我嘗試過在android.jar上右擊然後選擇【屬性】,但是歡迎我的是下面的:

 

 

嗯哈……“當前的類路徑進入點屬於Android Library這個容器,它不允許使用者在它的進入點修改源附件。”這真是讓我陷入死迴圈了,因為我通常使用IDEA,所以我真的被這個難住了。因此,我深入研究了原始碼,想要找出一個解決方案。

測試源碼

當你下載了Android源碼,你就得到了一切,其中包括作業系統、Dalvik虛擬機器、Eclipse外掛程式、公有SDK等。

在com.android.ide.eclipse.adt.project.internal包中,我找到了一個叫AndroidClassspathContainerInitializer.java的類。它有如下的代碼:

IPath android_src = new Path(AdtPlugin.getOsAbsoluteAndroidSources());

好的,很好。接著,再進AdtPlugin.java看一下:

/** Returns the absolute android sources path in the sdk */ public static String getOsAbsoluteAndroidSources() {     return getOsSdkFolder() + getOsRelativeAndroidSources(); }
/** Returns the android sources path relative to the sdk folder */ public static String getOsRelativeAndroidSources() {     return AndroidConstants.FD_ANDROID_SOURCES; }

最後再進AndroidConstants.java看一下:

public static final String FD_ANDROID_SOURCES = "sources";

我成功啦!

方案一

基於以上的分析,你需要在你的Android SDK 安裝目錄中建立一個名為“sources”的目錄。

既然你有了這個目錄,你可以在你從Git下載下來的Android原始碼中找到這個恰當的源碼目錄。Google的測試指導建議這個目錄命名為“mydroid”,所以這邊我也用這個名稱。公有SDK源碼可以在這裡找到:mydroid/frameworks/base/core/java。在那個檔案夾下,你可以找到一個Android目錄,它應該被拷貝到你的Android SDK 安裝目錄下的源碼目錄。

你將會不得不在周遭做一些尋找來找到所有的源碼,它散置於mydroid分類樹的各個地方。最後,你應該可以得到這樣一個目錄結構:

SDK_PATH

  | android.jar

  +--docs/...

  +--samples/...

  +--sources

       +--android

       |      ...accounts, annotation, app, bluetooth, etc...

       +--com/android/etc...

       +--dalvik/...

       +--java/...

       +--javax/...

我抓取了所有的目錄,但是我沒有做很好的記錄,所以我可能並且不注意地增加了太多。你可能僅僅需要公有SDK源碼,但是我認為學習一下類實現也是很棒的。

現在當我在Android SDK類中瀏覽時,我看到了源碼:

 

 

方案二

如果你不願意拷貝(或者連結)所有需要的源碼目錄到你的SDK目錄,你也可以建立一個Eclipse使用者庫。首先,我試圖建立我自己的包含android.jar的使用者庫,但是Eclipse抱怨說那會成為一個重複的Jar檔案。所以,我挑選了任意一個Jar檔案作為我的使用者庫,然後開始附加所有的Android來源目錄到那個庫檔案。

我的使用者庫似乎可以起作用,但是我更喜歡複製來源目錄的方式,這樣無需在每次建立工程的時候記得增加使用者庫。

 

原文: http://www.linuxidc.com/Linux/2011-09/43200.htm

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.