日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Flutter Android/iOS包大小分析

發布時間:2025/5/22 Android 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Flutter Android/iOS包大小分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:騰訊 - 小德(任曉帥 koudleren)

前言

Flutter幾乎從一開始就被人詬病SDK的包太大,真的是這樣子嗎?

1. Flutter 構建產物分析

分析Flutter的構建產物,發現一個完整的Flutter 模塊包含三個部分,分別是:

  • sdk大小:so庫(Android)/Framework(iOS)
  • Dart代碼的構建產物(Android和iOS)
  • Channel 層的Android代碼(iOS這部分在構建產物中)
  • 資源文件
  • 1.1 so庫(Android)/FrameWork(iOS)

    這部分是Flutter engine的so,包含各種平臺的so,在release和debug模式下包含的so不同,造成包大小不同,這塊對Flutter包大小影響很大。

    Android包含的如下:

    1. 在debug模式下,so庫打入了x86_64、x86、arm64-v8a,總共22.28M 2. 在release模式下,so庫只有armeabi-v7a,總共3.46M 復制代碼

    iOS包含的如下:

    1. 在debug模式下,Flutter的Framework包含x86_64、armv7、arm64,總共31M 2. 在release模式下,Flutter的Framework包含armv7、arm64,,總共13.8M 復制代碼

    1.2 Dart代碼的構建產物(Android和iOS)

    在debug模式下,Android和iOS在Dart的JIT模式下生產中間產物,因為不是生產環境,我們就不分析了,主要看release模式下的區別。

    在release模式下,Android生成的是Arm code,iOS生成的是Framework,這個Framework包含armv7和arm64

    Dart代碼的構建產物,依賴于業務的規模,業務越大,資源文件越多,這塊所占的空間也會越大。

    1.3 Channel 層的Android代碼

    第三個就是用來橋接Flutter和Native的Channel層代碼,這部分代碼所占的空間很小,幾乎可以忽略不計;

    1.4 資源文件

    第四個是資源文件,包括圖片等資源,這塊大小主要取決于業務,如果業務的資源很多,這塊也很難減下去,木有辦法的;

    Flutter 真的很大嗎?

    經過以上分析, Android release模式下,sdk大小為3.46M

    iOS release模式下,sdk大小為13.8M

    • 所以并沒有想象中的那么大

    結論

    在Release模式下

    • Android 為 3.46M
    • iOS為 13.8MM

    總結

    以上是生活随笔為你收集整理的Flutter Android/iOS包大小分析的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。