加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Flutter 实现原理及在马蜂窝的跨平台开发实践

发布时间:2019-03-27 13:02:53 所属栏目:教程 来源:电商客户端团队
导读:一向以来,跨平台开拓都是困扰移动客户端开拓的困难。 在马蜂窝旅游 App 许多营业场景里,我们实行过一些主流的跨平台开拓办理方案, 好比WebView 和 React Native,来晋升开拓服从和用户体验。但这两种方法也带来了新的题目。 好比行使 WebView 跨平台方

官方默认的构建剧本在 Flutter 1.0.0 版本存在 Bug——最终的产品中会穷乏 flutter_shared/icudtl.dat 文件,导致 App Crash。今朝的办理方法是将这个文件复制到工程的 assets 下( 在 Flutter 最新 1.2.1 版本中这个 Bug 已被修复,可是 1.2.1 版本又呈现了一个 UI 渲染的题目,以是只能继承行使 1.0.0 版本)。

d. Android Native 平台工程集成,增进下面依靠设置即可,不会影响 Native 平台开拓的同窗

  1. implementation 'com.mfw.app:MerchantFlutter:0.0.5-beta' 

Flutter 和 iOS、Android 的交互

行使平台通道(Platform Channels)在 Flutter 工程和宿主(Native 工程)之间转达动静,首要是通过 MethodChannel 举办要领的挪用,如下图所示:

图12 :Flutter与iOS、Android交互

为了确保用户界面不会挂起,动静和相应是异步转达的,必要用 async 修饰要领,await 修饰挪用语句。Flutter 工程和宿主工程通过在 Channel 结构函数中转达 Channel 名称举办关联。单个应用中行使的全部 Channel 名称必需是独一的; 可以在 Channel 名称前加一个独一的「域名前缀」。

Flutter 与 Native 机能比拟

我们别离行使 Native 和 Flutter 开拓了两个列表页,以下是页面结果和机能比拟:

iOS 比拟(机型 6P 体系 10.3.3):

Flutter 页面:

Flutter 实现道理及在马蜂窝的跨平台开拓实践

iOS Native 页面:

Flutter 实现道理及在马蜂窝的跨平台开拓实践

可以看到,从行使和直观感觉都没有太大的不同。于是我们收罗了一些其他方面的数据。

Flutter 页面:

Flutter 实现道理及在马蜂窝的跨平台开拓实践

iOS Native 页面:

Flutter 实现道理及在马蜂窝的跨平台开拓实践

Flutter 实现道理及在马蜂窝的跨平台开拓实践

其它我们还比拟了商家端接入 Flutter 前后包体积的巨细:39Mb → 44MB

在 iOS 机型上,流通度上没有什么差别。从数值上来看,Flutter 在 内存跟 GPU/CPU 行使率上比原生略高。 Demo 中并没有对 Flutter 做更多的优化,可以看出 Flutter 整体来嗣魅照旧可以做出靠近于原生的页面。

下面是 Flutter 与 Android 的机能比拟。

Flutter 页面:

Flutter 实现道理及在马蜂窝的跨平台开拓实践

Android Native 页面:

Flutter 实现道理及在马蜂窝的跨平台开拓实践

从以上两张比拟图可以看出,不思量其他身分,纯真从机能角度来说, 原生要优于 Flutter,可是差距并不大,并且 Flutter 具有的跨平台开拓和热重载等特点极大地节减了开拓服从。而且,将来的热修复特征更是值得等候。

殽杂栈打点

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读