移动开发技术分析--原生、跨平台开发

原生开发与跨平台开发

原生开发:指某一个移动平台的应用,使用相应平台支持的开发工具和语言,并直接调用系统提供的SDK API。比如:Android原生应用就是指使用Java或Kotlin语言直接调用Android SDK开发的应用程序;iOS原生应用就是指通过Objective-C或Swift语言直接调用iOS SDK开发的应用程序。

优势:

  • 可访问平台全部功能(GPS、摄像头);
  • 速度快、性能高、可以实现复杂动画及绘制,整体用户体验好;

缺点:

  • 开发成本高,不同平台需要不同人员维护代码;
  • 动态化弱,有新功能更新时只能发版(跨平台开发热更新);

跨平台开发 :指使用某一套混合开发框架,可以进行编译到Android和IOS两个平台运行。主要分为三类:

  • H5+原生(Cordova、Ionic、微信小程序
  • JavaScript开发+原生渲染 (React Native、Weex、快应用)
  • 自绘UI+原生(QT for mobile、Flutter)

1.H5+原生混合开发

   主要原理就是将APP的一部分需要动态变动的内容通过H5来实现,通过原生的网页加载控件WebView(Android)或WKWebView(iOS)来加载。

  H5代码是运行在WebView中,WebView实质上就是一个浏览器内核,对于大多数系统能力都没有访问权限,如:无法访问文件系统、不能使用蓝牙等。

优点:

  • 动态内容是H5,web技术栈,社区及资源丰富

缺点:

  • 性能不好,对于复杂用户界面或动画,WebView不堪重任 

2.JavaScript开发+原生渲染 

(1)React Native (简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,目前支持iOS和Android两个平台。RN使用Javascript语言,类似于HTML的JSX,以及CSS来开发移动应用。

(2)Weex是阿里巴巴于2016年发布的跨平台移动端开发框架,最大的不同是语法层面,Weex支持Vue语法和Rax语法,Rax 的 DSL语法是基于 React JSX 语法而创造。

(3)快应用是华为、小米等国内9大主流手机厂商共同制定的轻量级应用标准,目标直指微信小程序。采用JavaScript语言开发,原生控件渲染。

优点:

  • 采用Web开发技术栈,社区庞大、上手快、开发成本相对较低
  • 原生渲染,性能相比H5提高很多
  • 动态化较好,支持热更新

缺点:

  • 渲染时JavaScript和原生之间通信,会因为通信频繁导致卡顿 
  • 渲染依赖原生控件,不同平台的控件需要单独维护

3.自绘UI+原生

  Flutter是Google发布的一个用于创建跨平台、高性能移动应用的框架。Flutter和QT mobile一样,都没有使用原生控件,相反都实现了一个自绘引擎,使用自身的布局、绘制系统。

小结

三种跨平台开发技术对比:

发布了20 篇原创文章 · 获赞 1 · 访问量 2805

猜你喜欢

转载自blog.csdn.net/baidu_27603429/article/details/105651554