- 浏览: 115764 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
lehehe:
恩恩,不过我觉得用接口比较方便,http://www.haos ...
android WIFI定位 -
sunlok:
不错的功能,学习了!
android ListView根据字母排序和定位
在Android系统中,所有安装到 系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,如果一个 permission的protectionLevel为signature,那么就只有那些跟该permission所在的程序拥有同一个数字证书的应 用程序才能取得该权限。Android使用Java的数字证书相关的机制来 给apk加盖数字证书,要理解android的数字证书,需要先了解以下数字证书的概念和java的数字证书机制。Android系统要求每一个安装进系 统的应用程序都是经过数字证书签名的,数字证书的私钥则保存在程序开发者的手中。Android将数字证书用来标识应用程序的作者和在应用程序之间建立信 任关系,不是用来决定最终用户可以安装哪些应用程序。这个数字证书并不需要权威的数字证书签名机构认证,它只是用来让应用程序包自我认证的。
一:同一个开发者的多个程序尽可能使用同一个数字证书,这可以带来以下好处。
(1)有利于程序升级,当新版程序和旧版程序的数字证书相同时,Android系统才会认为这两个程序是同一个程序的不同版本。如果新版程序和旧版程序的数字证书不相同,则Android系统认为他们是不同的程序,并产生冲突,会要求新程序更改包名。
(2)有利于程序的模块化设计和开发。Android系统允许拥有同一个数字签名的程序运行在一个进程中,Android程序会将他们视为同一个程序。所以开发者可以将自己的程序分模块开发,而用户只需要在需要的时候下载适当的模块。
(3) 可以通过权限(permission)的方式在多个程序间共享数据和代码。Android提供了基于数字证书的权限赋予机制,应用程序可以和其他的程序共 享概功能或者数据给那那些与自己拥有相同数字证书的程序。如果某个权限(permission)的protectionLevel是signature, 则这个权限就只能授予那些跟该权限所在的包拥有同一个数字证书的程序。
在签名时,需要考虑数字证书的有效期:
(1)数字证书的有效期要包含程序的预计生命周期,一旦数字证书失效,持有改数字证书的程序将不能正常升级。
(2)如果多个程序使用同一个数字证书,则该数字证书的有效期要包含所有程序的预计生命周期。
(3)Android Market强制要求所有应用程序数字证书的有效期要持续到2033年10月22日以后。
二:Android数字证书包含以下几个要点:
(1)所有的应用程序都必须有数字证书,Android系统不会安装一个没有数字证书的应用程序
(2)Android程序包使用的数字证书可以是自签名的,不需要一个权威的数字证书机构签名认证
(3)如果要正式发布一个Android ,必须使用一个合适的私钥生成的数字证书来给程序签名,而不能使用adt插件或者ant工具生成的调试证书来发布。
(4)数字证书都是有有效期的,Android只是在应用程序安装的时候才会检查证书的有效期。如果程序已经安装在系统中,即使证书过期也不会影响程序的正常功能。
(5)Android使用标准的java工具 Keytool and Jarsigner来生成数字证书,并给应用程序包签名。
(6)使用zipalign优化程序。
Android 系统不会安装运行任何一款未经数字签名的apk程序,无论是在模拟器上还是在实际的物理设备上。Android的开发工具(ADT插件和Ant)都可以协 助开发者给apk程序签名,它们都有两种模式:调试模式(debug mode)和发布模式(release mode)。
在调试模式下,android的开发工具会在每次编译时使用调试用的数字证书给程序签名,开发者无须关心。
当要发布程序时,开发者就需要使用自己的数字证书给apk包签名,可以有两种方法。
(1)在命令行下使用JDK中的和Keytool(用于生成数字证书)和Jarsigner(用于使用数字证书签名)来给apk包签名。
(2)使用ADT Export Wizard进行签名(如果没有数字证书可能需要生成数字证书)。
三;两种签名方式
第一种签名方式,使用Keytool和Jarsigner给程序签名(用于1.5以下版本)
命令:keytool -genkey -v -keystore android.keystore -alias android -keyalg RSA -validity 20000
该 命令中,-keystore ophone.keystore 表示生成的证书,可以加上路径(默认在用户主目录下);-alias ophone 表示证书的别名是ophone;-keyalg RSA 表示采用的RSA算法;-validity 20000表示证书的有效期是20000天。
此时,我们会在互用主目录下看到ophone.keystore,即我们刚刚创建的证书。
第二种签名方式:现在介绍android 1.5及更新版本的apk签名方式
1,打开Eclipse->选择你要签名的项目->右击->android tools->Export signed Application package...
2,跳出窗口
3,project checks 如果核对项目名没有问题的话 点击 Next
然后跳出keystore selection 如果是已经存在keystore的文件就选择然后next 输入keystore的密码进行签名。
如果没有的话选择 create new keystore 然后选择 keystore 保存的位置,设置keystore的密码,点击Next。
4.填写keystore的基本信息,如,别名,密码,有效期,姓名,组织,组织名称,所在城市,所在省份,国家等,点击Next
5.选择被签名后的APK保存位置。点击finish。
6.就可以在你保存的位置中找到相应的被签名后的APK文件。
以上的签名只有在ANDROID1.5以及以后的版本适用。谢谢。
希望对大家有帮助,谢谢。
发表评论
-
SQLite 增删改查的工具类
2014-05-03 00:23 867SQLite 增删改查的工具类 -
将android工程打包生成apk文件
2014-04-21 18:56 6951.)生成keystore 按照下面的命令行 在C:\Pr ... -
android - 自定义标题栏(在标题栏中增加按钮和文本居中)
2012-10-09 10:57 2209现在很多的Android程序都在标题栏上都显示了一些按钮和标题 ... -
改变背景颜色
2012-10-08 10:47 792package com.tony.tabstudy; imp ... -
按钮文字变色
2012-09-26 14:15 854按钮文字变色 我们首先添加一个ColorStateLis ... -
ListView与Button共存问题
2012-09-25 09:34 612ListView 和 其它能触发点击事件的widget无法一起 ... -
ListView与Button共存问题
2012-09-20 17:06 595http://blog.csdn.net/xinqiqi123 ... -
获取手机SIM卡电话号码信息
2012-09-24 09:25 1127<uses-permission android:nam ... -
android判断用户网络类型
2012-09-18 20:42 4499Nettestactivity代码 ... -
android权限大全
2012-09-24 09:25 615访问登记属性 android.permission.AC ... -
android中实现百度地图
2012-09-24 09:26 1454android实现GPS定位 实现GPS定位功能主要是 ... -
android listView点击拓展出一些子item
2012-08-20 22:23 775android有些应用中listView点击item就会在 ... -
数据结构面试之六——二叉树的常见操作2(非递归遍历&二叉排序树)
2012-08-20 22:05 1333六、二叉树的基本操作(非递归遍历)&二叉排序树的操作 ... -
Activity的启动模式(android:launchMode)
2012-08-20 21:58 790在android里,有4种activity ... -
android面试题
2012-08-16 13:10 778打包下载: <ignore_js_op> Andr ... -
二叉树
2012-08-08 22:41 648http://blog.163.com/qhx_405/blo ... -
二叉树遍历
2012-08-08 22:27 690二叉树遍历 博客分类: 算法 数据结构CC++C#F# ... -
Android开发_如何调用系统默认浏览器访问
2013-11-04 11:20 677一、启动android默认浏览器 Intent ... -
图片滚动的几种常用组件的使用
2014-05-04 01:31 691图片滚动的几种常用组件的使用 写在前面:屏幕切换指的是在 ...
相关推荐
Android签名生成工具和签名格式转换工具,方面快捷,很实用
一、Android签名机制--基础概念 1. 消息摘要算法 2. 非对称加密算法(RSA算法) 3. 数字签名 二、Android签名机制--APK签名过程 1. APK签名概述 2. APK签名相关的文件 3. 签名的过程(MANIFEST.MF) 4. 签名的过程...
此文件包含生成android签名文件keystore及验证的源码还包含生成的keystore文件。放到项目中即可使用
mac下android签名工具,为命令行有使用说明
3.用于android.uid.system,需要使用Android源码签名文件签名的情况。 4.签名后的apk,即可安装到Android系统。 5.注意,签名文件需要你自己Android源码系统的,我这里不提供。build/target/product/security 就是这...
生成 Android 签名文件的方法。 ossez.com
该APP提供了获取手机上已安装的所有应用的签名信息,并支持直接复制。
Android签名生成工具、签名格式转换,用于生成各种格式的MD5和SHA1签名,
Android签名经典教程 Android签名经典教程 Android签名经典教程
android 签名工具.
为各种使用第三方分享,推送,地图,对象存储等等需要填入各种格式的MD5,SHA签名而制作的工具,Android签名生成工具微信官方也有,不过只能生成MD5签名,格式也比较单一,该工具可以同时生成各种格式的MD5和SHA1...
android签名工具包含windows/linux/mac(支持Linux&MAC;下批量签名)
Android签名证书文件的解析和签名校验的加强
android 签名 通过脚本运行项目进行项目签名 通过脚本运行项目进行项目签名 通过脚本运行项目进行项目签名 通过脚本运行项目进行项目签名 通过脚本运行项目进行项目签名
安卓签名获取的一款工具,使用方法请见CSDN博客http://blog.csdn.net/weimeig/article/details/78818085
各种格式的MD5,SHA签名而制作的工具,生成各种格式的MD5和SHA1签名
这是一个android签名版,用androidStudio写的demo,可以直接运行看效果,签字后保存到本地,获取到路径。
Android签名用keytool和jarsigner制作apk文件
3:如果出现 Unsupported major.minor version 52.0 则表示该文件的版本与本地的jdk版本不匹配 经测试 jdk1.7.0使用1.05版本的AndroidKeystore jdk1.8.0使用1.07版本的AndroidKeystore (资源里面两个版本的都有) ...
windows平台的android签名工具,支持中英双语