flutter基础认知

2019-03-28  本文已影响0人  sofarsogoo_932d

1.flutter工程

在我们新创建一个flutter工程时,AS会有4种创建方式

flutter工程.png

2.老项目如何接入flutter

通过上面的介绍,老项目选择Flutter Moudle的模式
对于前端开发来说,可以通过flutter命令生成Flutter Moudle

flutter create -t module my_flutter
flutter_moudle工程结构.png

对于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

flutter_aar包崩溃.png

解决办法

./gradlew flutter:assembleDebug  替换为  ./gradlew  assembleDebug

两个包打出来,发现前者缺少了部分文件

  1. 包大小问题

debug下,发现aar包大小为23.8MB
release下,发现aar包大小为5.2MB

flutter_aar_debug包目录结构.png flutter_aar_release包目录结构.png

从上图可以看出,debug包会包含3种类型so库,而release只包含arembi-v7a类型的so库

3.打开Flutter界面会黑屏问题
debug包会黑屏,release的包则没有这问题

上一篇下一篇

猜你喜欢

热点阅读