【问题标题】:Why material designed app is slower than legacy holo designed app为什么材料设计的应用程序比传统的全息设计应用程序慢
【发布时间】:2016-04-21 22:34:41
【问题描述】:

我的旧 holo 应用过去启动速度非常快。

最近,我花了 1 年的时间兼职,将 holo 应用移植到 Material Design 应用。这是我所做的一些重大更改。

  1. 从 API 21 到 API 23
  2. ActionBarSherlockAppCompat 工具栏支持库
  3. 从支持库 v4:22.1.1 到 v4:23.2.1
  4. 最终编译的 APK 大小从 4~5 MB 更改为 5~6 MB。

我现在面临的一个问题是我的材料设计应用程序的启动速度很慢。它比我的全息设计应用程序慢得多(超过 2 秒)。

holo 应用启动速度快

https://youtu.be/NguClpd6rG0

材料设计的应用程序启动速度慢

https://youtu.be/TdnlZey0ABM

注意,在启动应用程序之前,我已经确保我提前终止了进程(通过设置 -> 应用程序 -> 强制停止)。

正如您在视频中看到的那样,一旦我点击图标,holo 应用程序的ActionBar 就会立即显示出来。而对于材料设计的应用程序,您需要等待大约 2 到 3 秒,只有 Toolbar 会变得可见。

首先,我想使用TraceView 来调试并找出缓慢的根本原因。但是,我意识到TraceView只能在已经启动的应用程序上使用。

我已经确认我没有在我的ApplicationActivityFragment 中执行任何耗时的任务。由于我的全息应用程序和材料设计应用程序共享相同的逻辑代码,我无法弄清楚我的材料设计应用程序变慢的原因。

你们中有人遇到过同样的问题吗?我想知道,有什么好的方法可以让我找到根本原因吗?

【问题讨论】:

  • 您使用的是 Android Studio 2.0 和 Instant Run 吗?还只是澄清一下-最终编译的版本是删除了所有日志记录等的“发布版本”,还是调试版本?我问的原因是,如果它仍然是调试版本并且您在 Android Studio 的最新稳定版本中使用“即时运行”选项,这会导致首次加载时出现延迟/白屏。如果确实如此,请禁用 Instant Run,构建项目并再次尝试运行。正如我所说,情况可能并非如此,因为我正在做一些假设。
  • 我想说和@MarkKeen 一样,如果使用 studio 2.0,启动缓慢似乎是一个问题,但发布版本应该可以解决这些问题
  • “但是,我意识到 TraceView 只能在已经启动的应用程序上使用”——在 Debug 上使用 startMethodTracing()stopMethodTracing() 方法。尽早开始方法跟踪(例如,自定义ApplicationonCreate())。
  • ActionBar 是主题的一部分,并且总是会立即显示,即使在 Activity 到达 onCreate 之前。由于Toolbar 是作为活动布局的一部分膨胀的,因此在达到此阶段之前它不会可见。 Application.onCreateActivity.onCreate 之间的初始化时间是您看不到任何条的时间,这是意料之中的。真正的衡量标准是从图标按下 -> 活动布局膨胀的时间。
  • 感谢@MarkKeen。你说的对。如果我在发布模式下重建应用程序,并用密钥签名,3秒白屏将消失。

标签: android performance


【解决方案1】:

这是假阴性!正如@MarkKeen 和@Nilabja 评论的那样,这可能是由新的Android Studio 2.0 引起的。 (在之前版本的Android Studio中,我没有遇到这个问题)

我使用的是 Android Studio 2.0。

虽然我通过点击图标启动应用程序,但该应用程序是通过 Android Studio 中的绿色播放按钮上传的。如果我在发布模式下使用签名密钥重建 APK,并且不会出现 3 秒白屏。它的速度与之前的 holo 应用相当。

【讨论】:

    【解决方案2】:

    我猜红色汽车比绿色汽车快的原因相同:) 我确信原因不在于设计,而在于应用程序和依赖项的其他部分。

    【讨论】:

      猜你喜欢
      • 2017-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-29
      • 1970-01-01
      相关资源
      最近更新 更多