詳談Android apk打包:關于APK數(shù)字簽名詳解介紹

<? ? ? 本文主要為大家詳細講解APK數(shù)字簽名方面的內(nèi)容,并介紹APK調試模式和發(fā)布模式下數(shù)字簽名的方式峦剔。

本文轉自:http://www.jizhuomi.com/android/environment/293.html

1、什么是數(shù)字簽名

數(shù)字簽名就是為你的程序打上一種標記炊甲,來作為你自己的標識荣挨,當別人看到簽名的時候會知道它是與你相關的贸伐。

2勾给、為什么要數(shù)字簽名

最簡單直接的回答:系統(tǒng)要求的恍涂。

Android系統(tǒng)要求每一個Android應用程序必須要經(jīng)過數(shù)字簽名才能夠安裝到系統(tǒng)中,也就是說如果一個Android應用程序沒有經(jīng)過數(shù)字簽名足丢,是沒有辦法安裝到系統(tǒng)中的元镀!

Android通過數(shù)字簽名來標識應用程序的作者和在應用程序之間建立信任關系,不是用來決定最終用戶可以安裝哪些應用程序霎桅。

這個數(shù)字簽名由應用程序的作者完成,并不需要權威的數(shù)字證書簽名機構認證讨永,它只是用來讓應用程序包自我認證的滔驶。

3、數(shù)字證書的機制

Android使用Java的數(shù)字證書相關的機制來給apk加蓋數(shù)字證書卿闹,要理解android的數(shù)字證書揭糕,需要先了解以下數(shù)字證書的概念和java的數(shù)字證書機制萝快。

4、程序使用相同的數(shù)字證書的好處

1)有利于程序升級

當新版程序和舊版程序的數(shù)字證書相同時著角,Android系統(tǒng)才會認為這兩個程序是同一個程序的不同版本揪漩。如果新版程序和舊版程序的數(shù)字證書不相同,則Android系統(tǒng)認為他們是不同的程序吏口,并產(chǎn)生沖突奄容,會要求新程序更改包名。

2)有利于程序的模塊化設計和開發(fā)产徊。

Android系統(tǒng)允許擁有同一個數(shù)字簽名的程序運行在一個進程中昂勒,Android程序會將他們視為同一個程序。所以開發(fā)者可以將自己的程序分模塊開發(fā)舟铜,而用戶只需要在需要的時候下載適當?shù)哪K戈盈。

3)可以通過權限(permission)的方式在多個程序間共享數(shù)據(jù)和代碼。

Android 提供了基于數(shù)字證書的權限賦予機制谆刨,應用程序可以和其他的程序共享概功能或者數(shù)據(jù)給那那些與自己擁有相同數(shù)字證書的程序塘娶。如果某個權限 (permission)的protectionLevel是signature,則這個權限就只能授予那些跟該權限所在的包擁有同一個數(shù)字證書的程序痊夭。

5刁岸、在簽名時,需要考慮數(shù)字證書的有效期

1)數(shù)字證書的有效期要包含程序的預計生命周期生兆,一旦數(shù)字證書失效难捌,持有改數(shù)字證書的程序將不能正常升級。

2)如果多個程序使用同一個數(shù)字證書鸦难,則該數(shù)字證書的有效期要包含所有程序的預計生命周期根吁。

3)Android Market強制要求所有應用程序數(shù)字證書的有效期要持續(xù)到2033年10月22日以后。

6合蔽、數(shù)字證書的要點

Android數(shù)字證書包含以下幾個要點:

1)所有的應用程序都必須有數(shù)字證書击敌,Android系統(tǒng)不會安裝一個沒有數(shù)字證書的應用程序。

2)Android程序包使用的數(shù)字證書可以是自簽名的拴事,不需要一個權威的數(shù)字證書機構簽名認證沃斤。

3)如果要正式發(fā)布一個Android ,必須使用一個合適的私鑰生成的數(shù)字證書來給程序簽名刃宵,而不能使用adt插件或者ant工具生成的調試證書來發(fā)布衡瓶。

4)數(shù)字證書都是有有效期的,Android只是在應用程序安裝的時候才會檢查證書的有效期牲证。如果程序已經(jīng)安裝在系統(tǒng)中哮针,即使證書過期也不會影響程序的正常功能。

