博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTML5到跨平台App应用深度解析
阅读量:6338 次
发布时间:2019-06-22

本文共 1976 字,大约阅读时间需要 6 分钟。

本文将进一步介绍跨平台技术的分类,并深度揭示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开发技术,进一步帮助企业快速实现移动互联网布局,并以生态之力为开发者提供全面的技术服务。

转载地址:http://aoooa.baihongyu.com/

你可能感兴趣的文章
Java获取文件后缀名
查看>>
NYOJ-15:括号匹配(二)
查看>>
首次记录在案的
查看>>
Brup Suite 渗透测试笔记(六)
查看>>
Android编译安装失败解决办法
查看>>
数的划分递归做法
查看>>
Java Base64 类
查看>>
成长路上如何快速升级?你需要强大的自我驱动力
查看>>
pca
查看>>
php实战案例
查看>>
Python爬虫6-利用ProxyHandler设置代理服务器
查看>>
hive连接MySQL报错
查看>>
SQL Server 数据库用户权限设置
查看>>
爱的链条
查看>>
AC日记——网络最大流 洛谷 P3376
查看>>
城堡 (spfa+cheng)
查看>>
使用Dialog实现全局Loading加载框
查看>>
软件测试职业规划的思考(转)(作者Findyou
查看>>
微信小程序---picker
查看>>
用户体验(《构建之法》读书笔记4)
查看>>