標籤:android ext int width http c
本文翻譯自https://devmaze.wordpress.com/2011/01/18/using-com-android-internal-part-3-custom-android-platform/
在前一篇文章中我展示了如何建立定製的original-android.jar,包含內部API和隱藏API中的所有類。
接下的步驟很明顯,就是修改現有的android平台(SDK_DIR/platforms/platform-X/android.jar)。您可以簡單的用第2部分建立的original-android.jar替換android.jar,但這樣您的所有工程都能夠無限制的使用內部API和隱藏API。這不是很合適,因為在大多數工程中,您可能並不允許這樣。而且,您基本上希望禁止使用這些API(這是ADT/android.jar的預設行為),只是在少數工程中要用到內部和隱藏API。
為了達到這種靈活性,需要建立一個新的定製的android平台。當沒有必要使用內部和隱藏API時,您使用原始的android平台。當需要訪問內部和隱藏API時,您使用定製的android平台。
Android SDK分類樹
讓我們看看android SDK是如何組織的:
我們需要"platforms”目錄,進去瞧瞧:
這裡有一個支援的Android平台列表。
現在讓我們瞧瞧這是如何與Eclipse設定關聯起來的。選擇一個Android工程,右鍵點擊->Properties -> Android。您可以看到一個支援平台的列表(它反映的是…/platforms/檔案夾)。下面是:
建立新的平台
要建立一個定製的平台,需要複製android-9檔案夾,命名為android-9-internals,然後做一些修改:
- 從android-9-internals檔案夾刪除android.jar。
- 複製original-android.jar,重新命名為android.jar。
- 修改build.prop檔案:
…
ro.build.version.sdk=9 –> ro.build.version.sdk=-9
…
ro.build.version.release=2.3 –> ro.build.version.release=2.3.extended
重啟eclipse,確認可以看到該新的平台,下面是我所看到的:
為什麼我會選擇API Level -9? 那是因為必須為一個數字,而且不能是9(或其它已經存在的API Level),否則您的定製平台將不會使用(它會在列表中顯示,但不會工作,編譯時間會取原始的相同數位平台)。
下面是Libraries視圖的(當定製平台選中時):
總結
在前一篇文章中,我說明了如何建立一個android.jar的未經裁減版本original-android.jar。本篇文章中,我示範了如何建立使用該original-android.jar的定製android平台。這對於使用隱藏API足夠了,但是對於使用內部API還需要更進一步。這是因為ADT仍然禁止使用com.android.internals包中的類(請看上面的)。在下一篇文章中,我將告訴您如何定製ADT,允許使用內部API。
原文:http://mogoweb.net/archives/104