(一)第一部分:添加一個新的應用
1 把項目源碼加入到<andrid_src>/packages/apps中,例如:HelloWorld項目。
2 在HelloWorld項目的根目錄下,建立android.mk檔案,內容如下:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
#表示目標模式
LOCAL_MODULE_TAGS := user
#表示源檔案編譯路徑
LOCAL_SRC_FILES := $(call all-java-files-under, src) /
#表示項目包名
LOCAL_PACKAGE_NAME := HelloWorld
#所包含的庫
include $(BUILD_PACKAGE)
3 進入到<android_src>/build/target/product目錄中,修改core.mk,min_dev.mk,sdk.mk檔案,把自已的項目加入編譯行列中。
如:core.mk
PRODUCT_PACKAGES := /
framework-res /
HelloWorld /
Browser /
CarHomeLauncher /
Contacts /
Home /
HTMLViewer /
Phone /
ApplicationsProvider /
ContactsProvider /
DownloadProvider /
MediaProvider /
PicoTts /
SettingsProvider /
TelephonyProvider /
TtsService /
VpnServices /
UserDictionaryProvider /
PackageInstaller /
DefaultContainerService /
Bugreport
4 全域編譯
進入到<android_src>源碼根目錄
$ make 或者$ mmm package/apps/HelloWorld(或 make HelloWorld)
$執行make snod,編譯system.img包
$執行emulator &就可以在應用程式下看到自己編譯的工程了
(二)
1. 首先建立一個android工程,載入自己的java檔案和資源檔
2. 在自己的android工程初步調試成功以後,把該工程的java檔案,資源檔拷貝到連絡人對應的java檔案和資源檔目錄
3. 然後在linux下執行以下命令,編譯人連絡人模組,把資源檔編譯到連絡人目錄中
. build/envsetup.sh
mmm packages/apps/Contacts
4. 重新整理android源碼工程,這個時候你就可以在Contacts包目錄下看到你新加的資源檔和源檔案了,並可以在源碼工程下修改代碼並直接調試了
5. ?? 為什麼不在android源碼工程下直接添加源檔案和xml資源檔了????
答:因為我們的android源碼工程師以java工程匯入的,如果添加android的xml檔案的話,java程式無法識別資源R檔案,所以我們必須先把需要的
xml資源檔先在linux下編譯
6. 在源碼工程修改後,則可在linux下再次執行連絡人編譯命令,並 make snod載入system.img檔案,並啟動模擬器(emulator &),就可以看到你的修改了。
reference:
http://www.cnblogs.com/zhangweia/archive/2010/08/19/1803445.html
http://blog.csdn.net/summerxzg/article/details/6544396
http://wangliping.net/build-apk-in-source