APP下载

跨平台应用开发技术研究

2018-12-21褚玉晓

赢未来 2018年15期
关键词:应用技术跨平台开发

褚玉晓

摘要:目前智能手机和平板电脑等主流智能终端使用的操作系统包括Android、iOS、Windows Phone 等,各类操作系统平台在开发语言、开发工具等方面存在差异,导致应用移植困难、开发周期长等问题。跨平台应用开发技术可以让开发者一次开发应用,运行在多终端平台下,降低了应用开发周期和成本,促进移动互联网应用产业链快速发展。本文分析主流跨平台开发技术现状,提出下一代跨平台开发构想,并深入探讨其实现方案,最后展望其后续发展前景。

关键词: 跨平台 ;开发;应用技术

据权威机构预测,全球已经进入了移动互联网发展周期的早期阶段,未来几年内,通过移动装置接入互联网的用户很有可能超过通过桌面个人电脑接入互联网的用户,移动互联网的发展速度将快于传统互联网,其创造的利益也会远远超过传统互联网。面对这一巨大市场,各大产业巨头纷纷构建了移动互联网生态链, 以苹果为代表的App Store 成功创造了移动互联网应用商业模式,激发了广大开发者的智能终端应用创作热情。

智能终端应用形态主要分为Web 应用和本地应用两类,Web 应用是指运行在浏览器上的应用形态,本地应用是指直接运行在操作系统之上的应用形态。Web 应用采用网页语言开发,具有开发简单、跨平台适配等优点,而本地应用一般采用Java、C 等语言开发,具有开发能力强、交互性好、效率高等优点。同时这两种应用形态也不断融合,从而出现了Widget 此类应用形态,可采用网页语言开发,同时具备本地应用的使用形式,并且可以跨平台运行。现阶段智能终端应用形态以本地应用为主,但是Web 应用和Widget应用随着HTML5 语言的出现以及智能终端多平台的发展也展现出良好的发展势头。

一、主流跨平台开发技术现状

前主流的跨终端平台开发技术按照其实现方式大致可以分为跨平台运行引擎和跨平台应用编译两种方式:跨平台运行引擎技术一般需要在目标设备上安装一个引擎,用于屏蔽终端底层操作系统差异,开发者开发应用部署或编译打包后,用户下载到目标设备上由引擎解释执行;跨平台应用编译通常采用一种标准开发语言开发应用,应用开发完成后由代码编译器针对不同目标终端平台分别进行编译,生成有针对性的可执行程序。

从支持的开发语言来看,可以分为应用开发语言和网页开发语言: 开发者可以采用应用开发语言(如Java、Delphi 等)开发应用,应用可以运行在引擎或操作系统上;或者开发者可以采用网页开发语言(如HTML、CSS、JavaScript)开发应用,应用可以运行在Widget 引擎或操作系統上。这两类语言的代表如下。

(1)应用开发语言

此类开发方式最常见的是Java,基于Java 虚拟机(Java virtual machine,JVM)实现跨平台开发。JVM 是一个虚构出来的终端中间件环境,是通过在实际的终端中间件环境上仿真模拟各种计算机功能来实现的。Java 虚拟机有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM 屏蔽了与具体操作系统平台相关的信息,使得Java 程序只需生成在Java 虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java 虚拟机在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。

目前还有一些开发工具采用传统编程语言如Delphi进行开发,代码编译生成多平台下的可执行程序,这种开发方式保留了传统编程语言的语言能力,同时也保证了可执行程序的运行效率,为开发者提供了一种较优的跨平台开发选择。

(2)网页开发语言

开发者可以采用HTML、CSS 和JavaScript 语言开发Web 应用,由浏览器实现跨平台的适配性。由于浏览器调用终端系统API 能力较弱,因此出现了Widget引擎的跨平台实现方式,利用JavaScript 语言封装终端系统API 能力,向开发者提供统一接口。但是Web 应用和Widget 应用都受制于网页开发语言的限制,因此在展现效果和调用能力上都存在一定的缺陷,目前下一代网页开发语言HTML5 有希望弥补这一缺陷,缩小Web 应用/Widget 应用和本地应用的差距。

比较以上两类开发语言,网页开发语言存在能力受限(大代码量、复杂图形和动画支持)、解释执行效率较低的问题,应用开发语言存在支持的平台数量少、适配性差的问题。随着HTML5 标准的出现,网页开发语言在多媒体、3D 图形、终端能力调用等方面的能力大大提升,并且其开发门槛低,越来越受到移动互联网开发者的青睐,因此以下将主要围绕网页开发语言构想下一代跨平台开发工具。

二、下一代跨平台开发构想

分析目前业界的跨平台应用开发现状,其实现方式多样,各有优缺点,无法完全满足开发者多样化跨平台开发需求。考虑到终端应用形态的多样性,希望构想一种网页开发语言的融合多态的跨平台开发工具,既可以支持跨平台运行引擎也可以支持跨平台编译的方式, 具体来说,下一代跨平台开发工具有以下特点。

