|
$ C; J% s2 D5 |' G7 ~, o* B 我们认为 "能提供始终如一、轻松流畅的用户体验是一个优秀应用的标准无论在何种设备运行,优秀的应用都能提供出色的高性能用户体验" 那么什么是应用性能?高性能应用的特点是什么?如何借助强大的性能打造优秀应用?。 : @7 o0 N' F2 a6 y& v; @
对用户而言,应用的高性能似乎 "理所当然";然而作为开发者,打造高性能应用的过程并非易事整体来说,应用的高性能主要体现在以下几个方面:稳定性高性能应用应该是稳健而可靠的,没有卡顿 (应用无响应,又名 "ANR") 或崩溃的情况。 3 o& E" M" d: j$ o
在发布应用之前,参考 Google Play 发布前测试报告,检查潜在的稳定性问题完成部署后,关注 Google Play 开发者管理中心的 Android Vitals 页面具体而言,ANR 是由线程问题引起的。
, ]! h( d: a$ T" `8 p# Q/ l ANR 问题排查指南可以帮助诊断和解决应用中存在的任何 ANR 问题Google Play 发布前测试报告https://support.google.com/googleplay/android-developer/answer/9842757?hl=en-GB。
& Y+ s6 v; Z& ^. ~" ` ?9 _ Android Vitalshttps://developer.android.google.cn/topic/performance/vitalsANR 问题排查指南https://developer.android.google.cn/topic/performance/vitals/anr + A- D9 _- M: ~* i, U" N
快速加载试想一下,如果用户初次使用应用就经历了漫长的等待……他们可能会感到无聊或无法沉浸,或许会因此失去一个新用户应用应该实现快速加载或在恰当时机给到相应提示 (比如进度条等)您可以使用 Android Vitals 提供的数据来。 # f& }1 |+ A- `& y2 I; l% l8 k
量化应用在启动时间方面可能遇到的问题Android Vitals 将启动时间分为以下几种情况:冷启动: 花费 5 秒或更长时间温启动: 花费 2 秒或更长时间热启动: 花费 1.5 秒或更长时间量化https://developer.android.google.cn/topic/performance/vitals/launch-time
% x2 ^& j- y i- n1 \ 冷启动https://developer.android.google.cn/topic/performance/vitals/launch-time#cold温启动https://developer.android.google.cn/topic/performance/vitals/launch-time#warm
& C% u( t2 q7 B2 b: G 热启动https://developer.android.google.cn/topic/performance/vitals/launch-time#hot不过,这些都是很保守的时间,建议以更短的启动时间为目标。
# y- o+ n& o% S* i 我们之前的推文详细介绍了如何测试启动性能的实用技巧快速渲染高质量的帧渲染不仅适用于游戏,对于应用来说,流畅的视觉体验也十分重要高性能应用的最低要求是呈现每帧的时间不应超过 16ms,以达到每秒 60 帧的呈现速度。 ( y; B1 J' F R8 [
但请注意,已经有不少更高刷新率的设备推出如需要在测试的同时监控性能,可以使用 "Profile HWUI rendering" 选项可以访问官方文档以了解诊断渲染问题的相关工具Profile HWUI rendering。 4 r9 m# K% P! @$ |
https://developer.android.google.cn/topic/performance/rendering/inspect-gpu-rendering了解诊断渲染问题的相关工具https://developer.android.google.cn/topic/performance/vitals/render 1 ^) r5 e/ R2 F8 r |: m I
减少电量消耗当用户意识到应用消耗电量过大时,他们就会考虑卸载你的应用可能会因部分唤醒锁定操作卡住、过多唤醒、后台 Wifi 扫描或后台网络使用而消耗大量电量此时可以使用 Android Studio 能耗剖析器。
2 l5 @9 t, J4 Q ,同时规划后台工作,以诊断意外耗电如果应用需要执行后台任务,则需要确保即使应用退出,系统也会继续运行相关任务WorkManager 是一个省电的 Android Jetpack 库,当满足工作约束时,该库可以运行可延期执行的、有保证的后台工作。
! w% ]; }, G: C; l, j Android Studio 能耗剖析器https://developer.android.google.cn/studio/profile/energy-profilerWorkManagerhttps://developer.android.google.cn/topic/libraries/architecture/workmanager/ _8 f* g5 \0 m% r2 N3 M5 e- }
Android Jetpackhttps://developer.android.google.cn/jetpack/使用最新版本 SDK为了确保安全与性能,请务必使用最新版本的 Google 或第三方 SDK
* S& U. x s) i. y& J SDK 的更新 (例如稳定性、兼容性或安全性相关更新) 也应及时提供给用户你应对整个代码库负责,包括你可能使用的任何第三方 SDK对于 Google SDK,优先使用由 Google Play 服务提供支持的 SDK。 , o1 u9 [8 P. H; Y
这些 SDK 向后兼容且支持自动更新,能够减小应用大小并能高效利用设备上的资源最新版本的 Google 或第三方 SDKhttps://developer.android.google.cn/topic/security/best-practices#services-dependencies-updated ' S5 J, e7 w; U W. n" D
Google Play 服务http://developers.google.cn/android如需了解更多信息,可以访问应用质量优化页面,或查看文章合集,了解更多案例研究、实用建议也欢迎持续关注本号,及时了解更多精彩内容。 ) C/ L5 Q) U& ~ l/ O% y+ b7 S
官方网站: 应用质量优化https://developer.android.google.cn/quality性能优化始终穿插在 App 整个研发生命周期中,不管是从 0 到 1 的建立阶段,还是从 1 到 N 打磨阶段,都离不开性能优化。
1 ^8 |/ S0 Z, H 想要搞清楚性能优化,那么必须对各种底层原理有着深度的了解,对各种 case非常丰富的经验;很多朋友经常遇到措手不及的问题,大多是因为对出现问题的情况和处理思路模糊不清,导致此原因就是因为没有彻底搞懂底层原理。
6 `# y! j) v! a4 U! }; J 性能优化是软件工程的深水区,也是衡量一个程序员能力高低的标准作为过来人,我收集整理了一整套Android性能优化笔记,如果需要这份《Android 性能优化知识点笔记》,可以直接私信我【优化】免费领取!。 ' B$ _; \, l3 j2 L$ H1 c
启动优化 5 n e! x P4 t3 H
UI渲染优化
' L+ U2 T8 k( \6 Y: s6 ?$ u; U/ { 崩溃优化 ; I3 u* O: R& V% z U, H
内存优化
: e! j( @+ l2 x" W% A6 O# ]0 x 卡顿优化
, [" ~9 ?' s! D0 W5 V' m 如果需要这份《Android 性能优化知识点笔记》,可以直接私信我【优化】免费领取!存储优化 : t9 ~& c9 ^: p# S) m
网络优化 . P' j1 P& c7 a3 t6 C
耗电优化 , X. `* }( @5 N1 t" P1 g, D7 R: C
多线程并发优化 " ~4 p, X, x8 y' {+ M. R: ~( o
安装包优化
9 y4 ^5 [+ R# u 如果需要这份《Android 性能优化知识点笔记》,可以直接私信我【优化】免费领取!
* m* Z2 M0 T! s- q z1 D$ I 如果需要这份《Android 性能优化知识点笔记》,可以直接私信我【优化】免费领取!
& c5 i( Z& O! W* U5 c% j* Q/ `' Y$ X
) M% y4 r% ~" }/ d3 W- A6 X- W2 H7 u f, _+ g% W8 ^9 W8 x- e
/ H1 R: A9 H2 F
|