颤动应用程序缓慢

2024-03-21

我正在尝试 Flutter,但我的应用程序在模拟器和真实设备上的响应速度都非常慢。我收到这样的警告

跳过了 51 帧!该应用程序可能在其上做了太多工作 主线程。

我知道 Dart 是一种单线程编程语言,在 Android 中我曾经用旧的方法来解决这个问题new Thread();异步块。我正在尝试在 Flutter 中应用相同的内容,并且我通读了Future await async当您从互联网上读取数据时,这些例子似乎可以解决问题。我的应用程序在此阶段不会在线读取任何内容,当我的屏幕有进度对话框、打开新屏幕/页面以及应用程序上的每个动画时,我会跳过 x 帧。这是我遇到问题的班级示例:

_buildContent(){
    return new Column(
      crossAxisAlignment: CrossAxisAlignment.center,
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        new InkWell(
          onTap: (){
            Navigator.push(context, new MaterialPageRoute(builder:
                (context) => new LoginScreen()));
          },
          child: new Container(
            height: 150.0,
            width: 150.0,
            child: new Image.asset("images/logo.png", fit: BoxFit.cover,),
          ),
        ),
        new Container(
          margin: const EdgeInsets.all(16.0),
          child: new CircularProgressIndicator(
              value: null,
              strokeWidth: 1.0,
              valueColor: new AlwaysStoppedAnimation<Color>(
                  Colors.white
              )
          ),
        )
      ],
    );
  }

我假设跳过 x 帧警告是由进度对话框引起的?我有另一个屏幕(登录屏幕),它在打开时将小部件动画到位,动画移动得很慢,我几乎可以看到正在渲染的每一帧。是否有在线教程可以帮助解决这个问题或只是了解 Dart 的异步编程?


调试模式

  • 启动速度很慢
  • 启动时闪烁
  • 应用程序大小很大。

因为调试模式具有热重载。

当你创建release apk时https://flutter.io/docs/deployment/android https://flutter.io/docs/deployment/android

你可以找到

  • 快速启动
  • 发射过程中不眨眼
  • 应用程序尺寸小(但比普通 Android 应用程序大)

EDIT

https://flutter.io/docs/testing/ui-performance#debug-flags https://flutter.io/docs/testing/ui-performance#debug-flags

调试模式启用不在配置文件或发布版本中运行的额外检查(例如断言),并且这些检查可能会很昂贵。 调试模式还以与发布模式不同的方式执行代码。调试版本会在应用程序运行时“及时”(JIT) 编译 Dart 代码,但配置文件和发布版本会在应用程序加载到之前预编译为本机指令(也称为“提前”或 AOT)。装置。 JIT 可能会导致应用程序暂停进行 JIT 编译,这本身可能会导致卡顿。

https://github.com/flutter/flutter/wiki/Flutter%27s-modes https://github.com/flutter/flutter/wiki/Flutter%27s-modes

设备上的调试模式(包括模拟器、仿真器):打开世界上所有的断言,包括所有调试信息,启用所有调试器辅助工具(例如观测站)和服务扩展。优化快速开发/运行周期。不针对执行速度、二进制大小或部署进行优化。由 flutter run 使用。使用 sky/tools/gn --android 或 sky/tools/gn --ios 构建。有时也称为“检查模式”或“慢速模式”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

颤动应用程序缓慢 的相关文章

随机推荐