(东方电子股份有限公司技术中心山东省烟台市264000)
摘要:在移动互联网时代,移动终端操作系统越来越多元化,移动应用开发面临着针对不同的操作系统同时开发多个版本的挑战,混合应用(HybridApp)开发模式在这方面具有明显优势。本文描述了采用混合应用开发模式,实现Android、iOS和Windows三大主流移动应用操作系统下开发跨平台移动应用的方法,其中,SQLite轻量级数据库将被用来完美解决移动应用离线数据存储问题,前端UI框架搭载后端服务框架则实现了对主流操作系统和移动设备的跨平台移动应用开发。
关键词:移动应用;跨平台;混合模式;SQLite;HTML5
引言
随着移动互联网的快速发展,移动终端的客户占有率与日俱增。在移动终端占主流市场的大背景下,移动应用的开发尤为重要。当前,市面上主流的移动终端操作系统主要为Android、iOS和Windows。传统的开发方式需要针对每一种操作系统开发一套专用的移动应用程序,非常耗费人力,而且软件间的差异不可避免,后期的维护难度也很高。采用混合模式开发,可以保证移动应用的前端代码完全通用,后端则通过针对不同的操作系统采用不同框架封装通用组件来实现跨平台,从而实现一次开发,多平台运行的最终目的。
1、跨平台应用开发方案
在移动终端操作系统多元化的市场情况下,需要产品既不依赖于操作系统,也不依赖硬件环境。为了解决这个问题,我们引入了软件开发中跨平台的概念,即在一个操作系统下开发的应用,在其他操作系统下依然可以运行。
基于上述情形,本文从开发模式、框架和界面开发方式三个方面尝试剖析最佳的开发方案。
1.1开发模式选择
业界主流的移动应用开发模式主要分为三种,第一种为原生开发模式,其优点是可以访问移动终端的所有功能,速度快、性能高,拥有极佳的用户体验,缺点是对开发人员要求高,开发成本高,平台适配困难较大;第二种为Web开发模式,其优点是学习成本低,轻量级应用,可跨平台,缺点是难以实现对终端上的各类硬件的访问;第三种为混合开发模式,既有原生开发模式良好的用户交互体验,也有Web开发模式成本低、跨平台等众多优点,缺点却几乎可以忽略。本文描述的混合模式开发移动应用的架构如图1所示。
图1混合模式开发移动应用框架
1.2框架选择
为了兼容Android、iOS、Windows三种操作系统的平台差异,本方案引入了两个开源移动应用框架。具体来说,针对于Android和iOS系统,采用了Cordova框架,针对于Windows系统,则采用了CefSharp框架。
为了降低前端开发的难度,提高开发效率,我们对两种移动应用框架提供的API进行了统一封装,为前台调用提供了透明的通用接口。这样,移动应用开发者可以在前端通过JavaScript代码直接调用这些通用接口,实现对移动设备的访问和控制。在此过程中,开发者并不需要关注移动设备和操作系统的类型。
1.3界面开发方式选择
在框架支持下使用统一的UI框架界面开发方式,采用Web页面+框架的开发方式。界面开发使用标准技术,基于W3C的HTML5+CSS3+JavaScript;引入jQuery和Bootstrap并对移动开发进行优化,在效率上得到提升,支持响应式布局,对设备的适配性更强。前端界面以及业务逻辑都在前台代码中实现,调用通用方法访问数据库,框架的后台服务对数据进行操作处理。
2、离线作业
现实情况中,因为作业需要,移动设备有时需要在一些信号较弱或者无信号的场所中运行(比如抢修班组井下作业),无法通过网络连接服务器进行数据交互,但仍需要使用移动应用查询作业要求、记录操作内容、登记耗材使用等。这就需要移动应用在无法与服务器进行通讯的情况下仍然可以正常操作。
基于这类情形,需要选择本地存储方案以及合适的数据同步方案。其中在本地存储方案里,相比较于本地序列化文件存储,本地轻量级数据库更为稳定可靠;在数据同步方案里,文件传输比数据库变量更新占用更多流量资源,但后者的缺点是完全依赖数据变更顺序。综合考虑,采用本地SQLite数据库和依赖毫秒时间戳的变量更新数据同步方案。
2.1SQLite数据库
SQLite,是一款轻量级、跨平台的关系型数据库,它占用资源非常的低,语言和操作系统的支持特别广泛。相比于离线存储文件形式的应用,SQLite稳定高效而且使用简单。Android和iOS由Cordova框架引入SqlitePlugin封装SQLite的API接口,前台直接可以操作数据库。Windows则是由CefSharp框架System.Data.Sqlite进行封装使用。
2.2数据同步
作为一款移动应用,数据的实时性和完整性是十分重要的。在线模式下,可以通过服务端提供的接口服务进行数据上传和下载。将服务器上的数据下载到移动设备的SQLite数据库中,同时将本地SQLite数据库中的业务数据上传到服务端。离线模式下,数据先存入SQLite数据库,等到设备在线时触发同步程序,开始数据同步。同步的标准依赖于毫秒时间戳,每次同步开始、结束都会记录毫秒时间戳,业务数据的增删改也会对应修改时间戳,按照时间戳的新旧来判断如何同步数据。从而保证数据的一致性,这点强制要求设备开启校时功能。数据同步如图2所示。
图2数据同步
3、结语
整体而言,在工期紧张,研发人手不充足的现实条件下,混合开发模式是最适用于移动应用的开发方式。界面和业务逻辑的编写使用流行的HTML5和JavaScript,容易学习使用,前端UI框架的使用使得前端代码通用于任何一个操作系统。后端Cordova框架和CefSharp框架一经封装,可重复使用。SQLite数据库数据本地存储,确保了数据的完整性,在线、离线模式无缝切换,不影响移动应用的正常使用。在项目实际研发过程中,项目组成功开发出符合预期的APP应用软件并且投入使用,所以该方案是得到实际认证的的移动应用跨平台开发解决方案。
参考文献:
[1]梅强,胡勤友,杨春.基于Android平台的船用北斗通信导航系统设计[J].合肥工业大学学报(自然科学版),2013,36(5):595-598.
[2]林回祥,程小军.SQLite数据库在雷达日志管理中的应用[J].雷达科学与技术,2016,14(2):194-197.