Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1542843
  • 博文数量: 596
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 173
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-06 15:50
个人简介

在线笔记

文章分类

全部博文(596)

文章存档

2016年(1)

2015年(104)

2014年(228)

2013年(226)

2012年(26)

2011年(11)

分类: Android平台

2014-10-25 21:39:04

http://blog.163.com/squall_smile/blog/static/6034984020113169415502/
在使用android模拟器时,apk文件自动上传并安装执行。但是编译为apk文件自己上传到手机上却运行不了,这是因为apk文件没有签名的缘故。在Eclipse自动在模拟器中上传程序时,ADT已为其加上了某个调试用的签名,所以不会有问题。

签名到底有何用处呢?简要说两点:1 签名可使你获得某种特殊权限。2 保护你程序的安全。若某人“碰巧”使用了与你相同的包名,那么由于签名不同,它将无法覆盖你的程序。而你使用了相同签名的程序则可任意升级。

可用android sdk里的keytools来创建和执行签名。当然用Eclipse更方便。

选择Export选项,选择新建签名,选择路径并填写一些信息,然后会生成你命名的签名文件,选择你要签名导出的apk文件名称,将会将其签名保存。

此时将此apk文件传至手机上,会正常安装成功。

下次可选择已经创建好的签名,再次为导出的apk文件签名。注意记住密码。

android sdk提供的命令行方式创建签名及签名方法如下:

 方法一: 命令行下对apk签名(原理)
  创建key,需要用到keytool.exe (位于jdk1.6.0_24\jre\bin目录下),使用产生的key对apk签名用到的是jarsigner.exe (位于jdk1.6.0_24\bin目录下),把上两个软件所在的目录添加到环境变量path后,打开cmd输入

D:\>keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore 

/*说明:-genkey 产生密钥 

       -alias demo.keystore 别名 demo.keystore 

       -keyalg RSA 使用RSA算法对签名加密 

       -validity 40000 有效期限4000天 

       -keystore demo.keystore */

D:\>jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore 

/*说明:-verbose 输出签名的详细信息 

       -keystore  demo.keystore 密钥库位置 

       -signedjar demor_signed.apk demo.apk demo.keystore 正式签名,三个参数中依次为签名后产生的文件demo_signed,要签名的文件demo.apk和密钥库demo.keystore.*/ 
  注意事项:android工程的bin目录下的demo.apk默认是已经使用debug用户签名的,所以不能使用上述步骤对此文件再次签名。正确步骤应该是:在工程点击右键->Anroid Tools-Export Unsigned Application Package导出的apk采用上述步骤签名

阅读(907) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~