写点什么

RTC Dev Meetup:Flutter 开发实战与前景展望(四)

  • 2019-11-30
  • 本文字数:1103 字

    阅读完需:约 4 分钟

RTC Dev Meetup:Flutter 开发实战与前景展望(四)

2、 和 ReactNative 很有侵入性相比, Flutter 就很巧妙了。


如下图所示,安装过的插件会出现在 .flutter_plugins 文件中,然后通过读取文件,动态在 setting.gradle 和 flutter.gradle 中引入和依赖:





所以这时候我们可以参考打包,修改我们的 gradle 脚本,利用 fat-aar 插件将本地 projcet 也打包的 aar 里。



3、混合开发的最大痛点是什么?


肯定是堆栈管理!!! 所以项目开发了 flutter_boost 来解决这个问题。


  • 堆栈统一到了原生层。

  • 通过一个唯一 engine ,切换 Surface 渲染显示。

  • 每个 Activity 就是一个 Surface ,不渲染的页面通过截图缓存画面。


flutter_boost 截止到我测试的时间 2019-05-16, 只支持 1.2 之前的版本


四、PlatformView

混合开发除了集成到原生工程,也有将原生控件集成到 Flutter 渲染树里里的需求。


首先我们看看没有 PlatformView 之前是如何实现 WebView 的,这样会有什么问题?


如下图所示,事实上 dart 中仅仅是用了一个 SingleChildRenderObjectWidget 用于占位,将大小传递给原生代码,然后在原生代码里显示出来而已。



这样的时候必定会代码画面堆栈问题,因为这个显示脱离了 Flutter 的渲染树,通过出现动画肯定会不一致。

4.1 AndroidView

AndroidView -> TextureLayer,利用 Android 上的副屏显示与虚拟内存显示原理。


共享内存,实时截图渲染技术。


存在问题,耗费内存,页面复杂时慢。


这部分因为之前以前聊过,就不赘述了

三、Flutter Web

RN 因为是原生控件,所以在 react 和 react native 整合这件事上存在难度。


flutter 作为一个 UI 框架,与平台无关,在 web 上利用的是 dart2js 的能力。 比如 Image


  • 因为 Flutter 是一套 UI 框架,整体 UI 几乎和平台无关,这和 React Native 有很大的区别。(我在开发过程中几乎无知觉)

  • 在 flutterweb 中 UI 层面与渲染逻辑和 Flutter 几乎没有什么区别,底层的一些区别如: flutterweb 中的 Canvas 是 EngineCanvas 抽象,内部会借助 dart2js 的能力去生成标签。

  • React Native 平台关联性太强,而 Flutter 在多平台上优势明显。我们期待官方帮我们解决大部分的适配问题。



Flutter 的平台无关能力能带来什么?

1、某些功能页面,可以一套代码实现,利用插件安装引入,在 web、移动 app、甚至 pc 上,都可以编译出对应平台的高性能代码,而不会像 Weex 等一样存在各种兼容问题。


2、在应用上可以快速实现“降级策略”,比如某种情况下应用产生奔溃了,可以替换为同等 UI 的 h5 显示,而这些代码只需要维护一份。


资源推荐


Github : https://github.com/CarGuo


RTC 开发者社区 : https://rtcdeveloper.com


本文转载自公众号声网 Agora(ID:shengwang-agora)。


原文链接:


https://mp.weixin.qq.com/s/GT3w6zjOmfh_0zRZkSkF6g


2019-11-30 16:531010

评论

发布
暂无评论
发现更多内容

AI口语考试APP的功能

北京木奇移动技术有限公司

AI智能体 软件外包公司 AI口语练习

仓库存储管理系统-贵金属(源码+文档+部署+讲解)

深圳亥时科技

阿里内部Spring Cloud Alibaba 手册, 面面俱到,太全了!

Summer

Java 程序员 面试 架构师 大厂

AI口语考试APP的技术难点

北京木奇移动技术有限公司

AI智能体 软件外包公司 AI口语练习

通过 TDengine 提升物联网平台性能的秘诀,联犀深度解析

TDengine

数据库 tdengine 时序数据库

解码“闺蜜机”的商业密码

脑极体

AI

2025 年低代码平台还存活哪些,低代码平台哪家强?

JEECG低代码

低代码 零代码 JeecgBoot 低代码平台比较 jeecg

百度安全获得中国信通院深度伪造视频检测服务评估优秀级

百度安全

淘宝直播间弹幕API接口(taobao.item_video_barrage)

tbapi

淘宝API接口 淘宝直播间弹幕接口 淘宝直播间数据接口 淘宝直播间弹幕API接口

JavaScript是按顺序执行的吗?聊聊JavaScript中的变量提升

不在线第一只蜗牛

JavaScript

2.5 亿美元融资加速升级,从子网到 Avalanche9000,Avalanche 想要改变什么

TechubNews

程序员面试必备的Java八股文,适合所有的Java求职者!

Summer

Java 程序员 面试 架构师 大厂

北京理工大学鲲鹏昇腾科教创新孵化中心成立  打造教育、科技、人才融合发展新标杆

极客天地

如何让 localStorage 数据实现实时响应

极限实验室

React LocalStorage web 开发

仓库存储管理系统-生产行业版本(源码+文档+部署+讲解)

深圳亥时科技

阿里云大模型矩阵:千问&Qwen解锁多元智能

测试人

软件测试

昇思市场份额将达30%,权威机构对中国AI框架市场最新预测

极客天地

批量重命名--我用火语言RPA写了个EXE可执行文件

火语言RPA

RPA 高效办公 批量重命名软件

RTC Dev Meetup:Flutter 开发实战与前景展望(四)_文化 & 方法_声网_InfoQ精选文章