background image

 

◆ 可以通过权限(permission)的方式在多个程序间共享数据和代码。Android 提供了基于

数字证书的权限赋予机制,应用程序可以和其他的程序共享该功能或者数据给那那些与自
己拥有相同数字证书的程序。如果某个权限

(permission)的保护级别是 signature,则这个权限

就只能授予那些跟该权限所在的包拥有同一个数字证书的程序。

2. 签名的相关问题

在签名时,需要考虑数字证书的有效期:

◆数字证书的有效期要包含程序的预计生命周期,一旦数字证书失效,持有该数字证

书的程序将不能正常升级。

◆如果多个程序使用同一个数字证书,则该数字证书的有效期要包含所有程序的预计

生命周期。

◆Android Market 强制要求所有应用程序数字证书的有效期要持续到 2033 年 10 月 22

日以后。

另外,

Android 数字证书包含以下几个要点:

◆所有的应用程序都必须有数字证书,Android 系统不会安装一个没有数字证书的应用

程序。

◆Android 程序包使用的数字证书可以是自签名的,不需要一个权威的数字证书机构签

名认证。

◆如果要正式发布一个 Android,必须使用一个合适的私钥生成的数字证书来给程序签

名,而不能使用

adt 插件 或者 ant 工具 生成的调试证书来发布。

 

◆ 数字证书都是有有效期的,Android 只是在应用程序安装的时候才会检查证书的有效

期。如果程序已经安装在系统中,即使证书过期也不会影响程序的正常功能。

◆Android 使用标准的 java 工具 Keytool and Jarsigner 来生成数字证书,并给应用程序

包签名

3. 两种模式

构建

 Android 应用程序时可以采用调试模式和发布模式:

(1)使用 Android 构建工具(命令行和 Eclipse ADT)构建的应用程序是用一个调试私有密

钥自动签名的

;这些应用程序被称为调试模式应用程序。调试模式应用程序用于测试,不能

够发布。注意,未签名的或者使用调试私有密钥签名的应用程序不能够通过

 Android Market 

发布。在调试模式下,

Android 的开发工具会在每次编译时使用调试用的数字证书给程序签

名,开发者无须关心。

(2)准备发布自己的应用程序时,必须构建一个发布模式的版本,这意味着用私有密钥

签署应用程序。当要发布程序时,开发者就需要使用自己的数字证书给

APK 包签名,可以