專案開發程序中,要求使用Flutter來進行混合開發,可以將整個Flutter專案以module的形式引入到Android原生專案,優點是方便Flutter模塊的除錯作業,缺點是需要專案組中所有的成員都去配置flutter環境成本太大,專案靈活性差;還有一種是以Flutter產物AAR的形式集成,優點是其他專案組成員不需要搭建flutter環境,專案靈活性好,缺點是不利于Flutter模塊的除錯(每次都得重新打包aar并集成的專案中編譯);
最終我們選型以產物AAR形式集成到原生專案中;以下是總結的經驗:
為了方便專案管理,在專案的根目錄下,創建一個用于存放Flutter AAR資源檔案的檔案夾,例如命名為“Flutterlibs”
使用flutter的模塊中增加以下依賴
dependencies {
// ...
debugImplementation 'com.example.flutter_module:flutter_debug:1.0'
profileImplementation 'com.example.flutter_module:flutter_profile:1.0'
releaseImplementation 'com.example.flutter_module:flutter_release:1.0'
}
情景一:單個模塊使用flutter aar
1.需flutter專案執行flutter build aar或Build->Flutter->Build AAR
2.flutter專案根目錄的build檔案夾中會生成/host/outputs/repo檔案夾,
3.將repo檔案夾全部復制,粘貼到Flutterlibs目錄中
4.在使用flutter模塊的model中的build.gradle檔案中,repositories結構中增加如下
repositories {
......
maven {
url '..\\Flutterlibs\\repo'
}
maven {
url 'https://storage.flutter-io.cn/download.flutter.io'
}
}
5.若使用profile維度,則需要在buildTypes結構中增加如下,
buildTypes {
......
profile {
initWith debug
}
}
6.同步專案,運行
情景二:整個專案都可以使用flutter aar
只需將情景一中的代碼抽離到專案根目錄下的build.gradle檔案中,代碼如下
allprojects {
//String storageUrl = System.env.FLUTTER_STORAGE_BASE_URL ?: "https://storage.googleapis.com"// https://storage.flutter-io.cn國內使用這個,國外使用https://storage.googleapis.com
repositories {
......
maven {
url '..\\Flutterlibs\\repo'
}
maven {
url 'https://storage.flutter-io.cn/download.flutter.io'
}
}
}
如有疑問,歡迎留言交流~
如有不對,歡迎留言指出~
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/291674.html
標籤:其他
