zoukankan      html  css  js  c++  java
  • Android APK如何签名

    Android项目以它的包名作为唯一标识,如果在同一设备上安装两个相同的应用,后面安装的应用就会覆盖前面安装的应用。为了避免这种情况的发生,我们需要对作为产品发布的应用进行签名。

    签名其实有两个作用:

    (1) 确定发布者的身份。防止别人用相同包名来替换你已安装的程序。

    (2) 确保应用的完整性。签名会对应用包中的每个文件进行处理,以确保程序包中的文件不会被替换。

    在应用的开发和调试阶段,Eclipse的ADT插件或ANT工具会自动生成调试证书,对Android应用签名。但是,如果要正式发布一个Android应用的话,就必须使用合适的数字证书来给应用程序签名,不能使用ADT插件或ANT工具生成的调试证书来发布。

    这有又两种方式对Android应用签名:

    1.在Eclipse中对Android应用签名

    (1) 右击Android项目,Android Tools-->Export Signed Application Package...

    (2) 如果系统还没有数字证书,可以选择"Create new keystore",按如图格式填写数字证书的存储路径和密码。

    (3) 填写数字证书的详细信息。

    (4)指定生成签名后的APK安装包的存储路径。

    签名证书制作完后,以后就可以直接使用该数字证书签名了。

    (1)选择前面创建的keystore,输入创建keystore时的指定密码。

    (2)选择前面创建时的别名yq的key,并输入创建该key时指定的密码,生成签名后的apk包。

     2.使用命令对APK包签名

    在某些场合下, 我们可能需要对一个“未签名”的APK包进行签名,则可通过“命令”来对Android应用进行手动签名。

    (1) 创建keystore库。JDK的安装目录下的bin子目录下提供了keytool.exe来生成数字证书。

    在命令窗口输入:

    keytool -genkeypair -alias yqkey.keystore -keyalg RSA -validity 100 -keystore yqkey.keystore

    说明:

    -genkeypair:指定生成数字证书。

    -alias:指定生成数字证书的别名。

    -keyalg:指定生成数字证书的算法。使用RSA算法。

    -validity:指定生成的数字证书的有效期。

    -keystore:指定所生成的数字证书的存储路径。

    回车后,接下来将会以交互的方式让我们输入数字证书keystore的密码、作者、公司等详细信息。

    该步骤只要做一次即可,一旦数字证书创建成功后,只要在该证书的有效期内,可以移植重复使用该证书。

    (2) 生成未签名的APK安装包。在Eclipse中右击Android项目,Android Tools-->Export Unsigned Application Package...

    (3) 使用jarsigner命令对未签名的APK安装包进行签名。JDK的安装目录下的bin子目录下提供了jarsigner.exe工具进行签名。在命令窗口输入:

    jarsigner -verbose -keystore crazyit.keystore -signedjar Demo_yqkey.apk Demo.apk yqkey.keystore

    说明:

    -verbose:指定生成详细输出。

    -keystore:指定数字证书的存储路径。

    -signedjar:该选项的三个参数分别分签名的APK包、未签名的APK包、数字证书别名。

    回车后,接下来将会以交互的方式让我们输入数字证书keystore的密码。

    (4) 使用zipalign.exe工具优化APK安装包。zipalign.exe是Android自带的一个档案整理工具,它可用于优化APK安装包,从而提升Android应用与系统之间的交互效率,提升应用程序的运行速度。在命令行窗口输入:

    zipalign -f -v 4 Demo_yqkey.apk

    Demo_yqkey_zip.apk

    说明:

    -f:指定强制覆盖已有文件。

    -v:指定生成详细输出。

    4:指定档案整理所基于的字节数,通常指定为4,也就是基于32位进行整理。

    Demo_yqkey.apk和Demo_yqkey_zip.apk,分别制定整理前的APK和整理后生成的APK。

    生成的Demo_yqkey_zip.apk文件,就是签名完成且经过优化的APK安装包,该安装包可以对外发布了。

  • 相关阅读:
    bootstrap初识
    司徒正美居中方式
    css中的浮动(float)
    fio
    简易接口测试脚本
    字符加密
    Python 汉诺塔
    Python 找零问题
    Python 二分法
    Python 冒泡排序
  • 原文地址:https://www.cnblogs.com/Joanna-Yan/p/5220127.html
Copyright © 2011-2022 走看看