APK瘦身方案

一、图片压缩

1,使用tinypng对图片进行有损压缩

详细资料见:https://tinypng.com/

2,png换成jpg

不需要透明层的背景图片、宣传图片等大图使用jpg格式

3,图片使用webp格式

android 4.0开始原生支持webp,如果app不考虑支持4.0以下版本,可以考虑使用webp格式图片。
webp使用方法:

mac使用homebrew安装webp转换工具:brew install webp
jpgpngtiffwebpcwebp [options] -q quality input.png -o output.webp
webp转换成普通格式:dwebp in_file [options] [-o out_file]

详细资料见:
https://developers.google.com/speed/webp/docs/precompiled

4,大图尺寸进行适当压缩

对于全屏背景等大尺寸图片,在提供素材时,可以适当地等比压缩图片尺寸(比如720x1280压缩成640x1138),使用时放大即可,通过牺牲一定的清晰度来减少图片大小。
具体压缩比例根据实际需要确定。

5,避免drawable全适配

在mdpi,hdpi,xhdpi等尺寸中选用一个作为素材设计的基准尺寸,考虑到实际的设备占比情况,建议优先采用xhdpi。
当某些图片素材出现适配问题时再添加其他尺寸的图片,减少图片的重复

二、资源使用策略

6,非核心图片在线化

表情包等非核心图片素材,可以打成zip包放在服务器上,客户端下载后使用

7,资源清理

通过Lint工具扫描等方法,及时清理掉无效的资源文件
可以通过Shape等方式实现代码绘制的图片,尽量使用代码绘制
能通过旋转,镜像等方式实现的效果,只提供一张图片,避免图片资源重复

8,资源混淆

使用微信开源的资源混淆工具AndResGuard进行资源混淆和7zip极限压缩,详细资料见:
http://blog.youkuaiyun.com/zhanglong_daniel/article/details/49103887

三、代码压缩

9,代码清理

尽量减少重复代码,提升代码复用性,及时清理无效代码
谨慎添加第三方library,及时删除废弃的library

10,so只支持armabi

考虑到x86架构android设备的占比,在使用so时可以暂不支持x86,同时armabi-v7是兼容armabi的,如果没有特殊需要,只支持armabi的so文件即可

11,第三方sdk裁减

在引入第三方sdk时,通常只用到其中的部分类库,可以考虑裁减掉没有用到的类库
sdk裁减方法:

解压jar包到当前目录,得到全部.class文件:jar xvf [jar-file]<br>
删除不需要的.class文件,注意代码的依赖关系,防止删除不当导致sdk运行出错,删除.class文件时,内部类要同步删除<br>
将剩余的.class文件重新生成jar包:jar cvf [new-jar-file.jar] [class-dir]

12,代码深度混淆

严格审核代码混淆时保留的代码,最大限度提升混淆的代码占比
注释掉代码混淆时保留的符号表信息:

 -keepattributes SourceFile,LineNumberTable
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值