“得移动端者得天下”,移动端取代PC端,成为了互联网行业最大的流量分发入口,因此不少公司制定了“移动优先”的发展策略。

为了帮助读者更好地学习WEEX,本节将对React Native、Weex和Flutter等主流的跨平台方案进行简单的介绍和对比。

React Native

React Native (简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的React框架在原生移动应用平台的衍生产物,目前主要支持iOS和安卓两大平台。

RN使用Javascript语言来开发移动应用,但UI渲染、网络请求等均由原生端实现。具体来说,开发者编写的Javascript代码,通过中间层转化为原生控件后再执行,因此熟悉Web前端开发的技术人员只需很少的学习就可以进入移动应用开发领域,并可以在不牺牲用户体验的前提下提高开发效率。

作为一个跨平台技术框架,RN从上到下可以分为Javascript层、C++层和Native层。其中,C++层主要用于实现动态连结库(.so),作为中间适配层桥接,实现js端与原生端的双向通信交互,如下图所示是RN在Android平台上的通信原理图。

在RN的三层架构中,最核心的就是中间的C++层,C++层最核心的功能就是封装JavaScriptCore,用于执行对js的解析。同时,原生端提供的各种Native Module(如网络请求,ViewGroup控件模块)和JS端提供的各种JS Module&

移动跨平台技术方案总结相关推荐

  1. 移动跨平台技术方案浅析

    随着互联网产品逐渐兴起,越来越多产品体验从线下搬到了线上,尤其是移动互联网产品相关,所以很多企业就会更加重视降本增效,以最快的速度推出质量满意度高.用户体验性好的产品,那么就顺势催生了很多跨端跨平台方 ...

  2. 牛赞:音视频前端跨平台技术应用

    点击上方"LiveVideoStack"关注我们 Flutter是近两年大火的跨终端框架,实时音视频因为疫情的缘故也越来越融入到人们的日常工作生活中,如线上会议.在线教育等.两者结 ...

  3. 移动互联网这十年,跨平台技术的演进及 Flutter 的未来

    作者 | 袁辉辉 责编 | 郭   芮 移动跨平台技术演进 1. 引言 移动互联网发展十余年,伴随着 Android.iOS 等智能手机的不断普及,移动端已逐步取代 PC 端,成为兵家必争之地.正所谓 ...

  4. 跨平台开发方案的三个时代

    跨平台开发从本质上讲是为了增加业务代码的复用率,减少因为要适配多个平台带来的工作量,从而降低开发成本.在提高业务专注度的同时,能够为用户提供一致的用户体验,实现"多快好省"的效果. ...

  5. Flutter 沙龙回顾 | 跨平台技术趋势及字节跳动 Flutter 架构实践

    11 月 23 日,字节跳动技术沙龙 | Flutter 技术专场 在北京后山艺术空间圆满结束.我们邀请到字节跳动移动平台部 Flutter 架构师袁辉辉,Google Flutter 团队工程师 J ...

  6. 从各大跨平台技术说开去,我们真的需要虚拟 DOM 吗?

    前言 你有没有留意到?优秀的解决方案思想都是相通的:当你研究 Flutter 渲染原理时会发现 Flutter Rendering 层类似于 React 中的虚拟 DOM,当你去看 Weex 工作原理 ...

  7. 关于跨平台技术选型的思考

    关于跨平台技术选型的思考 在我们进行技术架构和技术选型的时候,我们经常犯一个错误就是,试图找一个完美的解决方案即:坑少.功能多. 但是,无数次惨痛经历仍然难以记住这个事实,就是,好的架构是需要迭代的. ...

  8. 移动端跨平台技术总结

    概述 曾经大家以为在手机上可以像桌面那样通过 Web 技术来实现跨平台开发,却因为性能或其他问题而放弃,不得不针对不同平台开发多个版本.这也违背了跨平台开发的初衷.而React Native让跨平台移 ...

  9. Electron屏幕截图的技术方案MacWindows

    导读:Electron比你想象的更简单也比你想象中更强大!如果你可以建一个网站,你就可以建一个桌面应用程序.Electron 是一个使用JavaScript, HTML和CSS等Web技术创建原生程序 ...

最新文章

  1. JAVscript对象
  2. Java操作Kafka创建Topic、Producer、Consumer
  3. java电话计费系统_java 连接数据库开发的电话计费管理系统
  4. HDU1251 统计难题 【trie树】
  5. Asp.NET Core 如何使用ElasticSearch和Kibana创建仪表板
  6. 扩展您的JPA POJO
  7. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_1_两种获取Stream流的方式...
  8. Yii在控制层中引入模版进行渲染的几种方式。
  9. 锋利的jQuery系列一
  10. if or函数套用_5个IF函数操作,让你轻松掌握条件判断和嵌套运用
  11. 在Codesys用ST语言基于数组实现栈LIFO数据结构详细说明+代码实例
  12. hdu 1705[皮克定理]
  13. Android 高仿微信实时聊天 基于百度云推送
  14. 2023年非证券类投资银行业研究报告
  15. 2004-10-30 周六
  16. 嵌入式物联网项目实践1.1
  17. APP软件项目迭代开发
  18. Android 使用MediaPlayer播放音频详解
  19. 用户数据权利请求响应
  20. Red Hat Enterprise Linux5使用光盘镜像文件安装gcc软件包流程

热门文章

  1. 一天一大 leet(二叉树的序列化与反序列化)难度:困难 DAY-16
  2. 人人都可以是产品经理
  3. 【论文阅读】Towards Graph Self-Supervised Learning with Contrastive Adjusted Zooming
  4. L298N双路电机驱动模块使用指南
  5. 生活:与小周一起参加广运会
  6. 同样的内核,为何linux干净稳定,而android臃肿又乌烟瘴气
  7. 将一张图片填充到另一张图片上
  8. 过电流继电器怎么正确选型
  9. linux 卸载ogg,ubuntu下卸载realplay
  10. 运用爬虫和分词库统计nga某板块标题词频