一、ANT學習:
一,準備ant
ant 官網可下載
http://ant.apache.org/
ant 環境配置:
1。解壓ant的包到本地目錄。
2。在環境變量中設置ANT_HOME,值爲你的安裝目錄。
3。把ANT_HOME/bin加到你係統環境的path。
二,詳細步驟和說明,這裏我們要知道一些Android命令。
前提條件已配置好android sdk 環境,所以可以在任意目錄下執行android 命令,不然則要切換到 android-sdk\tools目錄下
1.創建一個android項目
參數說明:
-k /--package 爲命名空間(包名)-a /--name 工程名
-p /--path 項目 -t 爲目標平臺的版本編號
例如:
C:\Documents and Settings\Administrator>android create project -k com.android.Tank -a Tank -t 4 -p F:\tank
列出不同版本平臺的對應id編號 android.bat list targets /android list
例如:C:\Documents and Settings\Administrator>android.bat list targets
對已經存在的android工程,我們可以update下(修改平臺的版本),這樣會自動添加build.xml 等ant 的配置文件
例如:
D:\Dev\android-sdk-windows\tools>android update project -n LHCLottery -t 4 -p F:\LHCLottery
Updated default.properties
Updated local.properties
Added file F:\LHCLottery\build.xml
Added file F:\LHCLottery\proguard.cfg
編譯:直接ant 是不會有文件輸出的,所以後面一定要帶上參數
ant 參數如下:
* debug:帶調試用簽名的構建
* release:構建應用程序,生成的apk必須簽名纔可以發佈
* install:安裝調試構建的包到運行着的模擬器或者設備;
* reinstall
* uninstall
開始執行編譯:切換到工程目錄下:E:\MyLiB\Android\AndroidAnt\MyBoardCastReciver
例如(生成調試版本):E:\MyLiB\Android\AndroidAnt\MyBoardCastReciver>ant
debug
例如(生成未簽名版本):E:\MyLiB\Android\AndroidAnt\MyBoardCastReciver>ant
release
參考:http://www.cnblogs.com/tankaixiong/archive/2010/11/24/1887156.html
二、keystore製作
Apk簽名首先要有一個keystore的簽名用的文件。
keystore是由jdk自帶的工具keytool生成的。
具體生成方式參考:
開始->運行->cmd->cd到你安裝的jdk的目錄裏,我的是C:\Program Files\Java\jdk1.6.0_10\bin
然後輸入:
keytool -genkey -alias asaiAndroid.keystore -keyalg RSA -validity 20000 -keystore asaiAndroid.keystore
-alias 後面跟的是別名這裏是 asaiAndroid.store
-keyalg 是加密方式這裏是RSA
-validity 是有效期 這裏是20000
-keystore 就是要生成的keystore的名稱 這裏是asiAndroid.keystore
/*說明:-genkey
產生密鑰 |
-alias
demo.keystore 別名 demo.keystore |
-keyalg
RSA 使用RSA算法對簽名加密 |
-validity
40000 有效期限4000天 |
-keystore
demo.keystore */ |
按回車後首先會提示你輸入的密碼:這個在簽名時要用的,要記住
然後會再確認你的密碼。
之後會依次叫你輸入姓名、組織單位、組織名稱、城市區域、省份名稱、國家代碼(CN)等。
參考:http://zlb1986.iteye.com/blog/761340
三、開始簽名。
在 C:\Program Files\Java\jdk1.6.0_10\bin 還提供一個工具 jarsigner.exe
運行命令給APK簽名:
jarsigner -verbose -keystore asaiAndroid.keystore -signedjar Lotteryonline_signed.apk LotteryOnline.apk asaiAndroid.keystore
-keystore: keystore的名稱
LotteryOnline_signed.apk: 簽名後的APK
LotteryOnline.apk: 簽名前的APK
/*說明:-verbose
輸出簽名的詳細信息 |
-keystore
demo.keystore 密鑰庫位置 |
-signedjar
demor_signed.apk demo.apk demo.keystore 正式簽名,三個參數中依次爲簽名後產生的文件demo_signed,要簽名的文件demo.apk和密鑰庫demo.keystore.*/ |
然後按回車:會要求輸入剛纔設置的密碼,輸入後按回車就開始簽名了。
參考:http://www.cnblogs.com/qianxudetianxia/archive/2011/04/09/2010468.html
打包的主要步驟:
1生成R.java類文件:利用ant和命令行使用android SDK提供的aapt.ext程序生成R.java。
2將.aidl文件生成.java類文件:利用ant和命令行使用android SDK提供的aidl.exe生成.java文件。
3第三步 編譯.java類文件生成class文件:利用ant和命令行使用jdk的javac編譯java類文件生成class文件。
4第四步 將class文件打包生成classes.dex文件:利用ant命令行使用android SDK提供的dx.bat命令行腳本生成classes.dex文件。
5第五步 打包資源文件(包括res、assets、androidmanifest.xml等):ant命令行使用Android SDK提供的aapt.exe生成資源包文件。
6第六步 生成未簽名的apk安裝文件:ant和命令行使用android SDK提供的apkbuilder.bat命令腳本生成未簽名的apk安裝文件。
7第七步 對未簽名的apk進行簽名生成簽名後的android文件:ant和命令行使用jdk的jarsigner對未簽名的包進行apk簽名。
8第八步 安裝和卸載APK文件,利用ant命令行使用Android SDK提供的adb.exe。
參考:http://blog.csdn.net/kkdelta/article/details/6672712
使用ant優化android項目編譯速度 提高工作效率
1、Android項目編譯週期長,編譯項目命令取消困難
2、在進行Android項目的編譯的同時,Eclipse鎖定工作區不能進行修改操作
3、在只進行資源文件的修改時,Eclipse對資源文件的修改會導致整個項目的編譯,在無法打開自動編譯模式下,極爲不便
對項目進行分包處理後,android編譯速度極慢。
對於我們現在的項目,在未進行分包時編譯一次大約需要4、5分鐘而有時候你只是簡單的修改了一下java文件。。。
進行分包後,編譯整個項目時長達到10分以上,有時甚至造成eclipse假死
嚴重的損耗了工作時間和降低工作效率。
針對現在生成項目速度慢的狀況,發現android 項目編譯時對資源文件的操作佔大量時間。
Eclipse默認編譯流程會有兩次aapt調用。每次時間約四分鐘。
針對我們進行android項目開發時的經驗,有以下幾種情況:
1、頻繁更改資源文件,在類中需要引用資源但不用生成apk
2、頻繁修改java類文件,資源文件不變,需要生成apk
3、次數很少的同時修改資源文件和java類文件,同時生成apk
使用ant build 腳本實現將二次資源文件的操作分開,可以良好改善編譯速度,提高工作效率(至少一半)。在ant腳本編譯模式下,對於以上三種情況:
1、在只有資源文件更改的情況 :使用命令 ant generateR 只更新R文件 耗時 約4mins
2、在沒有更新資源文件後,只修改JAVA類,使用 ant simpledebug 忽略資源文件R引用的更新,並打包 耗時 約5mins
3、更新了資源文件,又修改了JAVA文件想立即打包則使用ant debug 此爲Eclipse默認模式,時長 大約10minus -_-|
詳細參考:http://www.hackvip.com/mobiwen/html/Mobile_250550.html
http://bbs.gfan.com/thread-855274-1-1.html
注:以上內容來源csdn網友.