当前位置: 首页 > 知识库问答 >
问题:

如何优化Flutter App大小?

娄鹤轩
2023-03-14

我是本地Android开发者,我开始使用Flatter SDK。我开发了一个简单的应用程序,遵循官方的颤振文件。但是我发现调试应用的大小是46MB,对于这个简单的应用来说太大了。有没有办法优化应用程序的大小?因为Flatter应用程序的大小比原生Android应用程序大。

共有3个答案

燕嘉熙
2023-03-14

步骤1:压缩资产所有资产(例如:使用tinypng或任何其他选项)

第2步:删除未使用的资源

你可以从Android Studio轻松搜索未使用的资源。只需按Ctrl-Alt-Shift-i并键入“未使用的资源”(不带引号)。这将执行lint。运行lint命令(以及IDE中的其他东西)的超级简单的方法。或者在Android Studio菜单中

第三步:把这段代码放到app/build.gradle

参考此链接了解更多关于Android ABIS(https://developer.android.com/ndk/guides/abis)

///注意:只有工作构建发布应用程序(导致调试运行问题,所以在调试模式下运行时进行评论)android{defaultConfig{minSdkVersion 19......//在应用程序处于调试模式时评论此代码ndk{abiFilters armeabi,armeabi-v7a,ARM64-V8A" } } }

第4步:从pubspec中删除未使用的插件。亚马尔

步骤5:使用以下命令构建应用程序包

flutter build appbundle
flutter build appbundle --target-platform android-arm,android- 
arm64,android-x64

您可以使用ProGuard规则

buildTypes{release{minifyEnabled true//add this proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard rules.pro'//add this signingConfig signingConfigs.release//这是release的默认值}

在android主目录中,您可以找到proguard-rules.pro如果不是新的-

把这个代码在该文件中,也适当的插件规则,你已经添加在你的pubspec.yaml注:添加所有的proGuard这是需要的插件,否则Android应用程序将无法正常工作

## Flutter wrapper
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.** { *; }
-keep class io.flutter.util.** { *; }
-keep class io.flutter.view.** { *; }
-keep class io.flutter.** { *; }
-keep class io.flutter.plugins.** { *; }
# -keep class com.google.firebase.** { *; } // uncomment this if you are 
using firebase in the project
-dontwarn io.flutter.embedding.**
-ignorewarnings

也去你的gradle。属性并添加:

extra-gen-snapshot-options=--obfuscate

在你的应用/构建中。格拉德尔

buildTypes {
    release {
        minifyEnabled true // added previously
        shrinkResources true // add this
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 
'proguard-rules.pro' // added previously
        signingConfig signingConfigs.release // added previously
    }
}
郭修平
2023-03-14

首先,使用以下方法在发布模式下构建应用程序:

在你的终端:flatterbuild——release

或者只需指定目标:
对于Android Apk:颤振构建Apk--release
对于Android应用程序包:颤振构建应用程序包--release
对于IOS:颤振构建IOS--release

默认情况下,flatter run编译为调试模式。这就解释了应用程序的巨大规模。调试模式(热重新加载、Dart开发工具等)vs发布模式(简单应用)

默认情况下flatter buildbuild for release模式。所以你可以只做flatterbuild

使用--spill-debug-info标志可以大大减少代码大小。有关使用此标志的示例,请参阅混淆Dart代码。

您还可以做一些其他事情来使您的应用程序更小:

  • 删除未使用的资源
  • 尽量减少从库中导入的资源
  • 压缩PNG和JPEG文件

你可以在这里了解更多关于颤振应用程序大小的信息

勾渝
2023-03-14

颤振调试应用程序非常大,要优化应用程序,你应该使用

flutter build apk (flutter build defaults to --release).

准备Android应用发布

准备发布iOS应用程序

 类似资料:
  • 本文向大家介绍如何进行大表优化?相关面试题,主要包含被问及如何进行大表优化?时的应答技巧和注意事项,需要的朋友参考一下 当MySQL单表记录数过大时,数据库的CRUD性能会明显下降,一些常见的优化措施如下: 1. 限定数据的范围 务必禁止不带任何限制数据范围条件的查询语句。比如:我们当用户在查询订单历史的时候,我们可以控制在一个月的范围内; 2. 读/写分离 经典的数据库拆分方案,主库负责写,从库

  • 问题1[主]:是否可以优化? 我尝试过:避免使用非常大的数字的操作。所以我决定使用辅助数据。例如,我将转换为,其中。 问题:但是似乎比快十倍。这里是我的测试:

  • 主要内容:业务场景,如何通过缓存优化查询接口,基于大数据离线平台进行缓存预热,本地缓存框架:Ehcache今天给大家来分享一个知识,那就是平时我们开发系统的时候,如何运用 Ehcache 这款本地缓存框架,把我们的查询性能大幅度提升优化,甚至让很多查询操作性能提升到 100 倍以上,下面就来讲讲这个话题。 业务场景 首先给大家引入一个场景,就是假设咱们写的一套 Java 系统要跑一个几百行的大 SQL 从 MySQL 里查询数据,这个查询是不是会速度非常的慢? 那肯定是了,这种几百行大 SQL

  • 如何清理linux不需要的软件包

  • 所以我能够将我的捆绑包大小从13mb减少到681 mb 我做了一些优化,比如正确的生产配置,优化库,比如lodash,用date fns替换momentjs。 现在,大多数软件包都不超过1mb,并且大多数都是由npm安装的依赖项。 在这里使用webpack-bundle-Analyzer就是我的bundle现在的样子 你们觉得我能做些什么来减少包裹的大小吗?也许删除jquery并转到vanilla

  • 如何在标准C++/C++11(无POSIX函数)中优化std::ifstream和std::ofstream的读写速度?(1<-由于有几个问题,这些数字标识了不同点) 我不知道缓冲区的确切作用,所以你能确认一下吗: 用于读取:文件的大部分预加载在内存中(因此缓冲区大小定义了这大部分的大小)(2) 写入:数据写入内存,一旦缓冲区满了,数据就从内存传输到文件系统(3) 如何设置std::ifstrea