速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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

评论

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

[数据分析实践]-Image Matching-2DTo3D-1

浩波的笔记

人工智能 机器学习 数据分析

Java 8 开始新增的 Optional 类 - Optional 对象中的异常

HoneyMoose

Redis「6」实现消息队列

Samson

学习笔记 Redis 核心技术与实战 5月月更

总工程师直播解析:隐私计算是什么,都有哪些核心技术和典型应用场景? | 第17 期

OpenAnolis小助手

隐私计算 龙蜥社区 sig 龙蜥大讲堂 海泰方圆

前端学习笔记(一):css学习笔记

恒山其若陋兮

5月月更

【活动预告】云上数字工厂与中小企业数字化转型创新论坛

阿里云弹性计算

数字化转型 中小企业 云盒

Java 8 开始新增的 Optional 类 - 检查 Optional 的值

HoneyMoose

零基础学Java第二节(运算符、输入、选择流程控制)

编程攻略

Java学习 5月月更

难对齐、难保障、难管理?一文了解字节跳动如何解决数据SLA治理难题

字节跳动数据平台

字节跳动 数据治理 SLA 数据研发

一文读懂Move2Earn项目——MOVE

小哈区块

linux之sudo使用技巧汇总

入门小站

Linux

Java 8 开始新增的 Optional 类 - Optional 中的方法

HoneyMoose

PolarDB-X 源码解读:DDL的一生(上)

阿里云数据库开源

数据库 阿里云 开源 分布式 polarDB

【刷题第 11 天】26. 删除有序数组中的重复项

白日梦

5月月更

在线TSV某一列提取下载

入门小站

工具

四、容器安全风险分析

穿过生命散发芬芳

云原生安全 5月月更

JavaWeb JDBC

Emperor_LawD

javaWeb JDBC 5月月更

企评家 | 梅花生物科技集团股份有限公司成长性评价简介

企评家

焱融看|2022 年存储自动化的 5 大趋势

焱融科技

云计算 分布式 云原生 高性能 文件存储

基于SVN的CICD调研方案

ZuccRoger

5月月更

Java 8 开始新增的 Optional 类 - 创建 Optional 对象

HoneyMoose

记一次简单易上手的内网渗透实战

网络安全学海

黑客 网络安全 信息安全 渗透测试 WEB安全

企评家 | 浙江永贵电器股份有限公司性评价简介

企评家

企评家企业大数据平台,助力企业刻画企业成长性画像

企评家

一文读懂Move2Earn项目——MOVE

西柚子

Vue数据响应Object.defineProperty

空城机

vue.js 5月月更

在线文本列表交集计算工具

入门小站

工具

企评家 | 如何评价企评家企业成长性评价系统?

企评家

【LeetCode】验证外星语词典Java题解

Albert

LeetCode 5月月更

看透说破:客户服务首解率(FCR)的迷思

龙国富

客户体验 首解率

ArrayList源码分析-迭代器

zarmnosaj

5月月更

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