• flutter 与 android 混合开发


    现有的混合开发方式,都是存flutter项目在android系统或者iOS上面跑。
    但是,实际情况是,我们需要在一个成熟的native项目上面,跑几个flutter页面,逐步的进行flutter的融合,并且看情况来进行是否取代native的页面。
    以下都是基于flutter version:Flutter 1.12.13+hotfix.5 • channel unknown • unknown source
    建议使用最新版本。

    1.android项目上集成flutter页面

    之前很多都是手动的方式,由于flutter版本迭代迅速,很难一把就搞定。
    现在官方出了自动的方案,一把到位。
    参考google官方链接,通过androidstudio的方式,自动集成。
    https://flutter.dev/docs/development/add-to-app/android/add-flutter-screen?tab=custom-activity-launch-kotlin-tab

    2.实际踩得坑

    2.1 FlutterActivity

    这个页面在那里,那里也找不到,在flutter的库里面,还有2个???,这是什么case?

    <activity
      android:name="io.flutter.embedding.android.FlutterActivity"
      android:theme="@style/LaunchTheme"
      android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
      android:hardwareAccelerated="true"
      android:windowSoftInputMode="adjustResize"
      />
    

    先不要管那么多,按照文档把这段code放在app的manifest里面,run,居然可以跑起来,这个页面在那里,在flutter库里面。
    这个是新的版本的位置,以前也有一个 ,包名不一样。

    2.2 android和flutter的交互

    这个时候,不需要打开2个studio的工程,android app可以跑起来,flutter项目支持热加载,简直爽爆了,but,我要交互怎么办?MethodChannel 怎么定义,现在这个页面,在库里面,怎么改?
    改不了,在库里当然改不了。

    class XXXActivity:FlutterActivity() {
     override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
            //xxx
        }
    }
    

    如上,可以自己定义一个Activity继承自FlutterActivity,这个时候,如上,就能拿到flutterengine,然后就可以开始进行交互了。
    但是,这个时候,fluuter功能默认跑的还是FluterActivity,所以这个时候的修改,只能从新run整个android项目。当然纯UI的修改,还是可以单独运行flutter看到效果。

    3.https://pub.dev/

    这算是官方的三方库大全
    之前参考同事的flutter项目,发现不能编译,but,这哥们前2天才刚刚编译过,demo跑的飞起,什么情况?
    后来发现,我的flutter版本升级了,也就是pub上面的库,一定要看清楚兼容的flutter版本。flutter更新太快了,每个库都要单独支持。

    这是我遇到的坑,后续还会推出其他flutter系列文章。

    更多内容:demanmath
    公共号:

  • 相关阅读:
    Android开发之漫漫长途 XVII——动画(续)
    Android开发之漫漫长途 XVII——动画
    Android开发之漫漫长途 XVI——ListView与RecyclerView项目实战
    Android开发之漫漫长途 XV——RecyclerView
    Android开发之漫漫长途 XIV——ListView
    .net core 发布IIS502错误
    读取加密秘钥文件失败
    MVC项目发布IIS访问不了
    a标签的onclick和href事件的区别
    文件上传
  • 原文地址:https://www.cnblogs.com/deman/p/12255906.html
Copyright © 2020-2023  润新知