小智 129
我用来减少应用程序大小的一种方法是使用;
flutter clean
Run Code Online (Sandbox Code Playgroud)
在我运行构建命令之前;
flutter build appbundle --target-platform android-arm,android-arm64
Run Code Online (Sandbox Code Playgroud)
当我在没有 clean 命令的情况下运行 build 命令时,我得到大约 32mb,但是如果我先运行 clean 命令,我得到大约 18mb
Vil*_*abs 26
颤动的团队在这里承认.
有对此的解释这里,引用相同的-
在2018年8月,我们测量了一个最小Flutter应用程序的大小(没有材质组件,只有一个中心小部件,使用flutter build apk构建),捆绑并压缩为发布APK,大约为4.7MB.
对于这个简单的应用程序,核心引擎大约是3.2MB(压缩),框架+应用程序代码大约是840KB(压缩),LICENSE文件是55KB(压缩),必要的Java代码(classes.dex)是57KB(压缩) ,(压缩的)ICU数据约为533KB.
当然,YMMV,我们建议您通过运行flutter build apk并查看build/app/outputs/apk/release/app-release.apk来测量您自己的应用程序.
此外,较大的应用程序,apk大小的相对差异可能会更小.颤振的头顶尺寸是固定的.
Bla*_*nka 12
首先检查这些:
如果你有太多的字体会严重影响 apk 的大小,flutter 也通过创建一个包来解决这个问题,让你从谷歌字体库中获取字体(很棒的包,让你可以访问如此多的字体和在任何地方使用的灵活性) . 在此处获取软件包并在此处阅读更多信息。
删除不需要的包/插件(虽然影响不大)。
删除未使用的资源
尽量减少从图书馆导入的资源
支持有限数量的屏幕密度
压缩 PNG 和 JPEG 文件
另请阅读:测量应用的大小
请注意这些:
如果您使用flutter build apk它构建您的 apk ,它将同时包含 arm-32 和 arm-64 apk(构建 apk 时,它会在控制台中显示)。如果您正在构建应用程序包,这不是问题,它的大小要小得多。
为了避免一个包含 arm-32 和 arm-64 的平面 apk,您可以使用以下两个命令分别构建它们:
flutter build apk --target-platform=android-arm
Run Code Online (Sandbox Code Playgroud)
以上将产生arm-32位apk。转到project -> build -> app -> release并将 apk 重命名为:app-armeabi-v7a-release.apk。
然后在 pubspec.yaml 中增加版本代码,flutter pub get然后执行以下操作:
flutter build apk --target-platform=android-arm64
Run Code Online (Sandbox Code Playgroud)
以上将产生arm-64位apk。转到project -> build -> app -> release并将 apk 重命名为:app-arm64-v8a-release.apk。
然后你可以分别提交两个apk(先提交较低的apk版本)。
因为,你必须通过增加版本代码运行两个命令,扑通过这个命令(扑> 1.5.4我认为),使得它更容易:flutter build apk --split-per-abi。该命令将增加第二个 apk 的 apk 版本代码,并为您提供两个重命名的 apk(请注意,此命令将生成更高版本的代码(例如:3222))。
来自文档:
从命令行:
Run Code Online (Sandbox Code Playgroud)Enter cd <app dir> (Replace <app dir> with your application’s directory.) Run `flutter build apk --split-per-abi` (The flutter build command defaults to `--release`.)此命令会生成两个 APK 文件:
Run Code Online (Sandbox Code Playgroud)<app dir>/build/app/outputs/apk/release/app-armeabi-v7a-release.apk <app dir>/build/app/outputs/apk/release/app-arm64-v8a-release.apk <app dir>/build/app/outputs/apk/release/app-x86_64-release.apk删除该
--split-per-abi标志会生成一个包含为所有目标 ABI 编译的代码的胖 APK。此类 APK 的大小比拆分的 APK 大,导致用户下载不适用于其设备架构的本机二进制文件
我还在某处听说,在最新的 Flutter 更新中,他们使 Flutter 应用程序的大小变得更小。还有一个额外的问题:https : //github.com/flutter/flutter/issues/16833
Hem*_*Raj 10
是的,使用flutter构建的apk或ipa的大小对于hello world应用程序来说最小约为7mb.这是因为,flutter发布了核心引擎,框架,ICU数据,LICENSE文件等及其构建输出,这对于运行的flutter应用程序是必需的.
您可以在此处查看常见问题解答,以了解有关构建时需要多大的内容的更多信息.
希望有所帮助!
iDe*_*ode 10
使用以下命令来分析哪个占用了您应用程序的大部分空间。
对于 Android 的 AppBundle:
flutter build appbundle --target-platform android-arm --analyze-size
flutter build appbundle --target-platform android-arm64 --analyze-size
flutter build appbundle --target-platform android-x64 --analyze-size
Run Code Online (Sandbox Code Playgroud)
对于 Android 的 APK:
flutter build apk --target-platform android-arm --analyze-size
flutter build apk --target-platform android-arm64 --analyze-size
flutter build apk --target-platform android-x64 --analyze-size
Run Code Online (Sandbox Code Playgroud)
对于 iOS:
flutter build ios --analyze-size
Run Code Online (Sandbox Code Playgroud)
对于 Linux:
flutter build linux --analyze-size
Run Code Online (Sandbox Code Playgroud)
对于 macOS
flutter build macos --analyze-size
Run Code Online (Sandbox Code Playgroud)
对于 Windows
flutter build windows --analyze-size
Run Code Online (Sandbox Code Playgroud)
这包括本机代码、资产,甚至是已编译 Dart 代码的包级细分。
如果您想查看它的可视化表示,请使用 DevTools。为此,在运行上一个命令之后,运行:
flutter pub global run devtools --appSizeBase=apk-code-size-analysis_01.json
Run Code Online (Sandbox Code Playgroud)
然后您将被定向到您的浏览器,您将在其中看到如下内容:
我已经使用此命令生成用于生产阶段的已发布 apk:
flutter build apk --split-per-abi
Run Code Online (Sandbox Code Playgroud)
输出的 apk 位于项目文件夹中:
[项目]/build/app/outputs/apk/release/app-armeabi-v7a-release.apk
在我的例子中,apk 的大小减少到5.3 MB(执行上述命令后)。之所以使用大尺寸(几乎> 50 MB),是因为它们包含了热重启或重新启动期间可能需要的所有内容,这会阻止您在代码中进行很小的更改时再次构建整个系统。
发布版本是您所有代码的真实结果,它们是真正的缩小应用程序,没有任何容器,然后您可以在谷歌商店上分发。
小智 7
TL;DR:使用命令flutter build apk --split-per-abi
运行后flutter build apk --release,我的 APK 大小为 16.2 MB。此 APK 称为 FAT APK,它是一个单一 APK,其中包含嵌入其中的多个 ABI 的二进制文件,并支持多种体系结构。通过flutter build apk --split-per-abidart 代码混淆,生成 3 个 APK 文件,我的 app.APK 的大小减少到 5.6 MB。
以下是解释相同内容的官方文档:https://docs.flutter.dev/deployment/android
小智 5
这是官方 Android 文档,使我的应用程序从 ~20mb 到 ~9mb
尝试Proguard推荐
链接: https: //developer.android.com/topic/performance/reduce-apk-size
| 归档时间: |
|
| 查看次数: |
22404 次 |
| 最近记录: |