【发布时间】:2016-06-20 14:09:43
【问题描述】:
如何检查应用程序运行缓慢的原因?更准确地说,在 Android 中执行哪个生命周期方法需要更多时间。
我已经尝试记录每个活动和片段的生命周期方法,但我无法弄清楚延迟的原因。
onCreate 被调用,但是在onResume 被调用之前有相当长的延迟(大约 1 秒)。
由于上述延迟,用户感觉应用程序的响应速度不是很好。
高端手机的延迟减少到大约 100 毫秒。但是 2012-2011 年的旧型号有这么大的延迟。
关于如何进一步调查以确定延迟的根本原因以及我们如何优化应用以更快地浏览屏幕的一些想法。
提前致谢。
【问题讨论】:
-
onCreateView()、onActivityCreated() 和 onStart() 在这些生命周期方法之间也被调用。你也尝试过计时吗?您是否也尝试过使用调试器并单步执行以查看是否存在需要很长时间的特定方法调用?
-
onCreate和onResume是否做了很多可以异步完成的代码?膨胀的布局是否非常嵌套和复杂?您是否发现内存图有任何您无法(或无法)解释的爆炸性增长?您的片段是否在膨胀的同时执行了很多任务?您是否正在连接到数据库(在线、SQLite、Realm 或类似数据库)? -
是的,我使用 baseActivity 和 baseFragment 完成了所有生命周期方法。在大多数情况下,onViewCreated 是最慢的。我已经尝试通过避免嵌套布局来降低布局的复杂性。没有数据库连接,只有带有动画的布局膨胀。
-
仔细查看内存图是个好主意。让我检查一下
标签: android performance android-fragments android-lifecycle