欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Flutter打包APK的幾種方式小結(jié)

 更新時間:2025年03月31日 10:33:15   作者:小魚人愛編程  
Flutter打包不同于RN,Flutter可以在Android?Studio里編寫Flutter代碼并最終打包為APK,本篇主要闡述涉及到的幾種打包方式,通過圖文結(jié)合的方式介紹的非常詳細,需要的朋友可以參考下

前言

Flutter打包不同于RN,F(xiàn)lutter可以在Android Studio里編寫Flutter代碼并最終打包為APK,本篇主要闡述涉及到的幾種打包方式。
通過本篇文章,你將了解到:

Android原生打包APK方式

Flutter通過原生工程打包方式

Futter工程打包方式

Flutter打包產(chǎn)物分析

1. Android原生打包APK方式

以原生Android工程為例。

  • 設(shè)置編譯模式

選擇變體,通常有debug和release模式(可以新增不同的模式),默認是debug模式。
我們平時點擊Run到設(shè)備上就是debug模式。

  • 開始構(gòu)建

選擇后開始構(gòu)建,因為前面選的是debug模式,因此此時打出來的包就是debug包。

  • 查看構(gòu)建產(chǎn)物

可以看出,build目錄下有個debug.apk,說明打包成功。

當然如果要打release包,首先要在build.gradle(module級別)設(shè)置簽名,而后再按上述的步驟將Build Variant 切換成release模式,接下來的操作與debug模式打包一樣的。

release產(chǎn)物如下:

此處沒有設(shè)置簽名,因此打出來的包有unsigned字樣。

2. Flutter通過原生工程打包方式

打開一個Flutter工程,其目錄結(jié)構(gòu)如下:

可以看出,根目錄下有個android的目錄,使用Android Studio 打開該目錄:

這就是一個可正常運行的Android 工程,在此處運行與在Flutter 工程里運行效果是一致的。
只不過Build Variant比普通的Android工程多了個profile模式(性能調(diào)試時使用,平時用不到)。

因此打開Flutter里的android工程,就可以像普通android工程一樣構(gòu)建、打包。

3. Futter工程打包方式

當然如果你不想既打開Flutter工程,又打開Android工程,其實Flutter工程里也可以編譯打包的,歸納為三種方式。

第一種:

查看產(chǎn)物:

注意:

此種方式默認是release模式

第二種:
命令行打包,在Android Studio Terminal里輸入如下命令

flutter build apk --debug //打debug包
flutter build apk --release //打release包

打包的產(chǎn)物依舊是如上flutter-apk目錄。

第三種:
如果嫌每次命令行輸入命令麻煩,而只想將包run在設(shè)備上,此時依然可以借助IDE。
編輯配置。

填上"--debug"表示run的是debug包。

同樣的,填上"--release"表示run的是release包。

最終配置界面顯示如下:

此時即可隨時run不同模式的包。

4. Flutter打包產(chǎn)物分析

debug、release模式下,F(xiàn)lutter業(yè)務(wù)代碼分別以什么樣的形式存在呢?

解壓apk,查看debug模式下的產(chǎn)物:

以.bin文件存在,支持JIT(Just-In-Time),有調(diào)試信息,支持熱重載。

JIT:

定義: JIT 是一種動態(tài)編譯技術(shù),在運行時將代碼從高級語言(如 Dart)即時編譯為機器碼。
用途:
主要用于開發(fā)階段,支持熱重載(Hot Reload)功能。
允許開發(fā)者快速查看代碼更改的效果,而無需重新啟動應用。
特點:
不需要提前編譯整個應用程序。
運行速度較慢,因為編譯是在運行時完成的。
占用更多內(nèi)存,適合開發(fā)環(huán)境而非生產(chǎn)環(huán)境

解壓,查看release模式下的產(chǎn)物:

最終是打包為了.so文件,支持AOT (Ahead-Of-Time )。 AOT :

定義: AOT 是一種靜態(tài)編譯技術(shù),在構(gòu)建階段將代碼從高級語言(如 Dart)提前編譯為原生機器碼。
用途:
主要用于生產(chǎn)環(huán)境,確保應用性能最優(yōu)。
編譯后的代碼可以直接運行在目標設(shè)備上,無需額外的虛擬機或解釋器。
特點:
提供更快的應用啟動時間和運行速度。
減少內(nèi)存占用。
不支持熱重載,但生成的二進制文件更小、更高效

以上就是Flutter打包APK的幾種方式小結(jié)的詳細內(nèi)容,更多關(guān)于Flutter打包APK的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論