安卓跨平台开发实践为何没有大规模发展?宜信普惠为你解答

2023-06-28 15:53:58

 

随着移动应用的不断普及,各个公司都在寻找可以在多种设备上运行的跨平台应用解决方案,这里跨平台主要是指安卓和iOS。除了Android和IOS两大平台,各大巨头都开发了自己的跨平台框架,比如Facebook的React-Native,阿里的Weex,Cordova,以及今年Google开发者大会上介绍的Flutter框架。

这些框架各有优缺点,但是到目前为止都没有大规模的推广开来,在宜信普惠看来,主要有以下几个原因:

1、开发者生态圈还不够成熟,RN是三大跨平台框架关注人最多,生态最活跃的框架, 但是到目前为止也没有到1.0版本(最新的release是0.57.8),更别说后来者的Weex和Flutter了。生态不成熟,意味着开发文档少,可以使用的开源控件少,比如在RN上想做一个最基本的下拉刷新和上拉加载更多的listview都比较费劲。Weex已经贡献给Apache,已经很久没有更新release了。Flutter现在还在beta版本,其发展还有待观察。

2、性能问题,虽然这几大框架都对渲染性能做了优化,但是相比原生还是差一些,RN和weex都自己实现来了一个浏览器内核(JSCore),因此多了一层js解析,渲染会慢一些。比如RN的listview如果数据量太大就会出现卡顿。Flutter虽然自带绘制引擎,但是跟原生比起来还是有一些距离。

3、兼容问题,虽然这三大平台的初衷都是为了跨平台(Write/Learn once, run everywhere),但是实际应用中还是需要耗费很多的精力去兼容和适配,比如RN在Android低端机器上表现就不尽如人意,连曾经RN的坚实拥护者Airbnb都宣布放弃使用RN了。

4、开发集成成本,三个框架都需要学习新的语言React,vue,dart,weex的最大优势就是入门简单,但是版本迭代慢,RN上手门槛高,开发调试难度大,集成RN和weex框架还会加入很多so文件,增加安装包的大小至少在10M左右,这还不包括第三方的library。Flutter因为刚出来,应用的还不多,其效果还有待观察。

但是移动开发的跨平台是大势所趋,可以节省开发成本,提高开发效率,迅速响应业务变化,现在主流的应用还是使用H5和原生的通信来实现跨平台的开发。Android和IOS平台都有自己内置的浏览器内核webkit框架,跨平台的本质就是用H5/JS编写的代码能够分别运行在Android和IOS的WebView中,从而实现了一套代码两个平台都能运行的目的。

在Android平台上要实现Native和JS的通信主要通过WebViewClient和WebChromeClient两个类来实现。WebViewClient的作用是帮助WebView处理各种通知,事件请求,其主要的方法有:onLoadResource,onPageStart,onPageFinished,onReceiveError,shouldOverrideUrlLoading等方法;WebChromeClient处理JS页面的事件响应,比如网页中的对话框,网页图标,网站标题,网页的加载进度等事件,对应的响应方法有onJsAlert, onJsConfirm, onJsConsole, onProgressChanged, onReceiveIcon,onReceiveTitle等。

以上就是安卓跨平台开发实践为何没有大规模发展的原因,想要了解更多,欢迎关注宜信普惠,我们将竭诚为你服务。


以上就是关于《安卓跨平台开发实践为何没有大规模发展?宜信普惠为你解答》的全部内容,本文网址:https://www.7ca.cn/baike/48323.shtml,如对您有帮助可以分享给好友,谢谢。
标签:
声明

排行榜