Функция Flutter WidgetsFlutterBinding.ensureInitialized() работает очень медленно на некоторых устройствах Android

# #android #firebase #flutter

Вопрос:

Я создаю приложение, которое использует Firebase в качестве базы данных. Каким-то образом время запуска моего приложения на некоторых устройствах чрезвычайно медленное (20% тестовых устройств Android, большинство из этих 20% — XiaoMi и RealMi), но очень быстрое на других. Это заставляет приложение отображаться в виде белого/черного экрана в течение 15 секунд. Похоже, что WidgetsFlutterBinding.ensureInitialized(); это займет очень много времени, но я не могу удалить его, потому что он необходим для инициализации Firebase.

Вот код I для моей основной функции (с отладкой)

 Future<void> main() async {
  stopwatch.start();
  print("stopwatch start ${stopwatch.elapsed}");

  WidgetsFlutterBinding.ensureInitialized();
  print("WidgetsFlutterBinding ${stopwatch.elapsed}");

  await Firebase.initializeApp();
  print("Firebase.initializeApp ${stopwatch.elapsed}");

  AppSharedPreference.init();
  print("AppSharedPreference.init(); ${stopwatch.elapsed}");

  EquatableConfig.stringify = !kDebugMode;
  Bloc.observer = SimpleBlocObserver();
  print("Bloc.observer = SimpleBlocObserver() ${stopwatch.elapsed}");

  if (defaultTargetPlatform == TargetPlatform.android) {
    InAppPurchaseAndroidPlatformAddition.enablePendingPurchases();
    print("InAppPurchaseAndroidPlatformAddition ${stopwatch.elapsed}");
  }

  SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]).then((_) {
    print("done getting preferred orientation ${stopwatch.elapsed}");
    runApp(globalBlocProviderForInitialize(globalBlocProviderForApp(App())));
  });
}
 

И вот напечатанное время.

введите описание изображения здесь

У кого-нибудь есть какие-нибудь идеи по этому поводу?