美文网首页
APK体积减少攻略

APK体积减少攻略

作者: jackzhoud | 来源:发表于2017-10-09 16:56 被阅读0次

APK体积减少攻略

整体7zip压缩

  1. 将APK包解压到文件夹
  2. 全选所有文件,右键“添加到压缩包”
    3.“压缩格式”必须“zip”
    4.“压缩等级”选择“极限压缩”
    5.“压缩方法”必须“Deflate”(试了Deflate64,BZip2,LZMA,PPMd都无法正常安装)
    6.“单词大小”选择“256”
  3. 将后缀改为APK即可

apksigner签名

原理:
jarsigner是对apk文件里面的每一个路径都会签名,而apksigner只对整体文件签名,并将结果保存到METF中

制作jks签名文件

cmd 命令 C:\Program Files\Java\jre1.8.0_111\bin>keytool -genkeypair -alias shy_debug.jks
-keyalg RSA -validity 7 -keystore shy_debug.jks

keytool: 是一个Java数据证书的管理工具,keytool 将密钥(key)和证书(certificates)
存在一个keystore的文件中,或者是jks的文件

keystore:其中包含密钥和公钥,指定导出的证书位置和名称

genkey: 在用户目录中创建一个默认.keystore文件

alias:指定别名名称,不区分大小写

keyalg: 指定密钥算法,例如:RSA、DSA等。默认采用DSA

validity:指定证书有效期多少天

keysize:指定密钥长度

storepass:指定密钥库的密码(获取keystroe信息所需的密码)

keypass:指定别名条目的密码(私钥的密码)

dname:证书拥有者的信息。可以不用在命令中注明,会提示你输入

list:显示密钥库中的证书信息

v:显示密钥库中的证书详细信息

export:将别名指定的证书导出到文件

file:指定导出到文件的文件名称

deltete:删除密钥库中的某条目

printcert:查看导出的信息
例子

keytool -genkey -alias fanle -keypass 123456 -keyalg RSA -keysize 1024 -validity 3650 -keystore D:\fanle.jks -storepass 123456 -dname "CN=fanle, OU=xx, O=xx, L=xx, ST=xx, C=xx"

签名

java -jar /Users/sever1/shell/third/apksigner.jar sign  --ks /Users/sever1/shell/third/boxing.jks  --ks-key-alias jackzhous  --ks-pass pass:wsdyi100  --key-pass pass:wsdyi100  --out out.apk input.apk

刚刚试了一把,发现apk少了5M

删除部分R文件

随着项目越来越大,资源文件R会越来越大,大家都知道Android读取资源文件时java里面都是通过R.x.x读取的,再到R.java里面得到资源对应的ID,再回通过ID去resource.asrc里面找到我们的资源显示即可;看看这个读取过程,其实我们可
以省去java的R.x.x读取方式,直接在Java里面用ID读取,这里我们可以用Python自己写个脚本完成;现在Android studio新版本应该是做了脚本这一步,我们所需要做的就是拿到打好的apk,然后完成以下几步

  • apktool解包
  • 解开包后,删除掉smali目录下R文件除R.smali R$style.smali R$stleable.smali之外的其他几个R文件
  • apktool和包签名即可
delete_r.png

最后,能减小apk不少的体积

其它资源策略

1.首先考虑能否不用图片,比如使用shape代码实现。

2.其次如果用图片的话,能否优先使用.9图来简化图片。

3.采用svg矢量图和VectorDrawable类来替换传统的图片。

4.如果图片只是旋转角度或者颜色不同,可以用代码实现变换。

相关文章

  • APK体积减少攻略

    APK体积减少攻略 整体7zip压缩 将APK包解压到文件夹 全选所有文件,右键“添加到压缩包”3.“压缩格式”必...

  • 减少apk体积

    [TOC] 首先说下apk体积减小的必要性 减小apk的安装时间,增加用户留存,减少CDN流量费用 再这之前,先来...

  • 如何减少apk体积

    lint工具优化 使用Lint工具优化,减少项目中没有引用的图片资源和优化xml布局android studio执...

  • Android 减少apk 体积

    去除无用资源文件图片以及一些第三方引用库,可通过下面来搜索未用到的资源文件, 控制台中会列出未使用过的资源文件,可...

  • 利用gradle减少apk打包体积

    tips:gradle版本至少需要3.2以上gradle3.4.0以下不是默认开启的shrinkResources...

  • 不废话简述android动态加载so库

    优点 1.灵活可以动态更新so库。2.减少apk文件体积,毕竟动态下载不用打包进apk。3.可以解决so库加载冲突...

  • 【性能优化】2022最新一线互联网公司Android性能优化项目

    Android性能优化方案的量化指标通常有以下五部分: 减少apk包体积大小; 减少启动&页面响应时间; 降低内存...

  • Android开发工具

    https://tinypng.com/ 压缩图片的网站 减少apk体积 IG0ZQ9Gt9myX6mJZHpZf...

  • 使用AndResGuard压缩资源,减少APK体积

    什么是AndResGuard AndResGuard是一个帮助你缩小APK大小的工具,他的原理类似Java Pro...

  • Android App包体积优化

    目录: 一、为什么我们需要做 APK 的体积优化? 二、APK 组成 三、APK分析 四、代码体积优化 五、资源体...

网友评论

      本文标题:APK体积减少攻略

      本文链接:https://www.haomeiwen.com/subject/voepyxtx.html