在Flutter發佈了1.12版本之後 , 在原生程序中集成flutter的方式也有了改變 , 於是重新走一遍流程.
本次操作基於以下版本:
Flutter 1.12.13+hotfix.5 • channel stable
Android Studio 3.6
Android集成Flutter的意義
有時一次全部在Flutter中重寫整個應用程序是不切實際的。在這種情況下,Flutter可以作爲庫或模塊集成到現有的應用程序中。然後可以將該模塊導入到Android或iOS(當前受支持的平臺)應用中,以在Flutter中呈現應用UI的一部分。或者僅運行共享的Dart邏輯。
通過Android Studio來集成Flutter
創建一個原生Android應用
當然如果你已經有現成的App準備嵌入Flutter,也可以使用, 但我還是建議再創建一個應用來走一遍流程,
我這裏直接新建了一個文件夾 , 在該文件夾內新建了一個Android應用.
目錄爲:
FlutterBoostDemo \ AndroidBoost
限制支持的架構
Flutter當前僅支持爲armeabi-v7a和arm64-v8a AOT編譯的庫。
使用abiFilters Android Gradle插件API來限制APK中支持的架構。
這樣做可以避免丟失libflutter.so運行時崩潰,例如
在原生項目的app\build.gradle中添加以下代碼:
### 支持java8
因爲Flutter使用了Java8的功能, 所以這裏我們的原生Android應用也要支持java8.
創建flutter module
如果沒有flutter module
, 可以在這裏選擇下面的選項,
否則的話可以選擇import Flutter Module
來導入你自己的flutter module
編譯過程完成之後, 會在Android應用的下級目錄下生成一個flutter_module的文件夾:
FlutterBoostDemo\AndroidBoost\flutter_module_boost
通過這種方式創建的mudule, Android Studio插件會自動將您的Android項目配置爲添加Flutter模塊作爲依賴項,並且App也會重新編譯完成。
現在Andoid Studio顯示的樣子是這樣的:
看到左上角這個Android
了嗎? 如果這個視窗下看不到flutter項目的話,就切換到Project Files
視窗下.
突然發現如果使用Android Studio 需要我們做的很少 , 如果是要手動來引入的話,就會複雜的多.
可以參考一下內容:官方的手動集成教程
如果新建的flutter module無法build 提示如下的話:
可以修改settings.gradle:
集成FlutterBoost
在Flutter項目中添加依賴項。
打開pubspec.yaml並將以下行添加到依賴項:
androidx branch
flutter_boost:
git:
url: 'https://github.com/alibaba/flutter_boost.git'
ref: '1.12.13'
support branch
flutter_boost:
git:
url: 'https://github.com/alibaba/flutter_boost.git'
ref: 'task/task_v1.12.13_support_hotfixes'
推薦使用androidx分支 , 所以這裏我依賴的是上面的.
在app的build.grade中添加依賴:
OK,到這裏就已經完成了FlutterBoost的集成了,下面就是一些路有跳轉和參數傳遞相關的東西了.