(1)统一的跨平台开发语言

开发者希望能够通过统一的标准开发语言(HTML、CSS、JavaScript)来进行不同平台下的应用开发,从而减少代码的重复编写,免去不同语言的学习熟悉过程。

(2)统一的跨平台系统API 编程接口

不同智能操作系统的API 封装形式不同,传统开发者在跨平台移植过程必须重新学习新平台的API 编程指南,重写API 相关程序代码,增加了跨平台应用移植的时间。因此跨平台开发的开发者希望能够使用通用标准API(JavaScript 封装)开发应用,无需重新适配不同平台API。

(3)自动化的跨平台测试和仿真环境

跨平台开发者希望能够采用编写测试脚本,针对已经完成调试的应用程序进行跨平台的自动化测试,输出测试结果,验证应用在跨平台终端上运行的功能完备性、界面适配性和系统可靠性,可以仿真不同平台的终端环境,便捷地调试应用程序,减少应用调试的时间和成本。

三、下一代跨平台开发环境实现方案

依据以上跨平台开发构想搭建一套融合多态的跨平台开发环境,可以融合目前跨平台运行引擎和跨平台应用编译的优点,由开发者选择合适的开发工具基于Web 语言开发。考虑到以上需求,设计集成开发环境可以包括远程开发环境和本地开发环境两部分。

可视化代码框架为开发者提供UI 设计工具,提供常用的页面控件,如列表、文本输入框、静态文本、单选框、复选框、组合框、翻页按钮、按钮等,并可以将UI 控件与控件对应的背景色、图片、风格关联起来。例如,新生成一个Widget 应用时,SCE 提供应用启动时的事件、应用获取焦点时的事件、应用退出时的事件等代码框架。对一个按钮对象,提供按钮按下时的事件等。

API 插件库为开发者提供ECMA Script、Ajax、Dom、Widget API 以及多平台的插件参考库,开发者可随时查询API 和调用方法。同时,在编辑代码时,代码编辑器可根据用户输入实时提示用户可调用的API 方法,如用户输入类名时,代码编辑器可提示用户下一步可输入open Url、set Preference For Key、on Focus 等。

四、发展展望

回顾传统PC、服务器操作系统的发展历程,跨平台开发是开发者追求的终极目标,跨平台开发技术作为产业链发展过程中的关键一环,始终是开发技术研究的热点和难点。同样随着智能终端平台的发展,目前已经基本形成了几个主要阵营,旧操作系统版本更新和新操作系统进入是智能终端平台不变的主题,智能终端跨平台开发技术还处于起步阶段,对其进行深入研究符合产业发展要求,也是国内软件业可能占据的一个技术高点。

本文中提到的基于Web语言的下一代跨平台开发工具虽然在图形适配、运行效率、在线编译等方面还存在一些技术难点,需要业界力量进一步研究,但是其构想是一种有益的探索。在跨平台开发技术上降低开发者门槛和开发能力及效率是互相制约的两个方面,需要在其中找一个平衡点,保证跨平台开发技术能够接近操作系统原生态开发能力并减少对开发者的要求。

在当前移动互联网产业结构下,人人都是开发者,都可以基于其奇思妙想构建应用,应用开发技术不应该成为广大草根开发者进入这一领域的障碍,为此类人群提供以上构想的跨平台开发工具,将成为移动互联网应用开发的助推器。随着软件技术的发展,特别在HTML5技术出现后,网页类应用语言能力逐步提升,将成为跨平台应用开发的主力,广大开发人群青睐的网页类应用开发工具将成为移动互联网应用开发产业链中不可或缺的一个环节,拥有良好的发展前景。

参考文献:

[1] 陈桦,杜啟宏,程刚. 移动智能终端Web应用平台开发技术研究[J]. 移动通信, 2013(5): 23-26.

[2] 杨晓华,程宝平,朱春梅. Mobile Widget—新一代移动互联网应用技术[J]. 电信技术, 2011(2): 30-34.

[3] 刘春华. 基于HTML5的移动互联网应用发展趋势[J]. 移动通信, 2013(9): 64-68.

[4] 胡世良. 移动互联网软硬一体化商业模式探析[J]. 移动通信, 2013(9): 56-59.

基金项目:

河南省科技厅2015年重点科技攻关项目(152102210133)资助

猜你喜欢

应用技术跨平台开发
跨平台APEX接口组件的设计与实现
公路工程水泥混凝土常用外加剂应用技术
新型水稻除草剂丙嗪嘧磺隆及其应用技术探讨
河南方言文化资源的保护及其开发利用的研究
遵义红色旅游开发对策研究
浅析当前计算机网页制作的应用技术和管理流程
基于J2EE和Ionic的ITer学习APP设计与开发
单片机在电子技术中的应用和开发
基于QT的跨平台输电铁塔监控终端软件设计与实现
基于OPC跨平台通信的电机监测与诊断系统