這篇文章主要講解了“Android中如何給應(yīng)用程序簽名”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Android中如何給應(yīng)用程序簽名”吧!
10年積累的成都做網(wǎng)站、成都網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先建設(shè)網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有新安免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。Android系統(tǒng)要求所有的程序經(jīng)過數(shù)字簽名才能安裝,如果沒有可用的數(shù)字簽名,系統(tǒng)將不許安裝運(yùn)行此程序。不管是模擬器還是真實(shí)手機(jī)。因此,在設(shè)備或者是模擬器上運(yùn)行調(diào)試程序之前,必須為應(yīng)用程序設(shè)置數(shù)字簽名。
所有的程序都必須簽名,沒有被簽名的程序,系統(tǒng)將不能安裝。
可使用自簽署證書簽署應(yīng)用程序,無須授權(quán)憑證。系統(tǒng)僅僅會在安裝的時(shí)候測試簽名證書的有效期,如果應(yīng)用程序的簽名是在安裝之后才到期,那么應(yīng)用程序仍然可以正常啟用。可以使用標(biāo)準(zhǔn)工具-Keytool and Jarsigner-生成密鑰,來簽名應(yīng)用程序的.apk文件。
Android SDK 工具可以在調(diào)試時(shí)給應(yīng)用程序簽名。ADT插件和Ant編譯工具都提供了兩種簽名模式-debug模式和release模式
debug模式下,編譯工具使用JDK中的通用程序Keytool通過已知方法和密碼創(chuàng)建秘鎖和密鑰。每次編譯的時(shí)候,工具使用debug密鑰簽名應(yīng)用程序的.apk文件。因?yàn)槊艽a是已知的,工具
不需要在每次編譯的時(shí)候提示輸入密鎖和密鑰。
當(dāng)應(yīng)用程序調(diào)試完畢準(zhǔn)備要發(fā)布release版本時(shí),可以在release模式下編譯。release模式下,編譯工具不會將.apk文件簽名。需要自己用Keytool生成密鑰和密鎖,再用JDK中的Jarsigner工具給.apk文件簽名。
簽名基本設(shè)置
首先設(shè)置JAVA_HOME環(huán)境變量,告訴SDK如何找到Keytool,或者可以在Windows 系統(tǒng)環(huán)境變量PATH變量中添加Keytool的JDK路徑。
在發(fā)布release版本時(shí),從Package面版上按選中你的project,按鼠標(biāo)右鍵,依次選擇Android Tools、Export Application Package?;蛘呖梢渣c(diǎn)擊Manifest Editor,overview 頁面上的“Exporting the unsigned .apk”連接 ,導(dǎo)出未簽名apk文件。保存.apk文件后,用Jarsigner及自己的密鑰給apk文件簽名,如果沒有密鑰, 可以用Keystore創(chuàng)建密鑰和密鎖。如果已經(jīng)有一個(gè)密鑰了,如公共密鑰,就可以給.apk文件簽名了。
也可以把上面這個(gè)完整的步驟寫成一個(gè)bat文件,這樣需要簽名的時(shí)候只要運(yùn)行這個(gè)bat就可以了。下面給出一個(gè)完整的bat文件示例:
@Rem android簽名程序 //注釋指令
@Rem echo是顯示指令 格式:echo [{on|off}] [message]
@echo **********************************************************
@Rem 文件是否存在命令格式:if exist 路徑+文件名 命令
@if exist d:sign/MyFirstApp.keystore goto sign
@echo 創(chuàng)建簽名文件MyFirstApp.keystore
@Rem keytool命令格式:-genkey產(chǎn)生簽名 -alias別名 -keyalg加密算法 -validity有效天數(shù) -keystore生產(chǎn)簽名文件名稱
keytool -genkey -alias MyFirstApp.keystore -keyalg RSA -validity 40000 -keystore MyFirstApp.keystore
@echo 開始簽名:
@Rem jarsigner命令格式:-verbose輸出詳細(xì)信息 -keystore密鑰庫位置 -signedjar要生成的文件 要簽名的文件 密鑰庫文件
jarsigner -verbose -keystore MyFirstApp.keystore -signedjar MyFirstApp_signed.apk MyFirstApp.apk MyFirstApp.keystore
@goto over
:sign
@echo 開始簽名:
jarsigner -verbose -keystore MyFirstApp.keystore -signedjar MyFirstApp_signed.apk MyFirstApp.apk MyFirstApp.keystore
:over
@echo ********************MyFirstApp.apk 簽名完成***********************
pause
以上是一個(gè)給應(yīng)用簽名的完整bat文件,在運(yùn)行這個(gè)bat文件時(shí),還需要按照屏幕提示的步驟輸入一些必要信息,***生成一個(gè)簽名后的文件是:MyFirstApp_signed.apk。
簽名完成以后***再把這個(gè)文件壓縮一下,使用Android SDK安裝路徑下tools文件夾里的zipalign進(jìn)行壓縮,以剛才這個(gè)文件為例,也可以寫成一個(gè)bat文件,示例如下:
D:\soft\android-sdk-windows\tools\zipalign -f -v 4 MyFirstApp_signed.apk MyFirstApp_zip.apk D:\soft\android-sdk-windows\tools\zipalign -c -v 4 MyFirstApp_zip.apk
pause<
上面的D:\soft\android-sdk-windows用你的實(shí)際Android SDK安裝路徑代替。
感謝各位的閱讀,以上就是“Android中如何給應(yīng)用程序簽名”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Android中如何給應(yīng)用程序簽名這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!