在Android源碼編譯成功的基礎上重新編譯帶自己API的android.jar需要進行以下幾步操作。
1 添加自己原始碼,在Android源碼frameworks/base目錄下建立一個檔案夾儲存代碼,如tv,以包的形式命名添加的檔案所在的路徑,如/tv/java/android/tv,添加的java檔案開頭定義的包即是編譯成功的class檔案所在的包。
2 修改makefile檔案
2.1 修改build/core/pathmap.mk檔案
在FRAMEWORKS_BASE_ SUBDIRS變數後添加tv\,代碼如下(makefile檔案中的語句以Tab鍵空格開頭)
FRAMEWORKS_BASE_SUBDIRS := \
$(addsuffix /java, \
core \
graphics \
location \
media \
opengl \
sax \
telephony \
wifi \
vpn\
keystore \
tv \
)
2.2修改frameworks/base/Android.mk 檔案
在packages_to_document變數後添加自己原始碼的包名稱,如android/tv,結果如下(makefile檔案中的語句以Tab鍵空格開頭)
packages_to_document := \
android \
javax/microedition/khronos android/tv
3 在ubuntu命令列終端使用如下命令進行編譯:
make clean
make update-api
make PRODUCT-sdk-sdk
最後一行也可以用如下兩個命令代替:
make –j4
make sdk
4 編譯結果
4.1 android.jar檔案所在的目錄為
/out/target/common/obj/PACKAGING/android_jar_intermediates/android.jar並在/out/target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediates/src目錄下重新以package形式組織所有產生到android.jar中的原始碼。
4.2 SDK所在目錄為
out/host/linux-x86/sdk/,產生的sdk檔案目錄和壓縮包為:
android-sdk_eng.xxx_linux-x86
android-sdk_eng.xxx_linux-x86.zip(xxx為自己android源碼所在的檔案名稱)