写点什么

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:531169

评论

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

如何高效利用YashanDB提升数据管理能力

数据库砖家

如何进行YashanDB数据库性能基准测试

数据库砖家

如何配置YashanDB实现数据高可用架构

数据库砖家

如何通过YashanDB创建自定义数据报告?一步步指南

数据库砖家

如何通过YashanDB减少数据冗余与重复?

数据库砖家

炸裂!Dify新版发布:内置MCP双向支持!

王磊

如何高效使用YashanDB数据库的日志系统?

数据库砖家

如何通过YashanDB实现定制化的数据报告

数据库砖家

快速入门YashanDB数据库自动化运维工具

数据库砖家

巧用YashanDB数据库实现海量数据快速查询

数据库砖家

容量规划与扩展策略:YashanDB数据库企业应用

数据库砖家

如何高效利用YashanDB数据库进行数据挖掘

数据库砖家

如何进行YashanDB系统的故障排查与恢复?

数据库砖家

如何通过YashanDB实现动态数据分析

数据库砖家

蜜雪冰城海外财务共享(一期)成功上线!

用友BIP

如何进行YashanDB数据库的安全审计

数据库砖家

YashanDB数据库版本升级与迁移指南

数据库砖家

如何通过YashanDB实施弹性计算环境的数据管理

数据库砖家

如何评估YashanDB的长期可维护性及稳定性?

数据库砖家

如何通过YashanDB处理非结构化数据

数据库砖家

如何通过YashanDB实现快速数据访问与高性能查询

数据库砖家

域名锁是什么?有必要安装域名锁吗?

防火墙后吃泡面

如何通过YashanDB丰富企业的客户数据

数据库砖家

如何通过YashanDB实现数据监控与预警?

数据库砖家

如何进行YashanDB的安全审计

数据库砖家

“智能体”帮你的报销化繁为简,智能共享助力财务转型

用友BIP

超详细攻略:教你3分钟在华为开发者空间构建专属Agent

华为云开发者联盟

从代码审计到生态共建 解码鼎夏智能的产业跃升密钥

极客天地

快速掌握YashanDB的查询优化技巧

数据库砖家

如何通过YashanDB实现跨部门数据协同

数据库砖家

通过YashanDB实现数据的分布式存储

数据库砖家

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