Android开发绕不开的话题:性能优化
现如今移动互联网发展愈发迅猛,各种app层出不穷,每个人手机上都会有几十上百个app,而今天我们就来探讨一下对应android开发者来说,为什么要在android开发过程中对APK进行优化瘦身呢?

其实这一点不难理解,一旦APK过大,那在下载安装的过程中,所耗费的流量就会越多,而安装等待时间也会拉的更长,按照普通人的思维来看:这app要消耗这么多流量,还要等这么久,算了换另外相似功能的APP。
而这种情况对于产品本身则意味着下载转化率会越低,从而使得开发者很亏(容易挨老板骂)!所以apk的瘦身优化很重要,今天就来稍微讲一个小小的apk瘦身案例。
APK瘦身关键就在一个字:删!没用的就直接删了,直接上案例:
启用资源缩减 (不打包)
如果在应用的 build.gradle 文件中启用了资源缩减: shrinkResources ,则 Gradle 在打包APK时可以自动忽略未使用资源。 资源缩减只有在与代码缩减: minifyEnabled 配合使用时才能发挥作用。在代码缩减器移除所有不使用的代码后,资源缩减器便可确定应用仍要使用的资源 。
android {
// Other settings
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
动态库打包配置
so文件是由ndk编译出来的动态库,是 c/c++ 写的,所以不是跨平台的。ABI 是应用程序二进制接口简称(Application Binary Interface),定义了二进制文件(尤其是.so文件)如何运行在相应的系统平台上,从使用的指令集,内存对齐到可用的系统函数库。
在Android 系统中,每一个CPU架构对应一个ABI,目前支持的有:armeabi-v7a,arm64- v8a,x86,x86_64。目前市面上手机设备基本上都是arm架构, armeabi-v7a 几乎能兼容所有设备。因此可以配置:
android{
defaultConfig{
ndk{
abiFilters "armeabi-v7a"
}
}
}
对于第三方服务,如百度地图、Bugly等会提供全平台的cpu架构。进行了上面的配置之后,表示只会把armeabi-v7a打包进入Apk。从而减少APK大小。
对于Android开发者来说,性能优化是非常重要的一个涨薪点!那么该如何去正确学习性能优化模块的知识点呢?大家对性能优化方面知识点欠缺的话可以看看下面这份《2022性能优化大厂冲刺涨薪秘籍》,文章留言或者后台私信我即可免费领取~
一、启动优化
- ①系统的启动原理
- ②Trace工具分析启动卡顿
- ③类重排机制
- ④资源文件重排机制
- ⑤优化实战:懒加载机制实现快速启动
- ⑥等等......

二、UI渲染优化
- ①UI层级规划
- ②UI卡顿原因及修复
- ③UI绘制、布局、测量原因及处理方案
- ④Hierarchy Viewer的使用
- ⑤内存抖动现象
- ⑥等等......

三、崩溃优化
- ①项目崩溃异常捕获
- ②优雅的异常处理方案
- ③异常弹窗问题
- ④实战:手写实现异常处理框架
- ⑤等等......

四、卡顿优化
- ①分析卡顿的因素
- ②内存抖动与GC回收
- ③回收算法
- ④卡顿检测
- ⑤等等......

五、安全性优化
- ①APP加固
- ②Https防抓包机制
- ③手写APK加固框架
- ④等等......

六、编程效率优化
- ①分布式仓库系统git专题
- ②Gradle
- ③等等......

七、APP深度调优
- ①弱网优化
- ②大图加载优化
- ③储存优化
- ④微信图片高效传输方案
- ⑤微信APK极限瘦身方案
- ⑥等等......

八、内存优化
- ①优化工具
- ②内存管理
- ③内存抖动
- ④内存泄漏
- ⑤线上内存监控
- ⑥MAT分析工具
- ⑦等等......

九、存储优化
- ① 交换数据格式
- ②SharePreferences 优化
- ③Bitmap 解码
- ④数据库优化
- ⑤其它通用优化

最后
本篇文章就到此结束了,如果你想要冲击android高级工程师,但却面临着性能优化负面的知识不过关的情况,可以找我领取这份《2022性能优化大厂冲刺涨薪秘籍》进行查漏补缺,私信或留言【性能优化】即可免费领取。