移动应用的性能
1、定义性能
从技术角度来说,性能是一个很模糊的概念:消耗的内存小?节约了流量?应用使用流畅?省电?总之,高性能有多重的含义和解释。
2、性能指标
内存
内存涉及运行应用所需的RAM最小值,以及应用消耗的内存平均值和峰值。最小内存值会严重限制硬件,而更高的内存平均值和峰值意味着更多的后台应用会被强制关闭。同事还要确保没有泄露内存,随着时间流逝而持续增长的内存消耗意味着,应用很可能会因为内存不足的异常而崩溃。
电量消耗
在编写高性能代码时,电量消耗时一个需要重点考虑的重要因素。电量消耗不仅仅与计算CPU周期有关,还包括高效地使用硬件。除了要实现电量消耗最小化,还要确保不会影响用户体验。
初始化时间
用户在启动应用的时候,应用执行任务所消耗的时间就是应用的初始化时间。通常我们要控制好这个时间,不能让用户在任务执行时总是等待。
应用启动执行的动作:如,检查应用是否为首次启动,检查用户是否登录....
执行速度
一旦启动应用,用户总是很迫切的希望尽快工作,尽可能短时间处理事情。如上传图片时,希望快点上传。
响应速度
通常用户选择一款应用,基本都会选择响应速度最快的应用。即响应用户交互的速度。
本地存储
提供离线浏览的能力,如在无网络或者设备离线情况下查看历史邮件,离线视频,离线音频等。如果应用中使用了本地存储,那么需要一个清除缓存的功能,避免用户频繁卸载应用。
互操作性
用户可能会使用多个应用完成某个任务,这就需要这些应用直接提供互操作的能力。例如,相册可能需要一个修图软件修图,相册需要另一个应用来剪辑视频。
网络环境
移动设备会在不同网络环境下使用,为了确保提供最好的用户体验,需要适应各种网络环境:如 高速稳定,低速稳定,高速不稳定,低速不稳定,无网络。
带宽
人们在不同的网络环境下使用移动设备,网速从每秒数千字节到每秒数十兆字节。因此,带宽的优化使用是定义应用质量的一个关键参数。
数据刷新
数据刷新的频率和每次传输的数据量决定数据传输总量,如果传输的数据过大,用户流量势必会快速耗尽,流量消耗过快影响用户体验。
多用户支持
提供多用户添加、更新、切换,如QQ
单点登录
用户登录了一个应用,只需要点击一次,就可以登录其他的应用中。这个过程不仅需要支持跨应用的数据共享,还需要分享状态、跨应用同步等。例如,如果用户注销了其中的某个应用,则通过SSO登录的所有其他应用也要注销掉。
安全
本地数据和功效数据加密,保障安全。
崩溃
应用可能会崩溃,过度优化也会导致崩溃。高性能应用应尽可能的避免崩溃,还应该在崩溃发生时优雅地恢复,尤其是在进行某个操作的过程中发生崩溃时。
应用性能分析
1、采样
是指以一定的周期间隔采集状态,这通常需 要借助工具。
2、埋点
通过修改代码,记录细节信息的埋点能够提供比采样更精准的结果。你既可以在关键部分主动埋点,也可以在性能分析或处理用户反馈时有针对性埋点,以便解决问题。(因为埋点需要注入额外的代码,所以它一定会影响应用的性能,对内存或速度造成损害)。
测量
1、设置工程和代码
构建与发布 ( 确保能够轻松地构建和发布应用)
可测试性 ( 确保你的代码能够同时在模拟数据和真实数据之上工作,其中包括能够模拟真实场景的 隔离环境)
可跟踪性( 确保你能够通过明确问题发生的位置和代码行为来处理错误)。
2、设置崩溃报告
Flurry(http://www.furry.com)、Bugly (https://bugly.qq.com/v2/)
3、对应用埋点
对应用进行埋点是了解用户行为的一个重要步骤,但更重要的目的是识别应用的关键路径。注入特定的代码以记录关键指标是提升应用性能的重要步骤。
4、日志
日志提供了用于在不同级别跟踪应用 的细节信息,比如 debug、Verbose、info、warning 和 Error。
网友评论