恭喜你成为UI中国推荐设计师 (详情)
//百度统计 20220402 uicn

您的意见是我们 UI 中国进步的动力!
点击立即反馈按钮,发表您的意见!
立即反馈
QQ群反馈
您也可以加入UI中国官方反馈群进行反馈!
群号:302892100
备注:反馈问题后@管理员能让我们及时了解您的意见

提交需求

赛事与广告咨询合作,请填写需求表单,我们会在第一时间与您联系!

0/20
0/200

设计大赛

  • 设计大赛
  • 发布广告
  • 发布招聘
  • 其它需求

提交完成
感谢您对UI中国的支持和信赖!
详谈Android apk打包:关于APK数字签名详解介绍
0.0°
2015-09-07 好文转载 行业资讯 原作者: 原作者 举报 1904 4 4 1

详谈Android apk打包:关于APK数字签名详解介绍

       本文主要为大家详细讲解APK数字签名方面的内容,并介绍APK调试模式和发布模式下数字签名的方式。

本文转自:http://www.jizhuomi.com/android/environment/293.html

       1、什么是数字签名

       数字签名就是为你的程序打上一种标记,来作为你自己的标识,当别人看到签名的时候会知道它是与你相关的。

       2、为什么要数字签名

       最简单直接的回答:系统要求的。

       Android系统要求每一个Android应用程序必须要经过数字签名才能够安装到系统中,也就是说如果一个Android应用程序没有经过数字签名,是没有办法安装到系统中的!

       Android通过数字签名来标识应用程序的作者和在应用程序之间建立信任关系,不是用来决定最终用户可以安装哪些应用程序。

       这个数字签名由应用程序的作者完成,并不需要权威的数字证书签名机构认证,它只是用来让应用程序包自我认证的。

       3、数字证书的机制

       Android使用Java的数字证书相关的机制来给apk加盖数字证书,要理解android的数字证书,需要先了解以下数字证书的概念和java的数字证书机制。

       4、程序使用相同的数字证书的好处

       1)有利于程序升级

       当新版程序和旧版程序的数字证书相同时,Android系统才会认为这两个程序是同一个程序的不同版本。如果新版程序和旧版程序的数字证书不相同,则Android系统认为他们是不同的程序,并产生冲突,会要求新程序更改包名。

       2)有利于程序的模块化设计和开发。

       Android系统允许拥有同一个数字签名的程序运行在一个进程中,Android程序会将他们视为同一个程序。所以开发者可以将自己的程序分模块开发,而用户只需要在需要的时候下载适当的模块。

       3)可以通过权限(permission)的方式在多个程序间共享数据和代码。

       Android 提供了基于数字证书的权限赋予机制,应用程序可以和其他的程序共享概功能或者数据给那那些与自己拥有相同数字证书的程序。如果某个权限 (permission)的protectionLevel是signature,则这个权限就只能授予那些跟该权限所在的包拥有同一个数字证书的程序。

       5、在签名时,需要考虑数字证书的有效期

       1)数字证书的有效期要包含程序的预计生命周期,一旦数字证书失效,持有改数字证书的程序将不能正常升级。

       2)如果多个程序使用同一个数字证书,则该数字证书的有效期要包含所有程序的预计生命周期。

       3)Android Market强制要求所有应用程序数字证书的有效期要持续到2033年10月22日以后。

       6、数字证书的要点

       Android数字证书包含以下几个要点:

       1)所有的应用程序都必须有数字证书,Android系统不会安装一个没有数字证书的应用程序。

       2)Android程序包使用的数字证书可以是自签名的,不需要一个权威的数字证书机构签名认证。

       3)如果要正式发布一个Android ,必须使用一个合适的私钥生成的数字证书来给程序签名,而不能使用adt插件或者ant工具生成的调试证书来发布。

       4)数字证书都是有有效期的,Android只是在应用程序安装的时候才会检查证书的有效期。如果程序已经安装在系统中,即使证书过期也不会影响程序的正常功能。

       5)Android使用标准的java工具 Keytool and Jarsigner 来生成数字证书,并给应用程序包签名。

       6)使用zipalign优化程序

       7、数字签名的两种模式

       我们都知道Android系统不会安装运行任何一款未经数字签名的apk程序,无论是在模拟器上还是在实际的物理设备上。所以我们会有一个疑问,为何在日 常开发过程中我没有进行任何签名的操作,程序都会在模拟器和真机上运行?下面我们来讲讲APK程序的两种模式: 调试模式(debug mode)和发布模式(release mode)

       1、调试模式(debug mode)  : 在调试模式下,ADT会自动的使用debug密钥为应用程序签名,因此我们可以直接运行程序。

       debug密钥:一个名为debug.keystore的文件。

       存放位置:C:UsersXiaopeng.androiddebug.keystore        Xiaopeng对应替换为自己操作系统的用户名

       两个风险:

       debug签名的应用程序有这样两个风险:

       1)debug签名的应用程序不能在Android Market上架销售,它会强制你使用自己的签名;

       2)debug.keystore在不同的机器上所生成的可能都不一样,就意味着如果你换了机器进行apk版本升级,那么将会出现上面那种程序不能覆盖安装的问题。

       不要小视这个问题,如果你开发的程序只有你自己使用,当然无所谓,卸载再安装就可以了。但要是你的软件有很多使用客户,这就是大问题了,就相当于软件不具备升级功能!所以一定要有自己的数字证书来签名。

       2、发布模式(release mode) : 当要发布程序时,开发者就需要使用自己的数字证书给apk包签名。

       使用自己的数字证书给APK签名的两种方法:

       1)通过DOS命令来对APK签名。

       2)使用ADT Export Wizard进行签名。

美文推荐:

更新:2015-09-07

收藏

4人已收藏

专业设计师

我所分享的正是你所需要的。。

  • 27

    作品

  • 32

    粉丝

  • 1

    关注

  • 包体可压缩80%!爱加密手游压缩和云更新简直颠覆!
  • 分享:Android Studio 导入第三方jar包
  • 详解:Android嵌套滑动机制 (NestedScrolling)
  • 解读:在命令情况下使用Android NDK交叉编译工具
相关标签
资讯

    猜你喜欢

      2015-09-07 好文转载 行业资讯 原作者: 原作者 举报 1904 4 4 1

      详谈Android apk打包:关于APK数字签名详解介绍

      0.0°

      你确定要举报详谈Android apk打包:关于APK数字签名详解介绍

      如果查出恶意举报,十天内禁止提交任何举报申请。

      0/200

      上传证据: 超过10M的附件请使用网盘地址

      点击上传附件

      对谁可见:

      全部设计师
      • 全部设计师
      • 推荐设计师和认证设计师

      您确认要推荐?

      该作品发布时间:2015年09月07日

      评分

      完整度

      启发性

      勤奋性

      排版布局

      推荐心得

      建议20-200字以内

      0/200

      4
      4
      1

      账号或密码错误,请重新输入

      账号或密码错误,请重新输入

      登录

      手机号

      发送验证码 120s 验证码错误

      登录
      第三方账号登录