Apk 瘦身方案


  • 代码混淆

proguard混淆
压缩,Shrink,去除代码无用的类,字段,方法。
优化,Optimize,优化字节码,移除无用指令。
混淆,Obfuscate,类,方法,字段重命名abc。
在gradle设置minifyEnabled开启混淆,删除无用代码,shrinkResources,删除无用资源,proguardFiles,混淆的配置文件,android默认文件和自定义文件。
混淆可以减小apk大小。

  • 第三方开源包的使用,避免重复。

选择何时的第三方库,避免功能重复的库使用,如使用多个图片加载库会导致功能重复,选择最适合业务的,如果部分不满足,在一个库的基础上扩展,而不是都引入。也可以裁剪不用的功能,将有用的代码加到项目中来,避免引用整一个第三方库。

  • 图片Webp格式

Google开发的新图片格式,压缩效率高于png和jpeg,占用资源较小,Andoid4.0支持有损WebP图像,若无损透明需要minSdkVersion在18及以上支持,AndroidStudio提供功能可以直接转换。

  • 第三方tinypng进行png图片的压缩。
  • 非透明大图jpg优化

使用jpg代替png格式,没有透明度信息,jpg有损压缩,占内存小。png无损,占用空间大。一般会小一半,在闪屏页,全图背景时使用。

  • 图片资源文件重复

在适配时,往往准备几套图片资源,严重影响Apk大小,尽量使用一套图片,一套布局,多个dimens文件,针对分辨率差异过大的一些图片特殊处理,去除一些内置图片,尽量从服务端取。

  • Android Lint删除冗余资源

Lint工具扫描未使用的资源,通过Run Inspection by Name,扫描整个工程的Unused resources,扫描后直接删除无用资源,不包括asset目录。

  • 只支持配置arm-v7架构的so库

该架构能支持大部分移动手机设备。

  • 插件化

将一些业务插件apk放在服务器,使用时下载或启动预加载,可以减小安装包的大小。


任重而道远

你可能感兴趣的:(Apk 瘦身方案)