数字签名
就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。数字签名是个加密的过程,数字签名验证是个解密的过程。
Android数字证书要点
Ø 所有的应用程序都必须有数字证书,Android系统不会安装一个没有数字证书的应用程序。
Ø Android程序包使用的数字证书可以是自签名的,不需要一个权威的数字证书机构签名认证 。
Ø 如果要正式发布一个Android ,必须使用一个合适的私钥生成的数字证书来给程序签名,而不能使用adt插件或者ant工具生成的调试证书来发布。
Ø 数字证书都是有有效期的,Android只是在应用程序安装的时候才会检查证书的有效期。如果程序已经安装在系统中,即使证书过期也不会影响程序的正常功能。
Ø Android使用标准的java工具 Keytool and Jarsigner 来生成数字证书,并给应用程序包签名。
Ø 使用zipalign优化程序。
Android系统不会安装运行任何一款未经数字签名的apk程序,无论是在模拟器上还是在实际的物理设备上。Android的开发工具(ADT插件和Ant(Ant是一种基于Java的build工具))都可以协助开发者给apk程序签名,它们都有两种模式:
Ø 调试模式(debug mode)
在调试模式下,android的开发工具会在每次编译时使用调试用的数字证书给程序签名,开发者无须关心。
Ø 发布模式(release mode)
当要发布程序时,开发者就需要使用自己的数字证书给apk包签名,可以有两种方法。
(1)在命令行下使用JDK中的和Keytool(用于生成数字证书)和Jarsigner(用于使用数字证书签名)来给apk包签名。
(2)使用ADT Export Wizard进行签名(如果没有数字证书可能需要生成数字证书)。