提升安卓手机性能的方法

核心提示Akamai开发者布道师 Aman Alam如今,手机和各类移动端应用现已经成为人们日常生活的重要组成部分。因此,应用的数量不断飙升。对于安卓开发商,在应用领域竞争日益激烈的背景下,打造可以使终端用户满意的应用正变得空前重要。作为安卓应用开

Aman Alam,Akamai的开发者传道者

如今,手机和各种移动应用已经成为人们日常生活的重要组成部分。所以申请数量在飙升。对于Android开发者来说,在应用领域竞争越来越激烈的背景下,打造能够让最终用户满意的应用变得越来越重要。

作为一个Android应用开发者,你知道让应用最终用户满意的关键是什么吗?答案是高性能。事实上,96%的最终用户认为应用程序的性能非常重要。下面,我们将讨论让最终用户获得满意的用户体验的五种方法。

在进入正题之前,我想介绍一下高性能的定义,以及为什么最终用户获得满意的用户体验如此重要。

高性能的Android应用程序可以合理利用设备资源,帮助最终用户快速实现目标和任务。事实上,高性能应用还可以缩短最终用户感受到的延迟。

在这里,感知延迟是一个重要的术语:它是指最终用户从点击按钮到改变界面所经历的时间差。根据终端用户采取的行动和数据采集的来源,有许多方法可以缩短感知延迟。

现在,让我们分析最终用户交互和数据加载的五个场景,并探索作为Android应用程序开发人员的您可以采取哪些方法来缩短感知延迟,并使应用程序快速、贴心地响应最终用户的需求。

1.从最近的资源加载。

您开发的Android应用程序的最终用户遍布全球,毫无疑问,这些用户越来越依赖于移动生活方式。

很难控制最终用户和为应用程序提供数据的web服务器之间的距离,这是延迟较长的主要原因。

为了减少感知延迟,你应该尽可能从附近的资源向应用提供大部分数据;此外,最近可以清除很多未授权的API请求,可以避免与后端服务器的往返传输,从而提高对终端用户需求的响应速度。

Akamai智能边缘平台可以提供开箱即用的服务。在Akamai的帮助下,您可以始终从优化的资源中加载数据,这可以提高应用程序的性能,并且您的最终用户可以轻松获取数据内容。

2.缓存和预取

从网络服务器加载的许多资源经常被重用。智能缓存机制可以将对象或API响应存储一段时间以供重用,从而缩短冗长的往返传输时间。很多网络或镜像加载数据库已经可以提供这个功能,你可以根据自己的需求进行配置。这些缓存对象可以即时加载,因此延迟时间非常短,最终用户根本不会注意到任何延迟。

使用这些数据库,当缓存的内容过期时,它将被标记为从网络重新加载。根据这些信息,您可以为数据库设置保存和重用缓存对象的时间。许多这样的数据库也支持HTTP头,比如max-age。这可以帮助您控制直接从服务器加载的缓存内容的缓存能力和生命周期,而无需加速应用程序更新。

但是,在某些情况下,例如提供实况体育比分的应用程序,缓存可能不适用。对于这类应用,作为Android应用开发者,可以继续从网络加载数据。如果从最近的资源加载数据,对提高应用程序性能没有显著影响。

在某些情况下,您可能知道最终用户下一步会做什么。例如,电子书阅读应用程序可以预测,当最终用户正在阅读一本书的某一页时,他们可能会向前或向后翻。基于这些知识,应用程序可以预先预取几个页面,然后缓存它们。这样,当最终用户打开这些页面时,页面可以立即加载。

同样,在电子商务应用程序中,如果最终用户浏览到第四行中的产品,他们也可能会浏览下一页中的产品。如果应用程序可以预取下一页并缓存它,那么当最终用户翻到下一页时,就可以立即加载数据。

正如您所看到的,您可以通过多种方式预取和缓存数据,从而减少可感知的延迟并提高最终用户的满意度。

3.快速加载API的响应速度

应用程序经常使用API。如果API响应可以快速加载,最终用户将会花更多的时间使用应用程序,而不是花太多的等待时间。

因此,作为Android应用程序开发人员,您需要确保从尽可能近的资源加载尽可能多的应用程序。这样,只有那些必须访问源服务器的API请求才需要经历一段可能长达半个地球距离的漫长“旅程”。

另一种方法是减少应用程序和后端服务器之间传输的数据量,从而加快API的响应速度。为此,可以探索Colfer或Google的协议缓冲区等数据格式,而不是JSON。在将数据发送到网络之前,需要将数据转换为二进制。与JSON相比,这种格式可以大大减少API请求/响应的字节长度。值得注意的是,为了启动与Protobuf的合作,您的web服务器和应用程序需要额外的投资;然而,在很多情况下,使用Protobuf获得的性能提升远远超过了启动它所需的努力。

