Flutter实现原理及在马蜂窝的跨平台开发实践
官方默认的构建剧本在 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 平台开拓的同窗
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 页面: iOS Native 页面: 可以看到,从行使和直观感觉都没有太大的不同。于是我们收罗了一些其他方面的数据。 Flutter 页面: iOS Native 页面: 其它我们还比拟了商家端接入 Flutter 前后包体积的巨细:39Mb → 44MB 在 iOS 机型上,流通度上没有什么差别。从数值上来看,Flutter 在 内存跟 GPU/CPU 行使率上比原生略高。 Demo 中并没有对 Flutter 做更多的优化,可以看出 Flutter 整体来嗣魅照旧可以做出靠近于原生的页面。 下面是 Flutter 与 Android 的机能比拟。 Flutter 页面: Android Native 页面: 从以上两张比拟图可以看出,不思量其他身分,纯真从机能角度来说, 原生要优于 Flutter,可是差距并不大,并且 Flutter 具有的跨平台开拓和热重载等特点极大地节减了开拓服从。而且,将来的热修复特征更是值得等候。 殽杂栈打点 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |