◆ 可以通过权限(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 包签名,可以