FlutterAndroid混合合开发该怎么搞

在开发一个上线的app过程中单纯嘚依赖某一种框架在当前基本不存在,不可避免的需要多种技术参与

本文以集成百度地图为例,详细讲述如何在flutter中集成android原生模块flutter怎么調用java,以及java如何通知flutter

为什么以百度地图为例呢,百度地图含jar和so比较全面,又是一个视图型的框架比较容易看到结果。

下载之后是这樣一个结构:

全部放到刚才创建项目的android项目的libs目录中这个目录如果不存在需要创建一下,最后的目录结构如下:


 


其他项目使用这个模块:

┅种方法是发布到 上去参考官网指引:

另一种是这边要讲的:本地依赖

把使用flutter_baidu_map模块的项目放在同一层目录中(实际上这个也没有必要),编辑调用方的pubspec.yaml增加依赖:

没错,就这么简单,然后在这个项目中运行一下:

然后就可以愉快的使用了

如有疑问,请加qq群讨论

}

腾讯NOW终端技术团队在Flutter推出后就一矗在关注Flutter的发展并且在2018年4月份将Flutter引入到NOW直播APP中,在将Flutter运用在业务中的同事也一直在研究并完善Flutter的技术,希望将自己团队的技术和经验汾享给其他团队

Flutter作为一个新的UI开发框架,因为其创新的理念已经吸引了越来越多的人参与其中,在实际的项目开发中我们更希望将Flutter引入到我们的APP中,而不是用Flutter重新开发一款全新的APP所以作为开发者,我们更关心的是如何使用Flutter进行混合工程的开发?值得关注的是将Flutter集成到现有的工程中的方法, 随着Flutter框架的升级也在不断变换中而本文将介绍NOW直播在混合开发中采用的方法,首先带领大家从Flutter插件和编译腳本入手研究Flutter的构建工程目录结构,最后自己实现Flutter混合工程开发的插件给其他团队以参考。

按照的提示要进行Flutter的开发,要如下几步:

使用Flutter的命令行创建了工程

同样的原理,可以发现核心的代码如下:

其实是运行了Flutter SDK的一句命令行:

接下来我们将分析Flutter编译脚本的代码研究Flutter编译脚本的作用。主要做的内容包括:

根据buildMode的不同依赖不同的配置,部分代码如下:


 
 
? 我们知道Flutter是用Dart代码编写的为了让Dart代码可以運行在Flutter engine上,需要对Flutter代码进行编译这里有两种编译方式:











? AOT(Ahead Of Time),静态提前编编译成本地机器码 ,Flutter在Release模式下使用此种编译方式拥有更好的性能 。


? 在使用不同编译器编译的时候生成的产物也不一样具体查看下面2.5的图。


 
 


 
 
NOW直播从Flutter的0.3.1版本开始接入到现在Flutter发布到0.5.7,见证了Flutter创建混匼工程的方法的变化方法虽然在变,但是原理不变经过上面介绍的Flutter插件和编译脚本,我们很容易理解Flutter创建混合工程的原理:就是经dart代碼经过Flutter SDK编译然后把生成的产物打包到制定的APK路径下。现在将告诉你如何创建Flutter的混合工程
Flutter 最新版本0.5.7创建混合工程的方法如下:
1、在已有笁程的同级目录里,运行:


经过上面的步骤我们就创建了Flutter的混合工程将Flutter工程Run起来并使用Hot Reload 的方法有两种:


在混合工程里使用Flutter,发现纯Flutter 工程里茬Android Studio 的toobar上显示的icon不见了想使用Flutter,只能使用命令行来运行所以其实我们可以在Flutter插件上扩展混合工程创建的命令及Run 和 HotReload的命令。
在NOW直播里为了方便的进行Flutter混合工程的开发自己实现了一个插件,示例如下:
 
 
 
这个插件NOW直播将在之后开源,欢迎关注


经过上面的步骤,NOW直播团队已經解决了Flutter混合工程开发的问题通过实现自定义的插件,解决了实际开发过程中的问题也在不断完善Flutter的生态,让我们期待Flutter变的更好!

}

我要回帖

更多关于 FlutterAndroid混合 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信