FlutterAndroid端启动⽩屏问题的解决
问题描述
Flutter 应⽤在 Android 端上启动时会有⼀段很明显的⽩屏现象,⽩屏的时长由设备的性能决定,设备性能越差,⽩屏时间越长。
问题分析
flutter开发app其实启动⽩屏的问题在Android原⽣应⽤上也是⼀个常见问题,⼤致是因为从⽤户点击 Launcher Icon 到应⽤⾸页显⽰之
间,Android 系统在完成应⽤的初始化⼯作,其流程如下:
在 Flutter Android 端上,⽩屏的问题会更加严重,因为除了 Android 应⽤启动耗时外,还增加了 Flutter 初始化耗时。
直到 Flutter 渲染出第⼀帧内容,⽤户才能感知到App启动完成。
解决⽅案
解决⽅案很简单,Android原⽣的⽩屏问题可以通过为 Launcher Activity 设置 windowBackground 解决,⽽ Flutter 也是基于此办法,同时优化了 Flutter 初始化阶段的⽩屏问题(覆盖⼀个launchView),只⽤两步设置便能解决 Flutter 中⽩屏问题。
在项⽬的 android/app/src/main/res/mipmap-xhdpi/ ⽬录下添加闪屏图⽚;
打开 android/app/src/main/res/drawable/l ⽂件,这个⽂件就是闪屏的背景⽂件,具体如何设置可以查阅 Android Drawable,我在 demo 中的设置如下:
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="schemas.android/apk/res/android">
<item android:drawable="@android:color/background_dark" />
<!-- You can insert your own image assets here -->
<item
android:bottom="84dp">
<bitmap
android:src="@mipmap/launch_image" />
</item>
</layer-list>
效果对⽐如下:
⽩屏
⽩屏优化
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论