0/ 準備工作 (生成mm等命令,具體參考: ~/mydonut/build/envsetup.sh)
$ cd mydonut
$ sh . build/envsetup.sh
1/ 編譯項目 (Package: out/...,鏡像文件路徑:~/mydonut/out/target/product/generic)
$ make
2/ 創建SDK (Package SDK: out/host/darwin-x86/sdk/android-sdk_eng.<build-id>-x86.zip)
$ make sdk
3/ 創建ADT (Package ADT: ~/mysdk/android-eclipse-<buildnumber>.zip)
$ development/tools/eclipse/scripts/build_server.sh ~/mysdk $USER
4/ 編譯模塊 (訪問模塊對應的目錄,執行mm命令,Package: ~/mydonut/out/target/product/generic/system/{model-name}/{submodel-name}.**)
$ cd frameworks/
$ mm
該system目錄對應的就是設備/模擬器運行環境對應的system目錄,我們講新生成的模塊文件(*.so/*.jar/*.apk/...)上傳到運行環境下的對應目錄后,重啟設備生效
如果是應用程序(*.apk),除了Launcher應用需要重啟,其他應用均不需要重啟設備。
下面以更新framework為例,Package: ~/mydonut/out/target/product/generic/system/framework/framework.jar
4.1 修改framwork程序(~mydonut/framework/...),并訪問framework目錄,執行mm命令,編譯新的framework.jar程序
$ cd framework
$ mm
其他模塊,如庫文件和應用程序也可以用同樣的方法編譯;應用程序還可以通過eclipse創建android 應用程序安裝包。
4.2 首先我們運行模擬器(如果是手機,則通過USB連上終端)
$ cd {ANDROID SDK}/tools
$ ./emulator -avd {AVD_NAME}
4.3 然后通過shell命令,設置設備/system目錄的寫權限
$ ./adb shell
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
# cd /system/bin
# cat sh > su
# chmod 4755 su
# exit
4.4 上傳framework.jar到對應的運行環境目錄
$ ./adb push {MYDONUT_OUT_PATH}/target/product/generic/system/framework/framework.jar /system/framework
4.5 通過命令,重啟設備,更新生效。
$ ./adb shell
# stop
# start
注意:如果要關掉模擬窗口后生效,需要通過make命令,編譯最后一次編譯后的改動,生成新的img鏡像文件,并更新到SDK,或生成新的SDK。
附1:命令注解
Invoke ". build/envsetup.sh" from your shell to add the following functions to your environment:
- croot: Changes directory to the top of the tree.
- m: Makes from the top of the tree.
- mm: Builds all of the modules in the current directory.
- mmm: Builds all of the modules in the supplied directories.
- cgrep: Greps on all local C/C++ files.
- jgrep: Greps on all local Java files.
- resgrep: Greps on all local res/*.xml files.
- godir: Go to the directory containing a file.
附2:參考文檔
~/mydonut/development/docs/howto_SDK_git_cygwin.txt
~/mydonut/development/docs/howto_build_SDK.txt
~/mydonut/development/docs/howto_use_cupcake_sdk.txt
附3:輸出目錄
~/mydonut/out/target/common/obj/JAVA_LIBRARIES
.jar程序包的完整輸出目錄,含有SDK中標志為@hide的程序和接口,應用程序中需要這些借口可以引入相關的.jar程序。
~/mydonut/out/host/linux-x86/bin
存放相關的工具tools目錄
附4:創建完整的java項目
$ cp ./development/ide/eclipse/.classpath .
打開Eclipse,新增一個已經創建的java項目,執行mydonut目錄,點擊finish,完成項目的創建,可以查看項目下所有的java程序。
posted on 2009-09-25 18:57
Xu Jianxiang 閱讀(2356)
評論(0) 編輯 收藏 所屬分類:
Android