隨筆-1  評論-68  文章-98  trackbacks-0
          0/ 準(zhǔn)備工作 (生成mm等命令,具體參考: ~/mydonut/build/envsetup.sh)
          $ cd mydonut
          $ sh . build/envsetup.sh

          1/ 編譯項(xiàng)目 (Package: out/...,鏡像文件路徑:~/mydonut/out/target/product/generic)
          $ make

          2/ 創(chuàng)建SDK (Package SDK: out/host/darwin-x86/sdk/android-sdk_eng.<build-id>-x86.zip)
          $ make sdk

          3/ 創(chuàng)建ADT (Package ADT: ~/mysdk/android-eclipse-<buildnumber>.zip)
          $ development/tools/eclipse/scripts/build_server.sh ~/mysdk $USER

          4/ 編譯模塊 (訪問模塊對應(yīng)的目錄,執(zhí)行mm命令,Package: ~/mydonut/out/target/product/generic/system/{model-name}/{submodel-name}.**)
          $ cd frameworks/
          $ mm

          該system目錄對應(yīng)的就是設(shè)備/模擬器運(yùn)行環(huán)境對應(yīng)的system目錄,我們講新生成的模塊文件(*.so/*.jar/*.apk/...)上傳到運(yùn)行環(huán)境下的對應(yīng)目錄后,重啟設(shè)備生效
          如果是應(yīng)用程序(*.apk),除了Launcher應(yīng)用需要重啟,其他應(yīng)用均不需要重啟設(shè)備。

          下面以更新framework為例,Package: ~/mydonut/out/target/product/generic/system/framework/framework.jar

          4.1 修改framwork程序(~mydonut/framework/...),并訪問framework目錄,執(zhí)行mm命令,編譯新的framework.jar程序
          $ cd framework
          $ mm

          其他模塊,如庫文件和應(yīng)用程序也可以用同樣的方法編譯;應(yīng)用程序還可以通過eclipse創(chuàng)建android 應(yīng)用程序安裝包。

          4.2 首先我們運(yùn)行模擬器(如果是手機(jī),則通過USB連上終端)
          $ cd {ANDROID SDK}/tools
          $ ./emulator -avd {AVD_NAME}

          4.3 然后通過shell命令,設(shè)置設(shè)備/system目錄的寫權(quán)限
          $ ./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到對應(yīng)的運(yùn)行環(huán)境目錄
          $ ./adb push {MYDONUT_OUT_PATH}/target/product/generic/system/framework/framework.jar /system/framework

          4.5 通過命令,重啟設(shè)備,更新生效。
          $ ./adb shell
          # stop
          # start

          注意:如果要關(guān)掉模擬窗口后生效,需要通過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中標(biāo)志為@hide的程序和接口,應(yīng)用程序中需要這些借口可以引入相關(guān)的.jar程序。

          ~/mydonut/out/host/linux-x86/bin
          存放相關(guān)的工具tools目錄

          附4:創(chuàng)建完整的java項(xiàng)目
          $ cp ./development/ide/eclipse/.classpath .
          打開Eclipse,新增一個已經(jīng)創(chuàng)建的java項(xiàng)目,執(zhí)行mydonut目錄,點(diǎn)擊finish,完成項(xiàng)目的創(chuàng)建,可以查看項(xiàng)目下所有的java程序。
          posted on 2009-09-25 18:57 Xu Jianxiang 閱讀(2361) 評論(0)  編輯  收藏 所屬分類: Android
          主站蜘蛛池模板: 平阳县| 福州市| 衢州市| 浦江县| 淳化县| 宣城市| 龙里县| 巴楚县| 娄底市| 张家川| 广饶县| 怀集县| 武冈市| 迭部县| 花莲县| 抚州市| 崇仁县| 汪清县| 台南市| 秦安县| 社会| 兴和县| 乌拉特中旗| 曲麻莱县| 额尔古纳市| 乌兰县| 孟津县| 寿光市| 和政县| 岱山县| 澄迈县| 如皋市| 祥云县| 滦平县| 应城市| 当雄县| 新绛县| 昌图县| 林州市| 和平县| 保靖县|