Java,Jsp,模式及框架
Web技术
Web服务器
浏览器相关
SQL语言
数据库
开发环境
软件开发及管理
网站SEO
短信及邮件服务
网页设计
电脑、硬件及网络
协同管理平台问题
电子商务
前沿技术及趋势
  当前位置:首页 - 知识积累 - 前沿技术及趋势
android应用签名
时间:2012年12月12日 

1、所有的Android应用都必须有数字签名,没有不存在数字签名的应用,包括模拟器上运行的。Android系统不会安装没有数字证书的应用。

签名的数字证书不需要权威机构来认证,是开发者自己产生的数字证书,即所谓的自签名。

模拟器开发环境,开发时通过ADB接口上传的程序会先自动被签有Debug权限,然后才传递到模拟器。Eclipse菜单的Window -> Preferences -> Android –> Build 下显示的是我们默认的调试用的签名数字证书,不同机器上面测试签名是不一样的,这就是为什么两台机器默认情况下编译同样的程序不能够安装或覆盖老的版本的原因,最简单方法就是要将老版本机器上的测试签名复制到其他机器上面,因为测试签名第一次生成后不人为的修改它是不会变的!

 2、正式发布一个Android应用时,必须使用一个合适的私钥生成的数字证书来给程序签名,不能使用ADT插件或者ANT工具生成的调试证书来发布;数字证书都是有有效期的,Android只是在应用程序安装的时候才会检查证书的有效期。如果程序已经安装在系统中,即使证书过期也不会影响程序的正常功能;签名后需使用zipalign优化程序;Android将数字证书用来标识应用程序的作者和在应用程序之间建立信任关系,而不是用来决定最终用户可以安装哪些应用程序。

3、两种签名的方法:

方法一、使用Eclipse工具:打开Eclipse->选择你要签名的项目->右击->android tools->Export signed Application package,在这里可以导入已有的签名文件或新建。

方法二、使用命令行方式签名:这是我测试用的E:\Projects\android\ks>keytool -genkey -keystore ks.keystore -keyalg RSA -validity 10000 -alias ks.keystore

命令参数说明:

-genkey 产生证书文件
-keystore 指定密钥库的.keystore文件中

-keyalg 指定密钥的算法

-validity 为证书有效天数,这里我们写的是10000天。
-alias 产生别名