
混合开发技术是目前移动开发领域的焦点技术,也是 APICloud 企业互联网化生态平台的核心技术,本文在介绍跨平台技术分类同时将进一步深度揭示 APICloud 混合开发技术的技术原理。
混合开发技术是目前移动开发领域的焦点技术,也是 APICloud 企业互联网化生态平台的核心技术,本文在介绍跨平台技术分类同时将进一步深度揭示 APICloud 混合开发技术的技术原理。
跨平台技术的分类
目前跨平台技术领域分为两个发展方向:
第一个是 HTML5 + Native 混合方向;
第二个是中间语言编译方向,其中 APICloud 和小程序都属于前者。
HTML5 + Native 混合,也就是我们通常所说的混合开发。
这种模式的开发主体是 HTML5,但整个 app 的架构是 Native 架构:通过 HTML5 快速实现 app 的 UI 布局、产品业务逻辑,在开发过程中涉及 HTML5 无法实现或者体验不好的功能,则借助 Native 模块来实现。
混合开发在保证 app 渲染效率和用户体验的同时,能够降低 app 开发成本和复杂度,提高 app 开发效率。
中间语言编译方向,代表产品为 React Native(RN),Xamarin 以及 Google 刚刚发布的 Flutter。
如何理解中间语言编译?
以 RN 为例,传统的 app 开发,要求开发者使用 Android 和 iOS 原生技术-Java、Object-C、C/C++等进行开发,而 RN 的开发过程则要求开发者使用 JS 进行编码输出 app,但在 app 执行过程中,JS 又映射回到安卓和 iOS 原生层面执行。借助 JS 快速实现编码,翻译为原生代码执行,这就是中间语言编译方向。
Xamarin 则要求使用微软自己的语言 C#,对于大部分开发者而言,C# 的学习成本比较高且 Xamarin 需要付费使用,因此它目前在国内应用比较少。Flutter 的开发语言为 Dart,它是谷歌发明的编程语言,这个语言很有趣,它的语法类似于 C 语言,又将 JS 和 Java 的一些设计思想以及语法规则融合了进去。Dart 语言在此前应用比较少,可参考的资料不多,开发者上手需要一个过程。
Html5 到跨平台 APP 应用
每一项新兴技术的出现和流行,都是为了规模化的去统一解决一系列复杂问题,APICloud 选择混合开发方向,目的是希望借助 HTML5 降低 app 开发复杂度,提高 app 开发效率。
通过工程化的实践手段,我们首先设计了一个 app 开发引擎。简单的向大家介绍一下这个引擎的架构:
整个引擎基于 Android 和 iOS 系统的原生技术架构
最上层为 app 应用层,涉及到业务以及功能相关的部分,要求开发者使用 HTML + CSS 进行 UI 布局和渲染,功能和业务逻辑则通过 JS 实现,这是 app 开发者直接参与的地方。
第二层则是 API 层,API 层核心的功能是桥接和管理,负责 JS 与 Java,JS 与 Object-C 之间的通讯,管理 API 的分发,以及一些 JS-Framework 的加载和执行。
引擎与模块的 API 通过这里向开发者开放
接下来是引擎,引擎主要负责应用的消息命令管理、事件管理、模块管理、以及 UI 渲染。
我们通过将 Android 和 iOS 系统的原生窗口机制抽象出来,再模拟原生的方式实现了一个新的窗口系统,由 Widget/Window/Frame/UI Model 构成,形成混合渲染能力,使得 app 性能和体验接近原生。
引擎通过开放模块机制,支持动态载入模块,丰富和增强 app 功能,满足各式各样的需求。
最底下则是 OS 层,OS 层中主要涉及 Android 和 iOS 系统之间一些不同的特性,是我们要花大量时间精力进行适配和抽象的地方。
除此之外,一个 app 还应当具备符合 Android 和 iOS 原生 app 的生命周期特性,例如:如何启动,启动流程以及生命周期事件分发等。
以下是 app 开发引擎对 app 生命周期管理的主要处理流程。

引擎触发 app 的生命周期同原生 app 一致,触发点来自用户
用户点击桌面的某个图标,或者点击手机状态栏的某个通知,系统会将这个事件分发到对应的 app,引擎在收到这个事件后开始初始化。
初始化的过程为:原生窗口系统初始化,展示启动页->HTML5 运行环境初始化->加载模块运行环境->事件及消息队列管理初始化->根窗口开始渲染,之后开始加载 HTML5 页面,这个 HTML5 页面是整个 app 的入口。
App 启动完毕后进入等待状态,由用户的点击等事件驱动打开新的窗口,加载新的模块,UI 更新等。
通过 app 开发引擎,初步达到了使用 HTML5 + Native 混合开发,提高开发效率的目的,然而实践过程远比想象的要复杂,为此 APICloud 在专产品层面付出了非凡的努力。
在浩瀚的人类文明中,得益于计算机的迅速发展和技术的广泛应用, 拉开了第三次工业革命的新篇章, 与此同时信息技术成为拉动经济的重要增长点。
在移动互联网时代,app 开发技术无疑是行业发展的重要驱动力,企业对于产品快速落地与灵活迭代的迫切需求,则使跨平台开发技术广泛应用;而 APICloud 通过拥有核心知识产权的混合 app 开发技术,进一步帮助企业快速实现移动互联网布局,并以生态之力为开发者提供全面的技术服务。



