分享

Android性能优化,看完还不懂就不要怪我了

 梅与牛 2020-02-13

前言

在 Android开发中,性能优化策略十分重要

因为其决定了应用程序的开发质量:可用性、流畅性、稳定性等,是提高用户留存率的关键

本文全面讲解性能优化中的所有知识,献上一份 Android性能优化的详细攻略, 含:优化方向、原因 & 具体优化方案,希望你们会喜欢

性能优化的目的

性能优化的目的是为了让应用程序App 更快、更稳定 & 更省。具体介绍如下:

更快:应用程序 运行得更加流畅、不卡顿,能快速响应用户操作

更稳定:应用程序 能 稳定运行 & 解决用户需求,在用户使用过程中不出现应用程序崩溃(Crash) 和 无响应(ANR)的问题

更省:节省耗费的资源,包括 内存占有、电池量、网络资源等

优化方向

  • 流畅性

优化原因

利于 减少使用中的卡顿、响应时间久等问题,给与用户一个操作流畅的体验

优化方向

主要针对3个方面优化:启动速度、页面显示速度、响应速度

1.启动速度

初次打开应用时,需加载很多资源 or 功能逻辑,采用 异步加载(多线程)、分步加载、延期加载的策略,减少启动应用时加载的任务,从而提高启动速度。

2.页面显示速度

页面需绘制的内容(布局 & 控件)太多,从而导致页面测量时间过长,绘制效率过低,从而导致绘制时间过长

3.响应速度

应用程序出现 ANR 情况,从而导致 应用程序响应速度慢,使用多线程,将大量 & 耗时操作放在工作线程中执行

4.其他优化方案

  • 合理的刷新机制
  • 动画的使用根据不同场景选择

合适的动画框架使用

硬件加速的方式

提高流畅度使用动画后需停止动画

  • 稳定性

应用崩溃(Crash)、应用无响应(ANR)

1.应用无响应(ANR)

尽量避免应用程序出现 ANR 情况,使用多线程,将大量 & 耗时操作放在工作线程中执行

2.应用崩溃(Crash)

应用崩溃Crash很多情况是因为 内存溢出,即OOM;故 需避免出现 OOM现象

参考文章:内存泄漏分析

  • 资源节省性

由于移动设备的硬件性能有限,故减少应用程序的资源消耗显得十分重要,内存大小、安装包大小、耗电量 & 网络流量

1.内存优化

避免因不正确使用内存 & 缺乏管理,从而出现 内存泄露(ML)、内存溢出(OOM)、内存空间占用过大 等问题,最终导致应用程序崩溃(Crash)

2.减少安装包大小

应用程序的安装包大小虽对应用程序的使用无影响,但影响的是:

空间占有率:即 应用程序占有手机内存的大小

下载门槛:应用的安装包越大,用户下载的门槛越高

特别在移动网络下,用户下载应用时,对安装包大小的要求更高,因此减小安装包大小可让更多用户愿意下载且使用产品

资源优化:去除不需要的图片资源(使用Android Lint删除冗余资源,压缩图片,mac系统推荐imageoption压缩工具)

减少引入不必要的库

代码混淆

插件化

3.减少网络流量

每次获取资源时 都通过流量 & 网络加载的方式,将耗费大量网络流量,主要通过 缓存 减少网络流量,采用三级缓存方案:即 内存缓存 - 硬盘缓存- 数据库- 文件 - 网络缓存

4.减少应用的耗电量

随着智能手机普及 & 应用程序App的功能发展,人们的日常生活都离不开智能手机 & 各式各样的应用程序App,故 应用程序的耗电量指标则显得十分重要

正确使用WakeLock机制

尽量使用JobScheduler

使用电量分析工具

总结

区别于功能性开发需求的短期性,性能优化是贯穿整个应用程序App项目的持续性需求;虽项目一开始时,性能优化的优先级较低,但当应用程序App的用户体量达到一定规模时,性能优化 则非常重要

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多