ubuntu 在 R40e 上 還有 Debian 在 Sempron 2600 上

2013年7月9日 星期二

不用 build sdk,讓 app 使用擴充 framework api 的方法 -- eclipse 中加入 libs

要是修改了 android framework,而 app 要使用這些 新的 api。
eclipse 一定會 complain 說 找不到這些 api。

正確的方法大概是build sdk 出來安裝到 eclipse。
但是 build sdk 很花時間(其實是不會作)。

比較簡單的方法就是找出 framework 中這些使用到的 api build 出來的 jar 檔,
把他當作是 libs 加到 app 的 project 中。

framework/core build 出來的 jar都會在 out/target/common/obj/JAVA_LIBRARIES/...
依照classs 分別放在不同的目錄中,都叫做 class.jar

舉例來說...

假設擴充了 sdcard, udisk 的路數量,增加了 api:
./java/android/os/Environment.java:540:    public static String getExternalExtSD2StorageState() {


用 grep 搜尋 lib folder ,在 framework_intermediates 下的 binary 找到 match。
所以把 framework_intermediates/class.jar copy 到 eclipse project folder 下的 libs 目錄(自己 create)。

然後規劃 eclipse 的 build path 要包含這個 class.jar:
  • 先 refresh 一次 project,讓 eclipse 顯示剛剛 copy 的 libs/class.jar
  • 在 libs/class.jar 按右鍵,選 build-path -- add build-path
這樣在 project 的 Referenced Libraries 下就會出現 class.jar,可以展開來看裡面包含的 class。

這樣就可以 build 了。

有時候可能要copy 很多個 class.jar,就要記得 rename..

沒有留言:

標籤

網誌存檔