快速加载API响应速度并优化感知延迟的第三种方法是缓存或预取可预测的重复API响应。缓存时,作为Android应用开发者,可以将API响应存储在本地数据库表中,这样读取速度可以比从网络上读取快。本地数据库可以根据自己的逻辑被清除空或刷新,但从本地数据库加载然后刷新的过程有助于实现最佳性能和最短的感知延迟。

4.优化图像和视频

除了API,最终用户可能还需要加载许多图像和视频。一般来说,一个应用程序加载的图像也可以在其他地方使用,例如同一应用程序的网站。

相对于手机应用,电脑打开的网站图片对屏幕大小、分辨率、设备类型的要求不同。非常重要的是,应用程序映像需要根据资源有限的移动设备进行优化。移动应用上的视频也是如此。

即使这些媒体从最近的资源加载数据,也可能达不到最快的速度;因此,作为应用提供商,你还需要确定图像和视频是否经过优化。这些对象的绝对大小和全球移动数据网络的不可预测性很容易抵消您可以通过仅使用最近的服务器来减少延迟的优势。

为了实现这种优化,必须确保移动应用程序具有最合适的分辨率和大小,以便加载图像或视频。如果这些设备太大,下载时间会很长;如果太小,马赛克会显示在屏幕上。

Akamai Image Manager是一种解决方案,可以帮助Android应用程序开发人员使用单个高质量的原始图像自动优化许多移动设备。这种优化还可以更容易地缓存图像和视频。如果设备类型的数量有限,您也可以存储同一映像的多个不同副本。

图像通常包含大量在应用程序中不常使用的EXIF数据。Akamai Image Manager可以自动对此进行优化,但您也可以通过使用tinypng等服务来手动清理这些数据。这种优化可以减少图像文件的大小,从而缩短加载时间。

另一种优化方法是使用渐进图像和自适应视频流。通过这种优化,终端Android应用不需要等待整个镜像下载;应用程序可以一步一步地下载这些图像,并在下载后立即显示它们。这可以防止最终用户进入空白色图像视图,并缩短感知延迟。同样,自适应视频缓冲技术可以根据网络状况动态调整视频质量。当带宽较小时,它可以降低视频分辨率,以便最终用户可以看到视频的一部分,而不仅仅是正在加载的屏幕。

除了PNG和JPEG图片,还可以尝试WebP格式。虽然创建WebP格式的图像需要更多的时间,但是加载图像的效率更高。在本地或网络加载期间,尝试SVG映像是节省磁盘空间的另一种有效方法空。

5.优化本地动画和过渡。

动画在帮助最终用户获得满意的用户体验和通知用户活动方面起着重要的作用。与性能相比,动画与感知延迟的关系更为明显。

动画加载时间过长会让终端用户感到烦躁和无聊;太短或卡住的动画会使最终用户难以理解内容的含义。这两种情况都会给你的终端用户留下不好的体验。电池消耗也是设计良好的动画必须考虑的一个方面。动画需要消耗尽可能少的资源,同时提供愉快的用户体验。

根据谷歌的材料设计指南,移动设备上较长的动画长度为300-400毫秒,较短的动画为150-200毫秒。比这些更长或更短的动画可能会让人感到落后或难以跟上。通过示例了解这些时间范围,运动的材料指南是一个很好的选择。

因此,为了让最终用户更好地理解短动画的内容,动画的持续时间应该在150到200毫秒之间。类似地,任何过渡辅助不应长于400毫秒。倾向于重复的动画应该遵循类似的原则。单个片段动画的长度可以在300-400毫秒之间,以便它可以在进度条退出之前循环。

如果你想更多地了解人类的感知动作,请阅读名为人类处理器模型的研究。

结论

高性能的关键是全面考虑数据细节和谨慎使用资源。幸运的是,我们有许多方法来实现这个目标。

除了以上五个小技巧,我还想向Android应用开发者强烈推荐另外两个资源——《计算机编程的艺术》和《算法导论》,它们可以帮助你遵循最佳的编码实践,利用最高效的算法创建高性能的Android应用,让最终用户获得满意的用户体验。

关于阿卡迈

Akamai为世界上最大的公司提供安全的数字体验。Akamai的智能边缘平台涵盖了从企业到云的一切,从而确保客户及其公司拥有快速、智能和安全的体验。世界顶级品牌依靠Akamai通过灵活的解决方案来扩展云架构的功能,并帮助他们获得竞争优势。Akamai的决策、应用和体验比任何竞争对手都更贴近用户,让用户远离攻击和威胁。Akamai提供涵盖边缘安全、Web和移动性能、企业访问和视频交付解决方案的产品组合,并通过无与伦比的客户服务、分析和24/7监控提供支持。

来源:中国网

 
友情链接
鄂ICP备19019357号-22