Android程序性能优化全面解析,(含内存优化,耗电优化,apk大小优化,网络传输与数据存储优化等实战解析)

背景

APP优化是我们进阶高级开发工程师的必经之路, 而APP启动速度的优化,也是我们开启APP优化的第一步。 用户在使用我们的软件时,交互最多最频繁的也就是APP的启动页面,如果启动页面加载过慢,很可能造成用户对我们APP的印象过差,进而消耗了用户的耐心,更严重可能导致用户的卸载行为。这也是微信始终坚持使用“一个小人望着地球”作为启动页面的背景,并且坚持不添加启动广告的的原因。

性能优化的目的

性能优化的目的是为了让应用程序App 更快、更稳定 & 更省。

  • 更快:应用程序 运行得更加流畅、不卡顿,能快速响应用户操作
  • 更稳定:应用程序 能 稳定运行 & 解决用户需求,在用户使用过程中不出现应用程序崩溃(Crash) 和 无响应(ANR)的问题
  • 更省:节省耗费的资源,包括 内存占有、电池量、网络资源等

    性能优化原则和方法

    1、性能优化原则

  • 坚持性能测试(开发和测试同学的测试方法略有不同):不要凭感觉去检测性能问题、评估性能优化的效果,应该保持足够多的测量,用数据说话(主要针对测试同学)。使用各种性能工具测试及快速定位问题(主要针对开发同学)。
  • 使用低配置的设备:同样的程序,在低端配置的设备中,相同的问题会暴露得更为明显。
  • 权衡利弊:在能够保证产品稳定、按时完成需求的前提下去做优化。

2、优化方法

  • 了解问题(分为可感知和不可感知的性能问题):对于性能问题来讲,这个步骤只适用于某些明显的性能问题,很多无法感知的性能问题需要通过工具定位。例如:内存泄漏、层级冗杂、过度绘制等无法感知。滑动卡顿是可以感知到的。
  • 定位问题:通过工具检测、分析数据,定位在什么地方存在性能问题。
  • 分析问题:找到问题后,分析针对这个问题该如何解决,确定解决方案。
  • 解决问题:根据分析结果寻找解决方案。
  • 验证问题:保证优化有效,没有产生新的问题,以及产品稳定性。

    性能优化的重要性

    Android和iOS都用过的朋友应该体验比较明显:相比于iOS,Android用的时间越长就会越卡。

在这个网络都追求5G的时代,“卡”这个体验显然成为了一个极其拉低印象分的问题。

所以,在 Android开发中,性能优化策略十分重要,他决定了应用程序的开发质量,包括可用性、流畅性、稳定性等,是提高用户留存率的关键。

所以,不只是阿里,还有腾讯、字节跳动、爱奇艺等,都非常重视这个问题,在面试中,如果这个方向表现优异,你将会很值钱。

下面给大家分享一份 《 Android程序性能优化》文档,文档主要有八个章节,ANR问题解析;crash监控方案; 启动速度与执行效率优化项目实战;内存优化;耗电优化;网络传输与数据存储优化;apk大小优化;实战项目

第一章 ANR问题解析

  • Android ANR:原理分析及解决办法
  • 卡顿监控 - ANR 底层机制源码分析
    Android程序性能优化全面解析,(含内存优化,耗电优化,apk大小优化,网络传输与数据存储优化等实战解析)_第1张图片

第二章 crash监控方案

  • 线程监控 - 死锁、存活周期与 CPU 占用率
    Android程序性能优化全面解析,(含内存优化,耗电优化,apk大小优化,网络传输与数据存储优化等实战解析)_第2张图片

第三章 启动速度与执行效率优化项目实战

  • Android卡顿检测及优化
  • 微信越滑越卡
  • 异步、非阻塞式 Android 启动任务调度库
  • android app启动页(闪屏页)白屏快速优化方案实践
    Android程序性能优化全面解析,(含内存优化,耗电优化,apk大小优化,网络传输与数据存储优化等实战解析)_第3张图片

    第四章 内存优化

  • Android内存优化工具
  • Android内存泄漏分析及检测工具LeakCanary简介
  • 安卓内存优化
    Android程序性能优化全面解析,(含内存优化,耗电优化,apk大小优化,网络传输与数据存储优化等实战解析)_第4张图片

    第五章 耗电优化

  • 记一次简单的耗电发热问题排查过程
    Android程序性能优化全面解析,(含内存优化,耗电优化,apk大小优化,网络传输与数据存储优化等实战解析)_第5张图片

    第六章 网络传输与数据存储优化

  • 包体积优化(二):压缩图片以及转化成webp插件
  • Android 面试之必问性能优化
  • 探索 Android 网络优化方法
    Android程序性能优化全面解析,(含内存优化,耗电优化,apk大小优化,网络传输与数据存储优化等实战解析)_第6张图片

第七章 apk大小优化

  • Android apk瘦身最佳实践(一):去除R.class
  • Matrix源码分析系列-如何解析应用安装包
    Android程序性能优化全面解析,(含内存优化,耗电优化,apk大小优化,网络传输与数据存储优化等实战解析)_第7张图片

    第八章 实战项目

  • 【开源】快速批量统计AAR大小
  • 终结 Android 性能流言
    Android程序性能优化全面解析,(含内存优化,耗电优化,apk大小优化,网络传输与数据存储优化等实战解析)_第8张图片
    ## 最后
    性能优化不是更新一两个版本就可以解决的,是持续性的需求,持续集成迭代反馈。在实际的项目中,在项目刚开始的时候,由于人力和项目完成时间限制,性能优化的优先级比较低,等进入项目投入使用阶段,就需要把优先级提高,但在项目初期,在设计架构方案时,性能优化的点也需要提早考虑进去,这就体现出一个程序员的技术功底了。

什么时候开始有性能优化的需求,往往都是从发现问题开始,然后分析问题原因及背景,进而寻找最优解决方案,最终解决问题,这也是日常工作中常会用到的处理方式。

由于篇幅有限,资料内容过多,只展示目录和部分截图,需要完整版《 Android程序性能优化点击这里领取哦

你可能感兴趣的:(android)