performance-optimization
  • Introduction
  • JVM基础分析
  • AndroidGC研究一
  • AndroidGC研究二
  • 内存泄露从入门到精通三部曲之基础知识篇
  • 内存泄露从入门到精通三部曲之排查方法篇
  • 内存泄露从入门到精通三部曲之常见原因与用户实践
  • Android渲染机制以及优化(官方版)
  • LeakCanary原理分析
  • Android性能优化之运算与工具
  • 渲染绘制性能优化实践
  • Android性能优化之电量
  • Wakelock、AlarmManager、JobScheduler实例分析
  • 移动端 推送 心跳包
  • 多线程优化
  • 数据传输效率优化
  • 应用启动优化
  • Android进程保活
  • HotFix
  • 安装包性能优化
Powered by GitBook
On this page
  • 1.图片压缩
  • 2.资源动态加载:
  • 3.Lint工具 建议优化的点
  • 4.极限压缩(重要)
  • 5.Proguard 混淆。

Was this helpful?

安装包性能优化

PreviousHotFix

Last updated 6 years ago

Was this helpful?

1.图片压缩

图片:

  • apk里面的资源图片 压缩图片

  • svg图片:一些图片的描述,牺牲CPU的计算能力的,节省空间。使用的原则:简单的图标。

  • webp:谷歌现在非常提倡的使用。保存图片比较小。

  • VP8派生而来的。webp的无损压缩比PNG文件小45%左右,即使PNG进过其他的压缩工具压缩后,任然可以减小到PNG的28%。Facebook在用、腾讯、淘宝。

    缺点:加载相比于PNG要慢很多。 但是配置比较高。

    工具:

2.资源动态加载:

比如:emoji表情、换肤 动态下载的资源。一些模块的插件化动态添加。

3.Lint工具 建议优化的点

1)检测没有用的布局 删除 2)未使用到的资源 比如 图片 ---删除 3)建议String.xml有一些没有用到的字符。

4.极限压缩(重要)

7zZip工具的使用。

5.Proguard 混淆。

让apk变小。为什么? 1)可以删除注释和不用的代码。 2)将java文件名改成短名a.java,b.java 3)方法名等 CommonUtil.getDisplayMetrix();--》a.a()

=================在常规的安装包的优化之外继续压缩---资源文件再压缩=======================

系统编译完成apk文件以后: 映射关系:res/drawable/ic_launcher.png ----- > 0x7f020000

再做“混淆”:要实现将res/drawable/ic_launcher.png图片改成a.png drawable文件的名字 String文件的名字 layout的名字 比如:R.string.description--->R.string.a res/drawable/ic_launcher.png图片改成a.png

还可以更加夸张 res/drawable--->r/d res/value-->r/v res/drawable/ic_launcher.png图片改成r/d/a.png

读取resources.arsc二进制文件,然后修改某一段一段的字节。 有一段叫做:res/drawable/ic_launcher.png 在自己数组当中的第800位-810位 将这一段第800位-810位替换成改成r/d/a.png 的字节码。

args参数: Lsn10SearchView.apk -config config.xml -7zip 7za.exe -out xxx/hehe -mapping xxx/yyy.txt

1.12M 1.03M 920K

http://isparta.github.io/