多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 原生开发与跨平台技术 ### 原生开发 原生应用程序是指某一个移动平台(比如iOS或安卓)所特有的应用,使用相应平台支持的开发工具和语言,并直接调用系统提供的SDK API。 原生开发有以下主要优势: * 可访问平台全部功能(GPS、摄像头); * 速度快、性能高、可以实现复杂动画及绘制,整体用户体验好; 主要缺点: * 平台特定,开发成本高;不同平台必须维护不同代码,人力成本随之变大; * 内容固定,动态化弱,大多数情况下,有新功能更新时只能发版; 随着移动互联网高歌猛进,在很多业务场景中,传统的纯原生开发已经不能满足日益增长的业务需求。主要表现在: * 动态化内容需求增大;当需求发生变化时,纯原生应用需要通过版本升级来更新内容,但应用上架、审核是需要周期的,这对高速变化的互联网时代来说是很难接受的,所以,对应用动态化(不发版也可以更新应用内容)的需求就变的迫在眉睫。 * 业务需求变化快,开发成本变大;由于原生开发一般都要维护Android、iOS两个开发团队,版本迭代时,无论人力成本,还是测试成本都会变大。 根据原理,主要分为三类: * H5 + 原生(Cordova、Ionic、微信小程序) * JavaScript 开发 + 原生渲染 (React Native、Weex) * 自绘UI + 原生 (Qt for mobile、Flutter) ## Hybrid技术简介 ### H5 + 原生 这类框架主要原理就是将 App 中需要动态变动的内容通过HTML5(简称 H5)来实现,通过原生的网页加载控件WebView (Android)或 WKWebView(iOS)来加载(以后若无特殊说明,我们用WebView来统一指代 Android 和 iOS 中的网页加载控件)。 H5 部分是可以随时改变而不用发版,动态化需求能满足;我们称这种 **H5 + 原生** 的开发模式为**混合开发** 。 目前国内各家公司小程序应用层的开发技术栈是 Web 技术栈,而底层渲染方式基本都是 WebView 和原生相结合的方式。 ### 混合开发技术点 混合开发中,H5代码是运行在 WebView 中,而 **WebView** 实质上就是一个**浏览器内核**,其 JavaScript 依然运行在一个**权限受限的沙箱中**,所以对于**大多数系统能力都没有访问权限**,如无法访问文件系统、不能使用蓝牙等。所以,对于 H5 不能实现的功能,就需要原生去做了。 混合框架一般都会在原生代码中预先实现一些访问系统能力的 API , 然后暴露给 WebView 以供 JavaScript 调用。这样一来,WebView 中 JavaScript 与原生 API 之间就需要一个通信的桥梁,主要负责 JavaScript 与原生之间传递调用消息,而消息的传递必须遵守一个标准的协议,它规定了消息的格式与含义,我们把依赖于 WebView 的用于在 JavaScript 与原生之间通信并实现了某种消息传输协议的工具称之为 WebView JavaScript Bridge , 简称 **JsBridge**,它也是混合开发框架的核心。 ### 总结 混合应用的优点是动态内容是 H5,Web 技术栈,社区及资源丰富,缺点是性能体验不佳,对于复杂用户界面或动画,WebView 有时会不堪重任。 ## React Native、Weex JavaScript开发 + 原生渲染 的跨平台框架原理。