android - 为什么 Material 设计的应用程序比传统的全息设计的应用程序慢

标签 android performance

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

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

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

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

全息应用启动速度快

https://youtu.be/NguClpd6rG0

Material designed 应用启动速度慢

https://youtu.be/TdnlZey0ABM

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

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

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

我已经确认我没有在我的 ApplicationActivityFragment 中执行任何耗时的任务。由于我的全息应用和 Material 设计应用共享相同的逻辑代码,我无法找出我的 Material 设计应用速度较慢的原因。

你们中有人遇到过同样的问题吗?我在想,有什么好的方法可以追根溯源吗?

最佳答案

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

我正在使用 Android Studio 2.0。

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

关于android - 为什么 Material 设计的应用程序比传统的全息设计的应用程序慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36766596/

相关文章:

android - AndroidHttpClient 奇怪的最低 API 级别

android - 添加 Facebook Sdk 跟踪移动应用程序安装广告后如何摆脱强制关闭?

sql - 是否有必要考虑删除现有索引,因为它是推荐索引的前缀

c++ - 将类成员数组组合到单个数组时性能受到影响

performance - 使用 O(1) 性能初始化 n 个元素数组?

c++ - 为什么代码以线性方式比以循环方式运行得慢?

java - setOnScrollListener 无限循环并加载而不在 GridView 中滚动?

Java如何扩展隐藏类

c++ - 我需要高性能。如果我使用 C 或 C++,会有区别吗?

android - 从 Android Studio 运行应用程序不再保存到我的 Android 设备上