隨筆-1  評論-68  文章-98  trackbacks-0
          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 閱讀(2361) 評論(0)  編輯  收藏 所屬分類: Android
          主站蜘蛛池模板: 岳西县| 日喀则市| 武穴市| 阿巴嘎旗| 滨海县| 册亨县| 定日县| 南宫市| 高平市| 福清市| 谷城县| 桐梓县| 香港 | 来安县| 四平市| 垦利县| 长葛市| 富民县| 松潘县| 沽源县| 长春市| 大同县| 英吉沙县| 织金县| 汤原县| 湟源县| 舞钢市| 文安县| 刚察县| 于都县| 四子王旗| 两当县| 乳山市| 白沙| 霍邱县| 青铜峡市| 高青县| 云梦县| 嘉黎县| 临泽县| 中阳县|