• 亲测flutter打包apk后大小,比较满意


    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/sdk
    flutter 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-arm64
    flutter 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,一个小工具站。

  • 相关阅读:
    flowable,199boge,进阶,06完成
    通讯网关软件026——利用CommGate X2ORACLE-U实现OPC UA数据转入ORACLE
    hadoop基础之MapReduce的学习
    Node学习十四 —— 使用node创建HTTP请求
    elasticsearch的安装及使用
    淘宝数据分析在商业活动的具体应用
    Socks5代理怎么样?安全性高吗?
    远程办公会不会在未来五到十年成为普遍现象?
    2-31 基于matlab的微表情识别
    4K投影仪为什么比1080P投影仪更值得买?答案显而易见!
  • 原文地址:https://blog.csdn.net/qq996150938/article/details/125453997