关于Android的应用程序的发布的学习(一)
上一次寫了一篇關于android應用程序打包成apk文件的簽名,地址:http://blog.csdn.net/zqiang_55/article/details/6939170
最近再看sdk的時候發現其實在sdk中又了詳細的少說明,現在將主要的翻譯如下:
在Dev Gudie標簽頁中的Publishing模塊
一給應用程序簽名
概要:
Android系統要求所有安裝的應用程序都必須要有數字簽名證書,數字簽名證書的私鑰由應用程序開發者持有。Android系統通過數字簽名來確認應用程序的開發者和在應用程序直接建立關聯(程序升級時使用)。
?
以下幾點對于理解android應用程序簽名非常重要
1.??????所有的應用程序必須簽名。Android系統不會安裝沒有簽名的應用程序
2.??????可以使用自己的簽名證書給應用程序簽名。不必非得使用官方證書
3.??????當你發布應用程序給最終用戶的時候,必須使用合法的私鑰。你不能使用sdk tools里的debug key來給發布的應用程序簽名
4.??????Android檢查簽名證書的有效日期只根據應用程序的安裝時間。如果程序安裝之后簽名證書過期,那么應用程序也能正常運行。
5.??????你可以使用標準工具—Keytool和Jarsigner—來生成私鑰并給.apk文件簽名
6.??????一旦你給程序簽名以后,使用zipalign工具優化最終的apk包
Android系統不會安裝或者運行沒有經過正確簽名的應用程序。這一規律適用于真實設備或者模擬器。因此在設備或者模擬器運行或調試程序時,必須安裝簽名。
在調試的時候,androidsdk工具幫助你在應用程序上簽名。Eclips的ADT插件和Ant編譯工具提供了兩種簽名模式——debug模式和release模式
1.??????在開發和測試的時候,可以在debug模式下編譯。在debug模式下,編譯工具在JDK環境下使用keytool功能通過已知的別名(alias)和密碼來產生keystore和key。在每一次編譯時,使用debug key來給應用程序簽名。因為密碼是已知的,在每次編譯的時候,都不會有提示
2.??????當應用程序準備發布時,必須在release模式下編譯,使用私鑰簽名。有兩種方法可尋:
1.??????在命令模式下(cmd)使用Keytool和Jarsigner。在這一步,先編譯無簽名的應用程序。用私鑰和Jarsigner給.apk文件手動的簽名。如果你沒有合適的私鑰,可以運行Keytool產生自己的keystore/key。
2.??????使用ADT導出向導。在Eclips使用ADT插件開發,可以使用導出向導來編譯程序生成私鑰,然后給.apk文件簽名。在所有的單進程程序鎮南關都可以使用導出向導
程序簽名后不要忘記使用zipalign給程序做優化。
二.簽名策略
程序簽名可能會影響程序開發的步驟,特別是要發布多個版本。
一般推薦開發者在整個開發周期用相同的證書給應用程序簽名。下面是幾個原因
1.??????程序升級—如果想給用戶無縫隙的升級應用程序,那么你就給升級的應用程序用和原來的程序用相同的證書簽名。在安裝升級后的應用程序,系統會比較新版本的證書和已存在版本的證書。如果完全匹配,包括比較證書數據和命令,系統會允許升級程序安裝。如果不匹配,需要重新簽名。在不匹配的情況下,安裝的升級程序會是一個完成的心程序,并不會將原來的覆蓋掉。
2.??????程序的模塊性—Android系統允許相同證書簽名的應用程序運行在同一個進程中,如果程序運行在同一個進程中,系統會認為這是同一個程序。這樣你可以以模塊的方式來部署應用程序,用戶可以只升級相應的模塊。
3.??????代碼/數據通過權限分享—系統提供了基于強制權限簽名策略,因此一個程序可以向另外的一個簽名的程序暴露自己的功能。
在決定簽名策略的時候另外一個需要重要考慮的是簽名證書的有效期.
1.??????如果對應用程序支持升級,確保key的有效期超過程序的生命周期。推薦有效期為25年或者更多。當key的有效期終止的時候,用戶將不能完美的升級程序。
2.??????如果用相同的key在多個有明顯區別的程序間簽名,要確保key的有效期要比所有的應用程序生命周期都要長,也包括將來加入到應用程序的程序。
3.??????如果在Android Market發布程序,那么key的有效期的截止日期為2033-10-22。Martet的服務器強制執行這一要求,以保證用戶能平穩升級。
在Debug模式下簽名
Android編譯工具提供了一個debug簽名模式使開發和調試程序更簡單,同時也是為了滿足android要求數字簽名。在使用debug模式編譯app時,sdk工具自動的調用Keytool生成debug keystore和key。Debug key會自動調用給.apk文件簽名,因此沒必要在調試的時候用自己的私鑰給程序簽名。
Sdk tools生成debug keystore/key需要姓名和密碼:
·????????Keystorename: "debug.keystore"
·????????Keystorepassword: "android"
·????????Key alias:"androiddebugkey"
·????????Keypassword: "android"
CN: "CN=Android Debug,O=Android,C=US
?
太多了,不想翻譯了!!累死了!后面大部分是一些命令了,自己看看吧
轉載于:https://www.cnblogs.com/wuyida/archive/2011/11/22/6300669.html
總結
以上是生活随笔為你收集整理的关于Android的应用程序的发布的学习(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win7系统补丁安装流程
- 下一篇: android sina oauth2.