安装包的性能优化

安装包的性能优化方法

1.图片压缩
  • 图片:
    apk里面的资源图片 压缩图片
    svg图片:一些图片的描述,牺牲CPU的计算能力的,节省空间。
    使用的原则:简单的图标。
  • webp:
    谷歌现在非常提倡的使用。保存图片比较小。
    VP8派生而来的。webp的无损压缩比PNG文件小45%左右,即使PNG进行过其他的压缩工具压缩后,依然可以减小到PNG的28%。

    Facebook在用、腾讯、淘宝。
    缺点:加载相比于PNG要慢很多。 但是配置比较高。
    工具:http://isparta.github.io/

2.资源动态加载

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

3.Lint工具 建议优化的点
  • 1 检测没有用的布局 删除
  • 2 未使用到的资源 比如 图片 ---删除
  • 3 建议String.xml有一些没有用到的字符。
    主要对资源文件的检查
4.极限压缩

7zZip工具的使用。下载地址

5.Proguard 混淆
  • 1 可以删除注释和不用的代码。
  • 2 将java文件名改成短名a.java,b.java
  • 3 方法名等 CommonUtil.getDisplayMetrix();--》a.a()
6.资源文件再压缩

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

安装包的性能优化_第1张图片
Paste_Image.png

再做“混淆”:要实现将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

 .line 25
    const v1, 0x7f030019
    invoke-virtual {p0, v1}, Lcom/ricky/materialdesign/toolbar/MainActivity;-
>setContentView(I)V
 
.field public static final activity_main:I = 0x7f030019

你可能感兴趣的:(安装包的性能优化)