活动公告当前位置:帝豪娱乐注册 > 活动公告 > >

跨平台 App开发技术方案

  [温馨提示]:为提升本公司的优质服务,软捷科技APP定制开发公司开展网上咨询预约服务,您可以通过点击咨询或拨打400免费电话(400-829-2729)与产品经理直接沟通,以获得有效帮助!

  跨平台 App 开发有哪些技术方案,各有哪些优缺点?是否需要从原生 App 开发切换到这些跨平台的方案上来?切换过去能节省多少工作量?

  跨平台 App开发技术方案

  Hybrid 技术

  这类技术,使用 HTML/CSS/JavaScript 等前端技术来构建 App。利用 JSBridge 获取部分访问原生 API 的能力。最有代表性的是 PhoneGap,它是 Adobe 收购一家开源创业公司后推出的平台。这个链接有 PhoneGap 的一些历史信息。

  这类平台的目标是保持大部分代码跨平台共用,涉及到平台不共用的 API (比如 GPS 接口,iOS 和 Android 肯定是不一样的),则由 PhoneGap 平台通过 JSBridge 提供。除此之外,还有一些明显的优点:

  开发效率较高:使用 HTML/CSS/JavaScript 构建界面的效率要比原生 App 速度快很多。而且前端开发有一堆现成的框架和开源库可以直接使用。

  即时更新:有 Bug 可以快速更新,不需要发布新 App,只需要更新服务器上更新相关的 HTML/CSS/JavaScript 即可。可以绕过 AppStore 的上架认证时间。

  开发门槛低:对于前端开发工程师,可以快速转岗,开发出可用的 App,不需要对 iOS 平台和 Android 平台有太深入的了解。

  这类平台的硬伤是:

  单线程:JavaScript 在 WebView 里执行时是单线程的。对系统并发能力有较大的影响。

  性能低:大概只能达到原生 App 70% 的流畅度。

  这篇文章对几个热门的 Hybrid 平台进行了对比和介绍。

  为了克服 Hybrid 的缺点,目前工程应用上典型的做法是,以原生 App 为主,把易变的逻辑,以及界面,不涉及性能瓶颈的部分使用基于 WebView 的 Hybrid 技术来开发。

  帝豪2娱乐准原生平台

  为了解决 Hybrid 的问题,一些其他的方案逐步流行起来,最火的要算 React-Native,它是 Facebook 基于其前端框架 React之上构建的跨平台 App 开发构架。

  这类平台的特点是,只使用 JavaScript 来构建界面,但实际上构建出来的所有界面都是系统原生控件。这是和 Hybrid 平台最大的区别。在 Hybrid 平台,一个按钮就是 HTML 构建出来的,但在 React-Native 平台,一个按钮是在各自的平台 (Android/iOS) 上以原生控件的形式渲染出来的。

  这类平台最大的优势是:

  跨平台开发界面及业务逻辑:以前端工程师熟悉的构架和技术,以一致的方式构建界面和业务逻辑。

  即时更新:可以把业务逻辑放在 JavaScript 里,这样就可以直接在线更新功能。

  性能较高:比 Hybrid 性能高,大概能达到原生 App 90% 的流畅度。

  开发效率较高:可以使用前端技术快速构建界面。比如,熟悉 React 框架的人,可以无障碍地在 React-Native 下构建界面和业务逻辑。

  这类平台和 Hybrid 相比,跟原生平台靠得更近一些,更多地依赖原生平台的一些知识。比如,很多机制,其实还是要分 iOS 平台和 Android 平台的。即无法做到真正的跨平台开发,在利用 React-Native 这类构架时,还是需要对目标平台有较深入的理解。

  除了 React-Native 之外,比较著名的还有 Weex 这是 alibaba 出品的一个构架,它是基于最近火热的前端构架 Vue.js 的。另外一个是 NativeScript,这是基于老牌的前端构架 Angular

  之上构建的。

  大家注意到,这些热门平台都是基于一个热门的前端构架来构建的。从这一点也可以看到这种类型的构架的目标,就是让前端开发人员可以在其原有知识体系里,快速开发 App ,并且使用自己熟悉的语言 JavaScript 来处理业务逻辑。至于核心的代码以及性能相关的代码,还是需要使用原生编程语言 (OC for iOS, Java for Android) 来编写,不同的平台最终向上层提供一致接口。这样,上面界面部分代码,甚至一些逻辑代码就可以跨平台共用了。

  原理上,JavaScript 怎么样和原生平台交互呢?

  JavaScript 是脚本语言,可以在运行时解释并执行。这类平台上写出来的 JavaScript 代码最终是由原生平台里面的 JavaScript 引擎来负责执行的。那么 JavaScript 如何调用原生代码呢?答案是利用语言的元编程能力,OC 和 Java 都具备一定的元编程能力,这样 JavaScript 只要知道原生平台的类名称,函数名称,就可以调用到原生平台的这个函数了。 (责任编辑:admin)

上一篇:帝豪2娱乐注册:回答这3个问题,完善你的交互设

下一篇:在线客服QQ显示未启用,该如何解决?

推荐内容