5)Android使用標準的java工具 Keytool and Jarsigner 來生成數(shù)字證書,并給應用程序包簽名十厢。

6)使用zipalign優(yōu)化程序等太。

7、數(shù)字簽名的兩種模式

我們都知道Android系統(tǒng)不會安裝運行任何一款未經(jīng)數(shù)字簽名的apk程序蛮放,無論是在模擬器上還是在實際的物理設備上缩抡。所以我們會有一個疑問,為何在日 常開發(fā)過程中我沒有進行任何簽名的操作包颁,程序都會在模擬器和真機上運行瞻想?下面我們來講講APK程序的兩種模式: 調試模式(debug mode)和發(fā)布模式(release mode)

1、調試模式(debug mode)??: 在調試模式下徘六,ADT會自動的使用debug密鑰為應用程序簽名内边,因此我們可以直接運行程序。

debug密鑰:一個名為debug.keystore的文件待锈。

存放位置:C:\Users\Xiaopeng\.android\debug.keystore? ?? ???Xiaopeng對應替換為自己操作系統(tǒng)的用戶名

兩個風險:

debug簽名的應用程序有這樣兩個風險:

1)debug簽名的應用程序不能在Android Market上架銷售漠其,它會強制你使用自己的簽名;

2)debug.keystore在不同的機器上所生成的可能都不一樣竿音,就意味著如果你換了機器進行apk版本升級和屎,那么將會出現(xiàn)上面那種程序不能覆蓋安裝的問題。

不要小視這個問題春瞬,如果你開發(fā)的程序只有你自己使用柴信,當然無所謂,卸載再安裝就可以了宽气。但要是你的軟件有很多使用客戶随常,這就是大問題了,就相當于軟件不具備升級功能萄涯!所以一定要有自己的數(shù)字證書來簽名。

2涝影、發(fā)布模式(release mode) : 當要發(fā)布程序時枣察,開發(fā)者就需要使用自己的數(shù)字證書給apk包簽名。

使用自己的數(shù)字證書給APK簽名的兩種方法:

1)通過DOS命令來對APK簽名燃逻。

2)使用ADT Export Wizard進行簽名序目。

美文推薦:

技術博客:移動應用加密工具解析

技術博客:GameplayKit蘋果手游開發(fā)工具簡析

技術博客:程序員之選:移動開發(fā)中幾個全新的開源工具

技術博客:如何阻止APK反編譯查看源代碼? 愛加密保護開發(fā)者創(chuàng)意

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市伯襟,隨后出現(xiàn)的幾起案子猿涨,更是在濱河造成了極大的恐慌,老刑警劉巖姆怪,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嘿辟,死亡現(xiàn)場離奇詭異舆瘪,居然都是意外死亡,警方通過查閱死者的電腦和手機红伦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來淀衣,“玉大人昙读,你說我怎么就攤上這事∨蚯牛” “怎么了蛮浑?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長只嚣。 經(jīng)常有香客問我沮稚,道長,這世上最難降的妖魔是什么册舞? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任蕴掏,我火速辦了婚禮,結果婚禮上调鲸,老公的妹妹穿的比我還像新娘盛杰。我一直安慰自己,他們只是感情好藐石,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布即供。 她就那樣靜靜地躺著,像睡著了一般于微。 火紅的嫁衣襯著肌膚如雪逗嫡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天株依,我揣著相機與錄音驱证,去河邊找鬼。 笑死勺三,一個胖子當著我的面吹牛雷滚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播吗坚,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼祈远,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了商源?” 一聲冷哼從身側響起车份,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎牡彻,沒想到半個月后扫沼,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體出爹,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年缎除,在試婚紗的時候發(fā)現(xiàn)自己被綠了严就。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡器罐,死狀恐怖梢为,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情轰坊,我是刑警寧澤铸董,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站肴沫,受9級特大地震影響粟害,放射性物質發(fā)生泄漏。R本人自食惡果不足惜颤芬,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一悲幅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧驻襟,春花似錦夺艰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至豌习,卻和暖如春存谎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背肥隆。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工既荚, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人栋艳。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓恰聘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親吸占。 傳聞我的和親對象是個殘疾皇子晴叨,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容