NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

评论

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

数字时代的自我呈现:探索个人形象打造的创新工具——FaceChain深度学习模型工具

汀丶人工智能

人工智能 计算机视觉 图像生成

运营SOP,高效运营的核心打法

用友BIP

数智营销

哪家强?Bitget Wallet vs Metamask 从安全性能角度全方位 PK

股市老人

【评测有奖】参加 SAE 2.0 产品评测,赢 Airpods 2 大奖!

阿里巴巴云原生

阿里云 Serverless 云原生

BigTime会是链游新的领航员吗?

币离海

蓝易云:linux iptables安全技术与防火墙

百度搜索:蓝易云

云计算 Linux iptables 云服务器

简洁的看图软件 XnViewMP激活中文最新版

胖墩儿不胖y

Mac软件 看图软件 图像编辑器

Mac平台视频后期合成和特效制作软件:Nuke 15

展初云

Mac Mac软件 视频后期制作 nuke

Zilliz X Dify.AI ,快速打造知识库 AI 应用

Zilliz

大模型 Zilliz LLM zillizcloud

合约跟单/交易所开发方案,合约跟单/交易所系统dapp开发(稳定版)丨源码规则详细

V\TG【ch3nguang】

合约量化/现货交易/合约跟单/秒合约/系统开发技术分析

V\TG【ch3nguang】

交易所开发(海外版)/交易所系统开发(案例详细)/交易所系统源码及demo

V\TG【ch3nguang】

GitHub爆赞,啃完这份500多页Java多线程笔记,阿里入职在望

程序员万金游

#java #程序员 #学习 #并发 #多线程

语音识别技术的优化与发展趋势

来自四九城儿

语音识别技术:从传统到现代的飞跃

来自四九城儿

合约跟单系统开发/跟单量化交易机器人/合约交易技术开发详情

V\TG【ch3nguang】

Linux和UNIX的关系及区别

智趣匠

全网最细-深度解析 Istio Ambient Mesh 流量路径

阿里巴巴云原生

阿里云 云原生 服务网格

软件开发人员 Kubernetes 入门指南|Part 2

SEAL安全

软件开发 kubernetes 运维 企业号10月PK榜

CSS小技巧之绘制心形图案

南城FE

CSS css3 前端 心形

如何有效改进erp管理系统?erp管理系统改进建议方向

优秀

ERP管理系统

财务共享中心的人员如何进行“选、育、用、留”?

用友BIP

财务共享

合约跟单/永续合约系统开发/交割合约/现货交易/Python技术编写

V\TG【ch3nguang】

LeetCode题解:1486. 数组异或操作,模拟,JavaScript,详细注释

Lee Chen

Swap去中心化交易所/系统开发技术/Swap智能合约交易所源码搭建

V\TG【ch3nguang】

基于 ACK Fluid 的混合云优化数据访问(五):自动化跨区域中心数据分发

阿里巴巴云原生

阿里云 云原生 ACK

DevEco Hvigor高效编译,构建过程新秘籍

HarmonyOS开发者

HarmonyOS

文心一言 VS 讯飞星火 VS chatgpt (111)-- 算法导论10.2 2题

福大大架构师每日一题

福大大架构师每日一题

Python 集合(Sets)2

小万哥

Python 程序员 软件 后端 开发

蓝易云:SSD固态硬盘和HDD机械硬盘服务器区别

百度搜索:蓝易云

Linux 运维 SSD 云服务器 HDD

Mac具有AI技术的创意图像编辑器Luminar Neo

展初云

Mac软件 AI技术图像编辑 图像编辑工具

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