自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Android 簽名詳解

移動開發(fā) Android
Android 系統(tǒng)中,所有安裝 到 系統(tǒng)的應(yīng)用程序都必有一個數(shù)字證書,此數(shù)字證書用于標(biāo)識應(yīng)用程序的作者和在應(yīng)用程序之間建立信任關(guān)系,如果一個 permission的protectionLevel為signature,那么就只有那些跟該permission所在的程序擁有同一個數(shù)字證書的應(yīng) 用程序才能取得該權(quán)限。

在Android 系統(tǒng)中,所有安裝 到 系統(tǒng)的應(yīng)用程序都必有一個數(shù)字證書,此數(shù)字證書用于標(biāo)識應(yīng)用程序的作者和在應(yīng)用程序之間建立信任關(guān)系,如果一個 permission的protectionLevel為signature,那么就只有那些跟該permission所在的程序擁有同一個數(shù)字證書的應(yīng) 用程序才能取得該權(quán)限。Android使用Java的數(shù)字證書相關(guān)的機制來 給apk加蓋數(shù)字證書,要理解android的數(shù)字證書,需要先了解以下數(shù)字證書的概念和java的數(shù)字證書機制。Android系統(tǒng)要求每一個安裝進系 統(tǒng)的應(yīng)用程序都是經(jīng)過數(shù)字證書簽名的,數(shù)字證書的私鑰則保存在程序開發(fā)者的手中。Android將數(shù)字證書用來標(biāo)識應(yīng)用程序的作者和在應(yīng)用程序之間建立信 任關(guān)系,不是用來決定最終用戶可以安裝哪些應(yīng)用程序。這個數(shù)字證書并不需要權(quán)威的數(shù)字證書簽名機構(gòu)認(rèn)證,它只是用來讓應(yīng)用程序包自我認(rèn)證的。

一:同一個開發(fā)者的多個程序盡可能使用同一個數(shù)字證書 ,這可以帶來以下好處。

(1)有利于程序升級,當(dāng)新版程序和舊版程序的數(shù)字證書相同時,Android系統(tǒng)才會認(rèn)為這兩個程序是同一個程序的不同版本。如果新版程序和舊版程序的數(shù)字證書不相同,則Android系統(tǒng)認(rèn)為他們是不同的程序,并產(chǎn)生沖突,會要求新程序更改包名。

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

(3) 可以通過權(quán)限(permission)的方式在多個程序間共享數(shù)據(jù)和代碼。Android提供了基于數(shù)字證書的權(quán)限賦予機制,應(yīng)用程序可以和其他的程序共 享概功能或者數(shù)據(jù)給那那些與自己擁有相同數(shù)字證書的程序。如果某個權(quán)限(permission)的protectionLevel是signature, 則這個權(quán)限就只能授予那些跟該權(quán)限所在的包擁有同一個數(shù)字證書的程序。

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

(1)數(shù)字證書的有效期要包含程序的預(yù)計生命周期,一旦數(shù)字證書失效,持有改數(shù)字證書的程序?qū)⒉荒苷I墶?/p>

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

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

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

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

(2)Android程序包使用的數(shù)字證書可以是自簽名的,不需要一個權(quán)威的數(shù)字證書機構(gòu)簽名認(rèn)證

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

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

(***ndroid使用標(biāo)準(zhǔn)的java工具 Keytool and Jarsigner 來生成數(shù)字證書,并給應(yīng)用程序包簽名。

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

Android 系統(tǒng)不會安裝運行任何一款未經(jīng)數(shù)字簽名的apk程序,無論是在模擬器上還是在實際的物理設(shè)備上。Android的開發(fā)工具(ADT插件和Ant)都可以協(xié) 助開發(fā)者給apk程序簽名,它們都有兩種模式:調(diào)試模式(debug mode)和發(fā)布模式(release mode)。

在調(diào)試模式下,android的開發(fā)工具會在每次編譯時使用調(diào)試用的數(shù)字證書給程序簽名,開發(fā)者無須關(guān)心。

當(dāng)要發(fā)布程序時,開發(fā)者就需要使用自己的數(shù)字證書給apk包簽名,可以有兩種方法。

(1)在命令行下使用JDK中的和Keytool(用于生成數(shù)字證書)和Jarsigner(用于使用數(shù)字證書簽名)來給apk包簽名。

(2)使用ADT Export Wizard進行簽名(如果沒有數(shù)字證書可能需要生成數(shù)字證書)。
三;兩種簽名方式


***種簽名方式, 使用Keytool和Jarsigner給程序簽名( 用于1.5以下版本 )


命令:keytool -genkey -v -keystore android.keystore -alias android -keyalg RSA -validity 20000

該 命令中,-keystore ophone.keystore 表示生成的證書,可以加上路徑(默認(rèn)在用戶主目錄下);-alias ophone 表示證書的別名是ophone;-keyalg RSA 表示采用的RSA算法;-validity 20000表示證書的有效期是20000天。

此時,我們會在互用主目錄下看到ophone.keystore,即我們剛剛創(chuàng)建的證書。

 

 

 

 


第二種簽名方式:現(xiàn)在介紹android 1.5及更新版本的apk簽名方式

 

 

1,打開Eclipse->選擇你要簽名的項目->右擊->android tools->Export signed Application package...


2,跳出窗口

 

 

3,project checks 如果核對項目名沒有問題的話 點擊 Next
然后跳出keystore selection 如果是已經(jīng)存在keystore的文件就選擇然后next 輸入keystore的密碼進行簽名。
如果沒有的話選擇 create new keystore 然后選擇 keystore 保存的位置,設(shè)置keystore的密碼,點擊Next。

 


4.填寫keystore的基本信息,如,別名,密碼,有效期,姓名,組織,組織名稱,所在城市,所在省份,國家等,點擊Next


5.選擇被簽名后的APK保存位置。點擊finish。

 


6.就可以在你保存的位置中找到相應(yīng)的被簽名后的APK文件。


 

責(zé)任編輯:chenqingxiang 來源: cnblogs
相關(guān)推薦

2017-09-07 16:00:20

2019-04-18 15:00:36

2011-05-27 09:33:31

Android 程序 簽名

2009-09-17 13:26:55

.NET方法簽名

2011-05-27 10:13:39

Android 簽名

2012-05-23 09:33:37

TitaniumStudioAndroid APK

2011-05-27 15:02:15

Android ListView

2013-11-14 10:42:48

MTPAndroid

2014-07-24 09:11:34

2017-01-11 19:05:45

AndroidAndroid Loa詳解

2013-11-14 16:50:08

2023-03-01 14:55:09

2023-05-23 14:53:26

鴻蒙應(yīng)用開發(fā)

2023-02-22 15:11:51

鴻蒙應(yīng)用簽名

2009-08-14 13:40:17

數(shù)字簽名電子簽名安全體系結(jié)構(gòu)

2013-12-25 09:34:26

Android SDKAndroid組件

2021-09-07 08:49:35

Android

2010-07-13 09:02:19

Widget開發(fā)

2013-01-11 13:48:41

Android開發(fā)組件Notificatio

2011-09-09 20:14:58

Android Wid
點贊
收藏

51CTO技術(shù)棧公眾號