要想用户不流失,APP优化至关重要~

发布于:2022-12-10 ⋅ 阅读:(740) ⋅ 点赞:(0)

随着 Android 应用的开发,上线到越来越多的人开始下载,使用APP,对于不同手机,不同用户来说使用的体验可以说是决定这个用户是否还会继续使用这款APP最重要的衡量标准。

比如

  • 手机使用APP越来越卡
  • 手机莫名的发烫
  • 网络问题,内容加载不出来
  • 手机掉电十分得快

而要提升用户的体验,就不得不说要对 Android 应用的性能进行优化。

当对于性能优化有一个很好的提升,那么就可以很好的改善Android应用的产品体验,同时面对各种各样的竞品来说,使用体验越好,才会吸引越来越“挑剔”的用户。

那么可以通过这篇文章,可以了解到那些地方我们可以优化?性能优化的指标是什么?性能优化的工具有哪些?

值得优化的地方

之前,介绍了性能优化的重要性,那么接下来我们聊一聊那些地方可能造成性能优化,只有知道了那些地方可能引起性能方面的问题,我们才能更加有针对性的进行优化。

  • 冷启动的时间
  • 三方SDK使用不合理的地方
  • 代码当中是否频繁的调用创建新的实例
  • APP是否存在过渡绘制的问题
  • 应用的监听,广播是否关闭
  • Handler、Observer、AsyncTask等非静态内部类导致的内存泄露
  • IO操作完成没有关闭的地方
  • 网络请求不合理导致功耗的问题
  • 后台服务常驻导致功耗的问题

性能优化的流程

说到底, 遇到了问题自然就要想如何解决这些问题。解决问题的时候,要尽可能用数据说话,要有足够的多的测试来验证这个问题。很多问题,在性能比较好,配置比较高的手机很难复现出来,所以我们可以选择一些低配置的设备进行测试。对于性能的改善,也一定要保证Android应用的稳定,不能因为改善一个问题导致其他的问题。

发现问题 --> 定位问题 --> 解决问题–> 验证问题

这也是我们在解决BUG常用的一个流程方式。

导致性能优化现象、原因以及工具。

解决方向

冷启动的速度

从Nimbledroid当中统计到APP冷启动的平均耗时基本都在3秒以内,甚至更快的都在2秒以内。

导致冷启动速度较慢的原因

问题:布局复杂、过度绘制
解决办法:去掉Window背景、增加一个启动背景、去掉复杂布局,例如:merge、ViewStub、space、CoordinatorLayout

问题:UI阻塞
解决办法:启用子线程,例如:AsyncTack、HandlerThread、IntentService、ThreadPool

流畅度优化

问题:布局复杂、过度绘制
解决办法:去掉Window背景、增加一个启动背景、去掉复杂布局,例如:merge、ViewStub、space、CoordinatorLayout

问题:UI阻塞
解决办法:启用子线程,例如:AsyncTack、HandlerThread、IntentService、ThreadPool问题:整机内存
解决办法:内存泄露优化(非静态内部类、静态代码检查、系统SDK泄露)

问题:内存占大
解决办法:合理的进行缓存,压缩图片,并把图片放在合理位置

功耗优化

问题:频繁的网络请求
解决办法:网络请求合并,改善网络请求策略

问题:频繁的界面刷新
解决办法:适当的缓存,触发式的响应刷新

问题:长时间不待机
解决办法:合理的使用WakeLock,关闭Service

问题:后台持续工作
解决办法:系统进行优化


为了帮助到大家更好的从底层角度进行性能优化,这准备了 Android11.0最新Framework解析 与 性能优化知识点汇总和Android 性能监控框架 的学习文档,中间记录了 AMS、PMS、WMS、Hander、Binder、启动优化、内存优化、UI优化……等知识点,可谓是很全面了,↓↓↓

有需要的可以复制下方链接,传送直达!!!
https://qr21.cn/CaZQLo?BIZ=ECOMMERCE

内功心法不是一天两天就可以修炼出来的,而是需要每天的坚持,技术提升也是如此。所以最好的速成修炼方法就是每天学习一点,日积月累后就会发现自己进步的效果。

本文含有隐藏内容,请 开通VIP 后查看

微信公众号

今日签到

点亮在社区的每一天
去签到