功夫“唯快不破”,Android开发APP该如何优化才能做到极致体验?

一款App如何才能被称为“好用”呢?如何才能够受到大家的喜爱呢?其实这非常简单:功能强大和性能优越 。
说到性能,首先就是APP的启动性能问题,正所谓万事开头难,这个“开头”在这里可以理解为APP的启动,APP的启动问题很大一部分决定了是否能留住用户 。
8秒定律测试在性能测试中遵循2-5-8原则:
  • 当App启动的响应时间小于2s,客户认为app启动速度很快
  • 当App启动的响应时间介于2-5秒之间,客户认为app启动速度还可以
  • 当App启动的响应时间介于5-8秒客户认为app启动速度很慢,但还可以接受
  • 当App启动的响应时间大于8秒,客户认为app启动速度是不可接受的,甚至认为App没有响应 。
因此,做好启动优化是非常有必要的。
功夫“唯快不破”,Android开发APP该如何优化才能做到极致体验?

文章插图
 
对我们Android开发人员来说;性能优化是必不可少的 。而进入大厂性能优化,往往也是面试过程中必问到的技术之一 。
例如:
如何去除过重的app初始化 ? 怎样通过减少冗余或嵌套布局来展平视图层次结构 ? 开启线程懒加载资源怎么做? 阻塞磁盘上的屏幕绘图或网络I / O 。
这里简单说几个启动优化相关的面试题例子;如果你都会当我没说 。但是就这些来技术做优化肯定是不够的 。
要优化App的启动速度,首先需要了解App的启动流程 。在Android系统中,系统会为每一个应用开辟一个linux进程,默认情况下应用都运行在自己的进程中 。
【功夫“唯快不破”,Android开发APP该如何优化才能做到极致体验?】当用户点击桌面图标启动一个应用界面时,底层的完整流程如下:
 
功夫“唯快不破”,Android开发APP该如何优化才能做到极致体验?

文章插图
 
从流程图得知:
  • 如果App进程不存在,则需要执行3,4,5,6步,我们称之为“冷启动”,一般是首次启动,或者进程被杀死后;
  • 如果App进程存在,则直接实例化并启动目标Activity,我们称之为“温启动”,一般发生在应用退出后,进程被杀前;
  • 还有一种情况,如果进程和目标Activity都存在,只是切到后台,我们称之为“热启动”,如按了Home键 。
根据以上app启动流程,我们可以往那些方面进行优化呢?怎么样把优化做到极致这是关键,大多数人都有过优化的经历,但是公司对程序员的刚需是极大化的,项目优化做起来很吃力,许多人勉强能达到项目要求 。
这是为什么?究竟是哪方面做的不足?而我们怎么细分优化呢?
这里我推荐阿里的架构师整理的《Android性能优化》资料分享,让你站在高工的角度,深度理解APP启动原理与内存相关原理,掌握一线大厂启动与内存方面的各种优化手段 。




    推荐阅读