Android project 的常用編譯方法

來源:互聯網
上載者:User

網址:http://www.blogjava.net/anymobile/articles/296462.html

 

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程式。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.