1.flutter工程
在我们新创建一个flutter工程时,AS会有4种创建方式
- Flutter Application
用flutter开发应用,适用于新起的项目 - Flutter Plugin
lib包,包含flutter代码和原生代码 - Flutter Package
lib包,只包含flutter代码 - Flutter Moudle
用flutter开发一个模块,适用于老项目开发某个业务模块
2.老项目如何接入flutter
通过上面的介绍,老项目选择Flutter Moudle的模式
对于前端开发来说,可以通过flutter命令生成Flutter Moudle
flutter create -t module my_flutter
对于Android开发者,我们可以将这个Flutter Moudle编译成一个aar包来使用
步骤1:生成aar包
执行以下命令
cd .android/
./gradlew flutter:assembleDebug
在.android/Flutter/build/outputs/aar/路径下会生成flutter-debug.aar
步骤2:gradle配置
普通的aar包集成方式添加到app中
repositories {
flatDir {
dirs 'libs' // aar文件目录
dirs '../extrenal/zxing/libs'
}
}
implementation(name: 'flutter-debug', ext: 'aar')
步骤3:代码调用
Application中初始化
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
FlutterMain.startInitialization(this);
}
}
创建一个Activity集成自FlutterActivity
public class MainFlutterActivity extends FlutterActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GeneratedPluginRegistrant.registerWith(this);
}
}
启动这个Activity,这样就会跳转至Flutter Moudle的默认页面了
public void jump_flutter() {
Intent intent = new Intent(this, MainFlutterActivity.class);
startActivity(intent);
}
遇到的坑
1.出现了crash
解决办法
./gradlew flutter:assembleDebug 替换为 ./gradlew assembleDebug
两个包打出来,发现前者缺少了部分文件
- 包大小问题
debug下,发现aar包大小为23.8MB
release下,发现aar包大小为5.2MB
从上图可以看出,debug包会包含3种类型so库,而release只包含arembi-v7a类型的so库
3.打开Flutter界面会黑屏问题
debug包会黑屏,release的包则没有这问题