Android签名(命令行)与zipalign优化

0、准备

环境变量要将sdk下的tools路径放到path中。用到tools下的工具
APK文件要通过一下方式导出,bin目录下的APK文件已经被debug签名过


部分人可能没有zipalign.exe,从网上下载一个即可

下载地址http://download.csdn.net/detail/qq_17513815/8248619

1、使用keytools生成专用密钥(Pirvate Key)文件


<span style="font-size:14px;">keytool -genkey -keystore HelloKey.keystore -alias HelloKey -keyalg RSA -validity 10000</span>

 

参数说明

-keystore 就是要生成的keystore的名称 这里是Hello.keystore

-alias 后面跟的是别名 HelloKey
-keyalg 是加密方式这里是 RSA
-validity 是有效期 这里是 10000 天

在当前文件夹下面就生成了一个HelloKey.keystore密钥文件


2、使用jarsigner根据专用密钥对apk文件签名



<span style="font-size:14px;">Jarsigner -verbose -keystore HelloKey.keystore -signedjar HelloApk0.apk HelloApk.apk HelloKey</span>

-keystore HelloKey.keystore 指定密钥文件

HelloApk0.apk 是签名后的文件 【注意】

HelloApk.apk 是签名前的文件

最后的密钥别名不可省略


3、使用zipalign(压缩对其)优化APK

Android中,每个应用程序中储存的数据文件都会被多个进程访问:安装程序会读取应用程序的manifest文件来处理与之相关的权限问题;Home应用程序会读取资源文件来获取应用程序的名和图标;系统服务会因为很多种原因读取资源(例如,显示应用程序的Notification);此外,就是应用程序自身用到资源文件。

Android中,当资源文件通过内存映射对齐到4字节边界时,访问资源文件的代码才是有效率的。但是,如果资源本身没有进行对齐处理(未使用zipalign工具),它就必须回到老路上,显式地读取它们——这个过程将会比较缓慢且会花费额外的内存。

从未对齐的apk中读取资源比较慢且花费较多内存。最好的情况是,Home程序和未对齐的程序启动得比对齐后的慢(这也是唯一可见的效果)。最坏的情况是,安装一些未对齐资源的应用程序会增加内存压力,并因此造成系统反复地启动和杀死进程。最终,用户放弃使用如此慢又耗电的设备。


方式有很多,推荐手动(成功后APK文件会比原来大一点)

 

手动对齐:zipalign -v 4 HelloApk0.apk HelloApk1.apk

 

对齐验证:zipalign -c -v 4 HelloApk0.apk


HelloApk0.apk 是优化前的文件 

HelloApk1.apk 是优化前的文件










  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值