Android签名(命令行)与zipalign优化
2014-12-11 16:13
288 查看
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 是优化前的文件
相关文章推荐
- android去权限反编译,签名,zipalign优化
- Android手机端使用Zipalign优化apk应用程序
- Android使用ant对项目进行编译签名优化打包
- 命令行和Eclipse 2种方式实现对APK的签名与APK文件优化
- (转)Zipalign——Android apk优化工具
- (转)Android使用ant对项目进行编译签名优化打包
- Android自动打包、签名、优化、上传ANT脚本
- Android 发布数字签名包并进行zipalign方式优化
- 修改和美化安卓系统的第一步~从认识APK开始(APK编译、签名、zipalign优化及APKTOOL的使用)
- 修改和美化安卓系统的第一步~从认识APK开始(APK编译、签名、zipalign优化及APKTOOL的使用)
- Android的Zipalign优化
- android命令行打包、签名+自动打包器
- 命令行编译android程序,欢迎探讨命令行如何使用proguard混淆优化代码
- Android使用ant对项目进行编译签名优化打包
- APK编译、签名、zipalign优化及APKTOOL的使用
- Zipalign——Android apk优化工具
- Android使用ant对项目进行编译签名优化打包
- Android自动打包、签名、优化、上传ANT脚本
- 命令行和Eclipse 2种方式实现对APK的签名与APK文件优化
- APK编译、签名、zipalign优化及APKTOOL的使用