浅析最近很火的react-native技术

转载自:https://blog.csdn.net/u012159964/article/details/49149287

作为一个IOS 原生开发人员,当听到有技术能支持跨平台IOS和安卓,并且能用JS写原生应用的时候,我被震惊了,于是开始了重学react-native 之旅,我是强忍着使用oc 或者swift 的冲动将react-native慢慢的学了一遍。 

React Native用iOS自带的JavaScriptCore作为JS的解析引擎,但并没有用到JavaScriptCore提供的一些可以让JS与OC互调的特性,而是自己实现了一套机制,这套机制可以通用于所有JS引擎上,在没有JavaScriptCore的情况下也可以用webview代替,实际上项目里就已经有了用webview作为解析引擎的实现,应该是用于兼容iOS7以下没有JavascriptCore的版本。

普通的JS-OC通信实际上很简单,OC向JS传信息有现成的接口,像webview提供的-stringByEvaluatingJavaScriptFromString方法可以直接在当前context上执行一段JS脚本,并且可以获取执行后的返回值,这个返回值就相当于JS向OC传递信息。React Native也是以此为基础,通过各种手段,实现了在OC定义一个模块方法,JS可以直接调用这个模块方法并还可以无缝衔接回调。

  所有的核心在于将OC中的接口封装起来然后暴露给JS调用,整个项目的思路是清晰的,就是使用JS调用原生的控件,把原生的控件组件化,然后统一在JS中渲染,这样在原生部分实际上只负责显示数据,显示样式,提高了原来WEBAPP的效率,从而使用户有了比之前更加良好的体验度。

整个流程:

整个项目通过RCTBridge 来连接JS和OC ,在OC中通过RCT_EXPORT_METHOD()将自己的接口暴露给JS然后再JS中调用原生接口中的方法。

    这个技术点是很好的,但是我估计不会有一个复杂APP全部都使用上react-native 做整个应用,充其量某个经常改动的部分使用这个技术,那么问题来了?

1、原生如何和JS进行交互?全部都封装成方法暴露出去么?

2、调用原生照相机、数据库,亦或者使用支付宝等第三方怎么办?

3、还是没有解决我们最想要的一套方案解决适配IOS和安卓的需求

   在问题2上面我想到了将原生的方法封装起来然后暴露给JS调用,实际上也能实现了,这些功能我估计facebook也回逐渐完善的,但是问题1 上面 ,如果将所有的方法封装在一起暴露给外面,我想这事不太好实现的,也比较麻烦,这些等等的问题给我感觉“造轮子”的难度不是一般的大。

  综合以上,我觉得如果在一些不那么复杂的应用中,或者只需要提供展示效果的页面中使用react-native 技术是非常实用的,但是如果其中有很复杂的功能,还是需要好好想想,毕竟现在react-native 这个轮子还不那么好用!!  

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
GPUDirect RDMA是一种高效的GPU通信技术。它通过直接内存访问(RDMA)来提高GPU与其他设备(如网络适配器和存储设备)之间的通信效率,减少了数据在主机内存和GPU内存之间的拷贝次数,大大提高了数据传输速度和性能。 GPUDirect RDMA的工作原理如下:首先,GPU和RDMA适配器联合使用PCIe(Peripheral Component Interconnect Express)总线直接进行通信,绕过CPU的参与,减少了数据的传输路径。其次,GPU通过RDMA适配器的引擎控制器,直接将数据从设备(如网络卡或存储设备)传输到GPU内存,或者将数据从GPU内存传输到设备,无需经过主机内存的拷贝。最后,GPU可以直接访问RDMA适配器的内存,进一步提高了数据传输的效率。 相比于传统的GPU通信技术,例如GPU Direct和P2P(Peer-to-Peer)通信,GPUDirect RDMA具有以下几个优点:首先,减少了CPU的参与,保证了数据传输的低延迟和高吞吐量。其次,减少了数据在主机内存和GPU内存之间的拷贝次数,减少了数据传输的延迟。再次,GPU直接与RDMA适配器通信,无需通过系统内存,提供了更高的带宽和更低的延迟。最后,GPUDirect RDMA还支持在多个GPU之间进行直接通信,提供了更强大的计算和通信能力。 总之,GPUDirect RDMA是一种高效的GPU通信技术,通过RDMA提供了直接内存访问的能力,减少了CPU的参与和数据在内存之间的拷贝次数,从而提高了数据传输的速度和性能。它为GPU与其他设备之间的通信提供了更高的带宽、更低的延迟和更强大的计算能力。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值