当前位置:网站首页>亲测flutter打包apk后大小,比较满意
亲测flutter打包apk后大小,比较满意
2022-06-30 17:28:00 【可口码农】
flutter我虽然知道的早,但是还没有使用过,今天就第一次打包Android APK试试大小,因为选择flutter我必须考虑他的包大小,如果它打包apk比react native还要大我肯定不考虑。
在打包之前我猜apk应该会很大,起码30m左右,但是当我把release包build出来后,我大吃一惊,很满意!
首次安装 flutter SDK是3.0.2,是当前最新版。
安装配置好环境变量PATH后,重新命令行界面,就可以通过 flutter doctor命令确认已经安装成功。
flutter doctor然后使用flutter create learn_flutter
flutter create learn_flutter项目几秒就创建成功,这点比react-native体验好多了。
然后我开始flutter run运行,竟然不成功!大概错误内容是:
License for package Android SDK Build-Tools 30.0.3 not accepted.
我以为是我的工具安装不对,但是我怎么搜都找不到30.0.3的工具呀!网上回答都是sdk tool中安装,可我找不到30.0.3的版本。
后来发现是flutter 的android sdk配置路径问题。应该一下这样的命令来配置flutter应用的android sdk
flutter config --android-sdk /path/to/android/sdkflutter config --android-studio-dir /path/to/android/studio重要提醒:千万不要在 android项目的根文件 local.properties中配置。我折腾了一个小时就是因为在这里像安卓项目和react native那样配置android sdk路径。每一次运行 flutter run命令,这个配置又恢复到不正确的路径了。
正确配置好 android adk路径后,就可以在模拟器里运行了,我尝试改了改代码,能够正确在模拟器里看到效果!确定这步没问题了。
我准备开始 build release版本的 apk,但是我碰到新问题了,结果大概是需要java11来打包apk。!不管了,我安装java11.
安装好java11后(环境变量替换了java8)需要在Android工程的gradle.properties文件中添加如下jdk的路径
org.gradle.java.home=path/Java/jdk-11.0.15.1并修改Android工程app\build.gradle文件。

好了,终于可以build apk了。build release apk需要以下命令。
flutter build apk --target-platform android-arm,android-arm64flutter build apk --target-platform android-arm,android-arm64 --split-per-abi命令说明以下:
⾸先 flutter build apk 表⽰当前构建 release 包
后⾯ android-arm,android-arm64,android-x64则是指定⽣成对应架构的release包
最后的 --split-per-abi则表⽰告知需要按照我们指定的类型分别打包,如果移除则直接构建包含所有 CPU 架构的 Apk 包。
--obfuscate:开启混淆操作
--split-debug-info=:将因混淆⽣成的 map 符号表缓存到此位置
第一串命令打包出来的 armv8a和armv7a的单指令集apk大约是5.8M,我很惊讶!这算小的了。

第二串命令打包出来的armv8a和armv7a指令集合并在一个apk的大小是 10.6M,我一样很惊讶!很满意!

最终得出一个结论,flutter 3.0 release apk 和 react native 0.68 release apk 大小是差不多的。
关注我站,www.zchawang.cn,一个小工具站。
边栏推荐
- Merged binary tree of leetcode
- 剑指 Offer 16. 数值的整数次方
- php利用队列解决迷宫问题
- 剑指 Offer 17. 打印从1到最大的n位数
- Alexnet of CNN classic network (Theory)
- PHP uses queues to solve maze problems
- Digital intelligent supplier management system solution for coal industry: data driven, supplier intelligent platform helps enterprises reduce costs and increase efficiency
- Vulnerability recurrence ----37. Apache unomi Remote Code Execution Vulnerability (cve-2020-13942)
- Redis - persistent RDB and persistent AOF
- Rust 操控大疆可编程无人机 tello
猜你喜欢

Merged binary tree of leetcode

iCloud照片无法上传或同步怎么办?

autocad中文语言锁定只读警报怎么解决?

Type ~ storage ~ variable in C #

腾讯持久化框架MMKV原理探究

Redis - persistent RDB and persistent AOF

LRN local response normalization

医疗行业企业供应链系统解决方案:实现医疗数智化供应链协同可视

Geoffrey Hinton:我的五十年深度学习生涯与研究心法

Electronic components bidding and purchasing Mall: optimize traditional purchasing business and speed up enterprise digital upgrading
随机推荐
Alexnet of CNN classic network (Theory)
如何做好软件系统的需求调研,七种武器让你轻松搞定
Summary of methods for offline installation of chrome extensions in China
MySQL advanced - basic index and seven joins
ForkJoinPool
「经验」浅谈聚类分析在工作中的应用
Communication network electronic billing system based on SSH
Multipass中文文档-设置图形界面
Hcip (Huawei Senior Network Security Engineer) (Experiment 8) (MPLS basic experiment)
PHP uses queues to solve maze problems
Only black-and-white box test is required for test opening post? No, but also learn performance test
Partition marble (multiple knapsack + binary optimization)
云安全日报220630:IBM数据保护平台发现执行任意代码漏洞,需要尽快升级
Rhai - Rust 的嵌入式脚本引擎
Compilation problems and solutions of teamtalk winclient
Elastic 8.0: opening a new era of speed, scale, relevance and simplicity
电子元器件行业在线采购系统精准匹配采购需求,撬动电子产业数字化发展
depends工具查看exe和dll依赖关系
mysql for update 死锁问题排查
C# Winform程序界面优化实例