【问题标题】:Android When App is started shows white screen for few seconds?Android App启动时白屏几秒?
【发布时间】:2016-06-26 04:15:56
【问题描述】:

我没有调用任何 URL 请求,该应用程序显示了一个简单的初始屏幕。 我也禁用了即时运行,但仍然出现该警告。

06-26 09:26:05.022 8709-8709/saurav.com.navigation_drawer I/art:后期启用 -Xcheck:jni

06-26 09:26:05.144 8709-8709/saurav.com.navigation_drawer W/系统:类加载器引用未知路径:/data/app/saurav.com.navigation_drawer-1/lib/arm

06-26 09:26:15.383 8709-8709/saurav.com.navigation_drawer W/系统:类加载器引用未知路径:/data/app/saurav.com.navigation_drawer-1/lib/arm

【问题讨论】:

  • 这是一个有效的问题。更新 android studio 后我也遇到了同样的问题。
  • 如果您找到任何解决方案,也请在此处添加评论。

标签: android android-studio


【解决方案1】:

当您的应用启动时,它首先使用启动活动的主题来显示窗口背景。可以在Android Deevelopers Blog 中找到该过程的完整说明。如果您没有在 styles.xml 中指定 windowBackground,则会使用默认的白色,并损坏 UX。你可以在那里指定一个更令人愉悦的drawable。

另一种方法是制造您的应用立即启动的错觉,并将责任归咎于 启动器。您只需要为启动活动选择透明的 windowBackground:

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:windowBackground">@dnull</item>
</style>

视觉结果将是最终用户按下您的应用程序图标后,相同的启动器屏幕会显示几秒钟,然后您的活动全速进入。

无论如何,您应该分析应用程序的启动过程并使其尽可能快,将所有可以推送的内容推送到后台线程(或多个线程)。

显示启动画面(即在应用程序逻辑在后台启动时加载速度非常快并吸引眼球的活动)是所有平台(不仅是 Android)上慢启动的常见解决方法。官方设计指南不鼓励这样做,但许多流行的应用程序,包括谷歌自己的应用程序,确实使用启动画面。

有关更详细的示例,请参阅https://www.bignerdranch.com/blog/splash-screens-the-right-way/

PS确实,对 ClassLoader 的此类警告通常是无关紧要的。

【讨论】:

    【解决方案2】:

    这仅仅是因为 android 系统需要几秒钟来启动您的应用程序 - 而白色实际上是您的主题中指定的窗口背景。 (因此您实际上可以在系统加载您的应用程序时使用图像或纯色)。因此,您对此无能为力,因为加载您的应用程序的系统是您无法控制的。

    从 Android Studio 部署时情况会更糟,因为即时运行和调试等功能的开销总是会使您的应用运行速度比发布优化版本慢。

    另外,我不会担心这些特定错误,除非它们会导致您的应用崩溃。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-03
      • 1970-01-01
      • 2014-02-26
      • 1970-01-01
      • 1970-01-01
      • 2021-09-06
      • 1970-01-01
      • 2019-06-06
      相关资源
      最近更新 更多