Android程序性能优化全面解析,(含内存优化,耗电优化,apk大小优化,网络传输与数据存储优化等实战解析)
背景
APP优化是我们进阶高级开发工程师的必经之路, 而APP启动速度的优化,也是我们开启APP优化的第一步。 用户在使用我们的软件时,交互最多最频繁的也就是APP的启动页面,如果启动页面加载过慢,很可能造成用户对我们APP的印象过差,进而消耗了用户的耐心,更严重可能导致用户的卸载行为。这也是微信始终坚持使用“一个小人望着地球”作为启动页面的背景,并且坚持不添加启动广告的的原因。
性能优化的目的
性能优化的目的是为了让应用程序App 更快、更稳定 & 更省。
- 更快:应用程序 运行得更加流畅、不卡顿,能快速响应用户操作
- 更稳定:应用程序 能 稳定运行 & 解决用户需求,在用户使用过程中不出现应用程序崩溃(Crash) 和 无响应(ANR)的问题
- 更省:节省耗费的资源,包括 内存占有、电池量、网络资源等
性能优化原则和方法1、性能优化原则
- 坚持性能测试(开发和测试同学的测试方法略有不同):不要凭感觉去检测性能问题、评估性能优化的效果,应该保持足够多的测量,用数据说话(主要针对测试同学)。使用各种性能工具测试及快速定位问题(主要针对开发同学)。
- 使用低配置的设备:同样的程序,在低端配置的设备中,相同的问题会暴露得更为明显。
- 权衡利弊:在能够保证产品稳定、按时完成需求的前提下去做优化。
- 了解问题(分为可感知和不可感知的性能问题):对于性能问题来讲,这个步骤只适用于某些明显的性能问题,很多无法感知的性能问题需要通过工具定位。例如:内存泄漏、层级冗杂、过度绘制等无法感知。滑动卡顿是可以感知到的。
- 定位问题:通过工具检测、分析数据,定位在什么地方存在性能问题。
- 分析问题:找到问题后,分析针对这个问题该如何解决,确定解决方案。
- 解决问题:根据分析结果寻找解决方案。
- 验证问题:保证优化有效,没有产生新的问题,以及产品稳定性。
性能优化的重要性Android和iOS都用过的朋友应该体验比较明显:相比于iOS,Android用的时间越长就会越卡。
所以,在 Android开发中,性能优化策略十分重要,他决定了应用程序的开发质量,包括可用性、流畅性、稳定性等,是提高用户留存率的关键。
所以,不只是阿里,还有腾讯、字节跳动、爱奇艺等,都非常重视这个问题,在面试中,如果这个方向表现优异,你将会很值钱。
下面给大家分享一份 《 Android程序性能优化》文档,文档主要有八个章节,ANR问题解析;crash监控方案; 启动速度与执行效率优化项目实战;内存优化;耗电优化;网络传输与数据存储优化;apk大小优化;实战项目第一章 ANR问题解析
- Android ANR:原理分析及解决办法
- 卡顿监控 - ANR 底层机制源码分析
文章图片
- 线程监控 - 死锁、存活周期与 CPU 占用率
文章图片
- Android卡顿检测及优化
- 微信越滑越卡
- 异步、非阻塞式 Android 启动任务调度库
- android app启动页(闪屏页)白屏快速优化方案实践
文章图片
第四章 内存优化 - Android内存优化工具
- Android内存泄漏分析及检测工具LeakCanary简介
- 安卓内存优化
文章图片
第五章 耗电优化 - 记一次简单的耗电发热问题排查过程
文章图片
第六章 网络传输与数据存储优化 - 包体积优化(二):压缩图片以及转化成webp插件
- Android 面试之必问性能优化
- 探索 Android 网络优化方法
文章图片
- Android apk瘦身最佳实践(一):去除R.class
- Matrix源码分析系列-如何解析应用安装包
文章图片
第八章 实战项目 - 【开源】快速批量统计AAR大小
- 终结 Android 性能流言
文章图片
## 最后
性能优化不是更新一两个版本就可以解决的,是持续性的需求,持续集成迭代反馈。在实际的项目中,在项目刚开始的时候,由于人力和项目完成时间限制,性能优化的优先级比较低,等进入项目投入使用阶段,就需要把优先级提高,但在项目初期,在设计架构方案时,性能优化的点也需要提早考虑进去,这就体现出一个程序员的技术功底了。
由于篇幅有限,资料内容过多,只展示目录和部分截图,需要完整版《 Android程序性能优化》 点击这里领取哦