【问题标题】:How should I basically improve flutter application performance?我应该如何从根本上提高flutter应用性能?
【发布时间】:2021-03-11 05:55:03
【问题描述】:

好的,所以这对你来说可能是一个长篇阅读,但对于像我这样的新手来说可能会解决很多问题。 好的,现在直截了当,我应该如何提高性能,同时从 firestore 加载一堆列表数据并防止应用程序崩溃。 这就是我发生的事情,我正在开发一个送餐应用程序,到目前为止,这个应用程序中有大约 50 家餐厅,发生的事情是,许多低预算手机(特别是 vivo)没有承担负载,而且应用程序崩溃了,所以我限制了一次加载的文档数量,但这实际上影响了用户体验,这里有竞争对手比我们快得多,我不知道他们使用了什么技术,但他们是在没有任何加载时间的情况下即时加载 98 家餐厅,而且我也尝试在后台加载数据,但是应用程序崩溃了,所以现在我被限制文档数量所困扰,但我该如何改进?目前首页包含10张网络图片卡、3张渐变颜色的资产图片栈卡和5家餐厅的列表,随着用户向下滚动会增加,但加载数据不够快。有人建议我加快速度还是我必须更改数据库?

【问题讨论】:

    标签: firebase flutter google-cloud-firestore flutter-layout


    【解决方案1】:

    我确实在2020年自己找到了解决方案,崩溃和速度慢的原因是图像,大图像。

    【讨论】:

      【解决方案2】:

      不确定您是否还需要答案,但我相信您的问题与一次加载所有视图有关。

      如果您的应用仅在加载太多结果时在启动时崩溃,很可能您没有使用ListView.builder 异步加载所有视图。

      我给你的建议如下:

      1. 使用ListView.builder延迟加载您的 UI。这只会为屏幕上可见的视图分配内存。
      2. 仔细检查您是否只加载了一次数据。您没有共享任何代码,但我遇到过一次这个问题,我的Future 每次状态为小部件将重建。
      3. 尽可能使用stateless 小部件。将您的小部件拆分为可重用的组件,并制作尽可能多的const 无状态小部件。

      如果您想要详细的示例,可以查看this article 中的提示编号 4。

      【讨论】:

        【解决方案3】:

        如果您担心应用程序在发布模式下的性能,您可以缩小应用程序,它使用不同的技术来提高应用程序的效率,方法是从应用程序中删除未使用的代码(称为缩小)和许多其他技术(如混淆)缩短类名和方法,您可以查看此链接以获取更多信息https://developer.android.com/studio/build/shrink-code

        【讨论】:

        • 我已经删除了未使用的代码,我认为问题可能出在 firestore,因为昨天我更换了 googleservices.json 并且查询比以前更快。
        【解决方案4】:

        所以,我认为您的应用程序很慢,因为当应用程序发生变化时,它会一次又一次地呈现所有小部件,从而降低应用程序的速度。一些基本的解决方案是:

        1- 对永不改变的变量使用const。 (例如:const Color colorPrimary = Color(0xffaabbcc));

        2- 使用Provider 包来加载和存储你的数据,这样你就可以在任何地方使用你的数据。此外,它会阻止所有小部件呈现。它只呈现使用该数据的小部件。 (例如,如果您不每次都更改您的 AppBar 标题,则您不想渲染 AppBar

        3- 将您的大部件分成单独的小部件。它使您的项目管理变得容易。

        4- 也许您的图片很大,而您的应用无法快速加载它们,然后它就会崩溃。使它们的尺寸更小。 (例如:256x256 而不是 512x512)

        5- 加载数据时使用延迟加载。也许您的应用程序尝试加载所有数据一次,这会使您的应用程序变慢。使用延迟加载,在用户向下滚动之前不会加载大部分数据。 (我想你已经在使用它了,但我只是想提一下)

        这些是可能的解决方案。

        【讨论】:

        • 我正在使用所有这些解决方案,1)每个小部件上的 Const 关键字可能,2)具有 baseview 架构的提供程序,3)我已经划分并定义了许多可能的小部件并将它们保存在另一个文件中, 4) 是的,我正在这样做
        • @HassanAnsari 如果您在调试模式下运行您的应用程序,那么不用担心,它会在发布模式下运行得更快
        • 我说的是发布版本?
        猜你喜欢
        • 2012-10-20
        • 2020-05-27
        • 2013-10-15
        • 1970-01-01
        • 2016-12-02
        • 1970-01-01
        • 2021-11-10
        • 2010-11-08
        • 2011-02-09
        相关资源
        最近更新 更多