阅读 12

Android跨平台技术方案比较

原生App

苹果2008年发布iOS,Google 2009年发布Android,它们的SDK是基于两种不同的编程语言Objective-C 和 Jave。现在又有了Swift和Kotlin。


上面是原生App的一个简单架构,开发人员直接调用平台SDK进行UI开发。由于语言及SDK的不同,所以开发人员必须为两个平台分别开发App。

WebView App

最早的跨平台方案是基于JaveScript 和 WebView的,像PhoneGap、Cordova、Ionic等。


UI通过WebView来显示html代码,系统服务则通过一个中间层桥接到JaveScript中去。

React Native

RN不仅桥接系统服务,也将系统UI也桥接到了JaveScript中,这样写出来的UI最终也会渲染成原生的控件。


如上图这样,UI的渲染是很频繁的,要使UI不卡顿,必须达到60Fps。但是桥接会花一定的时间。所以这样的架构有时候会有性能问题。

Flutter

Flutter使用Dart语言开发,Dart可以被编译(AOT)成不同平台的本地代码,让Flutter可以直接和平台通讯而不需要一个中间的桥接过程,从而提高了性能。



原文链接:https://www.jianshu.com/p/51e989500ca3


关注下面的标签,发现更多相似文章
评论