ANT、keystore製作 、簽名

 

一、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項目編譯速度 提高工作效率

在通常的Android大中型項目開發中,使用Eclipse進行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網友.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章