第二步:創(chuàng)建密鑰庫(kù)keystore,輸入密鑰庫(kù)導(dǎo)出位置和密碼,記住密碼,下次Use existing keystore會(huì)用到。
第三步:填寫(xiě)密鑰庫(kù)信息,填寫(xiě)一些apk文件的密碼,使用期限和組織單位的信息。
第四步:生成帶簽名的apk文件,到此就結(jié)束了。
第五步:如果下次發(fā)布版本的時(shí)候,使用前面生成的keystore再簽名。
第六步:Next,Next,結(jié)束!
方法三:使用IntelliJ IDEA導(dǎo)出帶簽名的apk
方法步驟基本和Eclipse相同,大概操作路徑是:菜單Tools->Andrdoid->Export signed apk。
4.簽名之后,用zipalign(壓縮對(duì)齊)優(yōu)化你的APK文件。
未簽名的apk不能使用,也不能優(yōu)化。簽名之后的apk谷歌推薦使用zipalign.exe(位于android-sdk-windows/tools目錄下)工具對(duì)其優(yōu)化:
D:/>zipalign -v 4 demo_signed.apk final.apk
如上,zipalign能夠使apk文件中未壓縮的數(shù)據(jù)在4個(gè)字節(jié)邊界上對(duì)齊(4個(gè)字節(jié)是一個(gè)性能很好的值),這樣android系統(tǒng)就可以使用mmap()(請(qǐng)自行查閱這個(gè)函數(shù)的用途)函數(shù)讀取文件,可以在讀取資源上獲得較高的性能,
PS:1.在4個(gè)字節(jié)邊界上對(duì)齊的意思就是,一般來(lái)說(shuō),是指編譯器吧4個(gè)字節(jié)作為一個(gè)單位來(lái)進(jìn)行讀取的結(jié)果,這樣的話,CPU能夠?qū)ψ兞窟M(jìn)行高效、快速的訪問(wèn)(較之前不對(duì)齊)。
2.對(duì)齊的根源:android系統(tǒng)中的Davlik虛擬機(jī)使用自己專有的格式DEX,DEX的結(jié)構(gòu)是緊湊的,為了讓運(yùn)行時(shí)的性能更好,可以進(jìn)一步用"對(duì)齊"進(jìn)一步優(yōu)化,但是大小一般會(huì)有所增加。
5.簽名對(duì)你的App的影響。
你不可能只做一個(gè)APP,你可能有一個(gè)宏偉的戰(zhàn)略工程,想要在生活,服務(wù),游戲,系統(tǒng)各個(gè)領(lǐng)域都想插足的話,你不可能只做一個(gè)APP,谷歌建議你把你所有的APP都使用同一個(gè)簽名證書(shū)。
使用你自己的同一個(gè)簽名證書(shū),就沒(méi)有人能夠覆蓋你的應(yīng)用程序,即使包名相同,所以影響有:
1) App升級(jí)。 使用相同簽名的升級(jí)軟件可以正常覆蓋老版本的軟件,否則系統(tǒng)比較發(fā)現(xiàn)新版本的簽名證書(shū)和老版本的簽名證書(shū)不一致,不會(huì)允許新版本安裝成功的。
2) App模塊化。android系統(tǒng)允許具有相同的App運(yùn)行在同一個(gè)進(jìn)程中,如果運(yùn)行在同一個(gè)進(jìn)程中,則他們相當(dāng)于同一個(gè)App,但是你可以單獨(dú)對(duì)他們升級(jí)更新,這是一種App級(jí)別的模塊化思路。
3) 允許代碼和數(shù)據(jù)共享。android中提供了一個(gè)基于簽名的Permission標(biāo)簽。通過(guò)允許的設(shè)置,我們可以實(shí)現(xiàn)對(duì)不同App之間的訪問(wèn)和共享,如下:
AndroidManifest.xml:<permission android:protectionLevel="normal" />
其中protectionLevel標(biāo)簽有4種值:normal(缺省值),dangerous, signature,signatureOrSystem。簡(jiǎn)單來(lái)說(shuō),normal是低風(fēng)險(xiǎn)的,所有的App不能訪問(wèn)和共享此App。dangerous是高風(fēng)險(xiǎn)的,所有的App都能訪問(wèn)和共享此App。signature是指具有相同簽名的App可以訪問(wèn)和共享此App。signatureOrSystem是指系統(tǒng)image中App和具有相同簽名的App可以訪問(wèn)和共享此App,谷歌建議不要使用這個(gè)選項(xiàng),因?yàn)楹灻妥銐蛄耍话氵@個(gè)許可會(huì)被用在在一個(gè)image中需要共享一些特定的功能的情況下。
新聞熱點(diǎn)
疑難解答
圖片精選