经典面试题26 - 如何优化移动App性能
问题
据报告称64%的智能手机用户期待页面在4秒内加载完成,性能已经成为用户体验的核心部分之一,请问如何优化移动App性能?
解答
首先,所有相关人员把高性能作为核心考量的标准之一是不可或缺的,统一思想认识才能制定流程并执行下去,这样才能及早发现性能问题并解决。
其次性能的优化不应只在开发流程完成以后才进行,而是设计师和开发者在产品设计阶段就要联袂合作,完成对设计方案的评审,避免开发者在开发阶段发现才设计的不合理之处,从而反复修改设计,引起相关参与方不满。
在进行优化前,要确定和遵守可量化的优化的目标,如应用首页请求的大小不超过500kb,每个请求延时不超过2s等,但这不是固定的,具体的要根据业务需求和用户需求来确定。
还有在开发的过程中也要开发者经常进行性能的测试,避免错过纠正的最佳时机。
上述两点的角度是在流程上,后面我们在技术纬度分析。
一般来说,移动应用服务有两部分组成:客户前端和服务器后端,下面就从这两个方面分析。
客户前端优化
-
图片缓存
缓存是把部分刚使用过的资源存储在内存或本地硬盘,可存储的内容包括图片,文件和网页等。使用缓存避免网络传输可以很好地改善用户体验。
根据不同的场景使用被压缩,大小适合的图片对于性能提升也是很显著的。
-
减少网络请求
使用较少的网络请求获取资源对于性能优化也有帮助,因为每次建立网络连接是有成本的。 注意在HTTP 2.0协议中支持复用已有网络连接传输数据(多路复用)。
-
加载动画
一般来说,用户意识到的加载速度比事实慢15%,在代码优化性能的同时,可以尝试在界面设计上调整,改善用户的体验。
如应用在等待后台返回数据的时候,给用户一个可见的反馈,会让用户感觉快很多。
有时候代码层面夜以继日的优化,不如在设计层面些许的调整对用户更有价值。
-
按需加载
如果应用需要加载大量数据,可以尝试把数据分割按需加载,防止用户等待时间过久。
有时候可以尝试预加载思路,这样在用户使用数据的时候不用等待。
-
离线模式
在一些网络不稳定的地区,用户会经常在使用应用的过程中遇到丢失信号的场景,聪明的做法是提醒用户当前编辑无法完成,且允许用户把当前编辑的数据保存在本地,等网络恢复的时候可继续操作。
-
工具调优
选择合适的工具进行移动应用的性能测试也是不可或缺的, Android应用可以尝试工具 Monkop。
-
内置APM
APM (application performance monitoring) 应用性能监测用来监视和管理应用的性能和可用性,一方面可以监控和用户体验相关的性能,如页面加载时间,另一方面是系统层面的资源消耗。
服务后端优化
-
API设计
前端和后端的交互一般通过API进行,良好的API的设计可以让交互进行更顺畅,但不合适的API会拖性能的后退。
很多项目的API不是为移动产品而设计,复用一些桌面Web已有的API接口,这样不仅造成冗余数据的传输,有时候还要拼接多个API来完成相关需求。
-
缓存
主要是指提高后端数据准备的速度的缓存思路,如Memcached,CDN加速等。
待续...
更多
获取更多内容请关注微信公众号豆志昂扬:
- 直接添加公众号豆志昂扬;
- 微信扫描下图二维码;