• 01_Android应用开发环境_05_签名android应用程序


    背景:

    Android项目以他的包为唯一标识,如果一台设备上安装了两个包名相同的应用,后安装的应用就会覆盖前面安装的应用。

    目的:

    为了避免覆盖的情况,Android要求对作为成品的应用进行签名。

    作用:

    • 确定发布者身份。
    • 确保应用的完整性。
    在Eclipse的ADT插件或Ant工具会自动生成调试证书对Android应用签名。如果要正式发布一个Android应用,必须使用合适的数字证书来给应用程序签名,不能使用ADT或者Ant工具生成的调试证书来发布。

    在Eclipse中对Android应用签名

    1、右击项目,Android Tools→Export Singned Application Package…

    2、如果系统中没有数字证书,可以在窗口中选择"Create new keystore"单击按钮,填写数字证书的存储路径和密码。

    image

    3、填写完成后Next,Eclipse将会弹出让用户填写数字证书的详细信息。

    image

    4、Next,指定生成签名后的APK安装包的存储路径。

    image

    5、Finish。这样就会在指定目录下生成一个签名后的APK安装包。

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

    使用命令对APK进行签名

    1、创建keysrore库,JDK的安装目录下面的BIN中有一个keytool.exe工具生成数字证书。

    keytool -genkeypair    -alias    -keyalg   -validity   -keystore 

    • -genkeypair:指定生成数字证书
    • -alias:指定生成数字证书别名
    • -kayalg:指定生成数字证书的算吗,使用RSA算法
    • -validity:指定生成的数字证书的有效期
    • -keystore:指定所生成的数字证书的存储路径
    输入命令后回车,接着安装交互式界面输入相关参数。

    2、生成为签名的apk,Android Tools→Export Unsigned Application Package…

    3、使用jarsigner命令对未签名的APK进行签名,JDK的Bin子目录下面

    jarsigner -verbose -keystore -signedjar

    说明:

    • -verbose:指定生成详细输出
    • -keystore:指定数字证书存储路径
    • -singedjar:有三个参数分别是签名后apk包、未签名的APK包、数字证书的别名。
    • 回车,以交互的方式输入数字证书keystore的密码。

    4、使用zipalign.exe工具优化APK安装包。

    zipalign -f -v 4 a.apk a_zip.apk

    • -f:指定强制覆盖已有文件
    • -v:指定生成详细输出
    • 4:指定档案整理所基于的字节数,通常指定为4,也就是基于32为进行整理。
    • a.apk、a_zip.apk:分别指定整理前的APK和整理后生成的APK。
    本博客所有文章均为原创,欢迎交流,欢迎转载;转载请勿篡改内容,并且注明出处,禁止用于商业目的,谢谢!
  • 相关阅读:
    MySQL系列(四)--数据库结构优化、范式化与反范式化
    Java数据结构和算法(二)--队列
    Java数据结构和算法(一)--栈
    MySQL系列(三)--MySQL存储引擎
    Java集合(六)--ArrayList、LinkedList和Vector对比
    Java集合(五)--LinkedList源码解读
    Java集合(四)--基于JDK1.8的ArrayList源码解读
    P1048 采药(洛谷,动态规划递推,01背包原题)
    P1091 合唱队形题解(洛谷,动态规划LIS,单调队列)
    语法摔过的坑(用来给自己看的,粗糙,勿点)
  • 原文地址:https://www.cnblogs.com/wecnlove/p/4466674.html
Copyright © 2020-2023  润新知