關於Android打版本的小白文,android小白文
雖然經常和android打交道,但其實我對android不是很瞭解。這裡記錄一下ant編譯android工程的過程,然後順便記錄一下android的一些基本概念。不求渡人,但求渡己。這裡只是記錄一下自己實踐的過程,參考博文連接點擊這裡。
流程如下:
1>產生R.java檔案。(註:此檔案為android資源的索引檔案)
2>將java代碼編譯成class檔案。
3>將jar包和class檔案產生 class.dex 檔案。(註:class是java的二進位檔案。 jar包是打包的class檔案,可以直接用jar命令直接運行。dex是android上得可執行檔格式,注意apk只是壓縮包,安裝後自動解壓,最後執行的是dex 檔案)
4>將assets檔案和res檔案打包壓縮。(註:做cocos2d-x的應該對這個都比較熟悉,遊戲用到的資源最後都通過build指令碼打到assets檔案裡,這裡的資源不會在R檔案中檢索到,res可以通過R檔案檢索到。具體原因不清楚,畢竟都可以用java代碼讀取)。
5>將dex檔案和資源檔打包成apk。
6>對apk進行簽名。(mac下心情小語檔案存放路徑為:~/.android/debug.keystore)
編譯需要用到一個叫build.xml,如果你的工程目錄下面沒有此檔案,可以通過android update project --path .來產生。(注:${}取出{}內的路徑)(注:aapt為Android Asset Packaging Tool,可以查看,建立,更新ZIP格式的文檔附件,也可以將資源檔編譯成二進位)(註:apkbuilder在android3.0後被廢棄)(注:若mac終端運行ant出現亂碼現象請到終端,設定,進階,字元編碼處設定)。
直接運行ant debug可能會出現這樣的一個錯誤提示:sdk.dir is missing.Make sure generate local.properties using ... ,原因不清楚,明明已經產生local.properties,卻提示找不到,但是可以手動傳入,傳入方式為 -Dsdk.dir={sdk路徑}。這樣做可能還會有問題,錯誤提示為:build.xml:601:The following error occurred while executing this line。你需要做的是關掉eclipse,運行ant clean, 然後重新運行 ant debug