Android 性能优化 APK压缩的一些方法

1,使用SVG 矢量图代替PNG套图

在res 目录下新建一个Vector Asset ,这里选择Clip Art,虚拟机自带的矢量图。
看下图,除了可以创建虚拟机自带的图片外,还可以导入本地的SVG 和 PSD文件,
PSD是PS的源文件,但不支持透明度和渐变。

在这里插入图片描述点击Next,创建的图片会出现在drawble里面,打开这个文件发现, 它是由Vector节点包含path节点描述的一个图片。
在这里插入图片描述

将SVG 批量转换为Android 的vector 的工具
https://github.com/MegatronKing/SVG-Android/blob/master/svg-vector-cli/bat/svg2vector-cli-1.0.1.jar

2,Tinti着色器
着色器的作用有两个。1,解决同一个图有多套图的问题。2,解决了同一个同有不同颜色的需求。
看下面活生生把一个小灰人给绿了。
在这里插入图片描述

3,String.xml资源配置制定国家语言
defaultConfig {
//只保留指定和默认的资源
resConfigs(“zh-rCN”)
}

4,动态库打包配置
//将so库打包到APK内
sourceSets{
main(){
jniLibs.srcDirs=[‘libs’]
}
}
// 配置so库,cpu架构(真机:arm ,模拟器 :x86)
//将指定的so库打包到APK,对于真机只保留armeabi-v7a就可以了
ndk {
abiFilters(‘armeabi-v7a’,‘armeabi’)
}

5,移除无用resource资源 ,有两种移除方式,都不建议操作,
注意:移除前务必先备份好res文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6,代码混淆

buildTypes {
debug {
//ture=开启源代码混淆
minifyEnabled true
proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro
}
release {
//ture=开启源代码混淆
minifyEnabled true
proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro
}
}

7,启用资源缩减

buildTypes {
release {
//启用资源缩减
shrinkResources true
}
}

官网介绍: https://developer.android.com/studio/build/shrink-code?hl=zh-cn
在这里插入图片描述

8,将大图片转换成webp格式,此功能在Android studio2.3非常方便
文件右键Convert to Webp,将1.8M的图压缩成了36KB。

在这里插入图片描述
在这里插入图片描述

9,压缩对齐,res资源混淆
这里的坑比较深,微信大神有个开源的项目,有兴趣的可以研究研究
https://github.com/shwenzhang/AndResGuard/blob/master/README.zh-cn.md

10,欢迎补充

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值