您好,登錄后才能下訂單哦!
本篇文章為大家展示了Android中怎么給應(yīng)用程序簽名,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
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)有一個密鑰了,如公共密鑰,就可以給.apk文件簽名了。
也可以把上面這個完整的步驟寫成一個bat文件,這樣需要簽名的時(shí)候只要運(yùn)行這個bat就可以了。下面給出一個完整的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
以上是一個給應(yīng)用簽名的完整bat文件,在運(yùn)行這個bat文件時(shí),還需要按照屏幕提示的步驟輸入一些必要信息,***生成一個簽名后的文件是:MyFirstApp_signed.apk。
簽名完成以后***再把這個文件壓縮一下,使用Android SDK安裝路徑下tools文件夾里的zipalign進(jìn)行壓縮,以剛才這個文件為例,也可以寫成一個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安裝路徑代替。
上述內(nèi)容就是Android中怎么給應(yīng)用程序簽名,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。