基于混合模式的移动应用开发研究
2016-03-16李辉
李 辉
基于混合模式的移动应用开发研究
李 辉
河南省濮阳市柳屯镇中原油田天然气产销厂信息管理站,河南 濮阳 457000
随着移动互联网的大规模普及,移动端应用的开发也被提至重要地位,目前常见的移动APP包括三种类型:Native APP、Web App、Hybrid App,它们的开发模式分别为原生开发模式、WEB开发模式和混合开发模式,其中混合开发模式融合了原生开发模式和WEB开发模式,兼具了两种开发模式的优势,成为目前最主要的移动应用开发模式,将在对比三种移动开发模式主要特点的基础上对混合开发模式做更深入的探讨。
移动应用;开发模式;混合模式
近年来,随着4G网络的普及,移动互联网的发展更是突飞猛进,鉴于便捷高效的互联网接入环境和智能终端的普及,移动终端应用市场规模呈现了持续增长的态势,移动应用的开发也被提至重要地位。常见的移动应用开发模式包括原生开发模式、WEB开发模式和混合开发模式,下面我们将在对三种开发模式对比介绍的基础上,深入探讨混合开发模式的具体内容。
1 三种开发模式的对比介绍
原生开发模式、WEB开发模式、混合开发模式是目前常见的移动应用开发模式。
(1)原生开发模式是基于智能终端操作系统并且使用平台特定的原生程序编写运行移动应用程序,比如Android的开发平台有Eclipse、AndroidStudio,主要采用Java语言进行开发;IOS的开发平台为XCode,主要采用Swift、Objective-C、C、C++语言;Windows Phone的开发平台有VisualStudio,主要采用C# .NET语言,原生开发模式下开发的应用程序被称为Native App,也称为本地App。它的优点包括:①完全的设备访问能力,能够访问手机的所有功能(GPS、相机、位置等);②具有更好的运行速度、性能和用户体验;③支持离线工作;④支持丰富的图形和动画;⑤在应用商店轻易地找到应用并且在主屏幕上能轻易找到应用图标。它的缺点包括:①开发成本较高;②范围限制较多(只能访问在特定操作系统上运行的设备);③用户必须手动下载更新最新版本;④内容限制,应用商店限制;
(2)WEB开发模式主要是借助移动端浏览器的强大功能,采用统一的标准的HTML,JavaScript,CSS等WEB技术进行开发,这种开发模式的主要优点包括:①适用范围广,适用于所有智能终端;②学习、开发成本较低,容易快速掌握开发技巧;③突破了平台的限制,可以跨平台使用;④方便、快捷地部署,不需要像其他应用一样提交到应用商店;⑤呈现在用户面前的永远都是应用的最新版本,不需要下载升级版本;它的主要缺点包括:①由于访问需要通过网络,因此在使用的性能体验上较差和较慢;②支持图形和动画效果较差;③不适用于应用商店因此没有靠下载应用盈利的渠道;④不支持离线功能,必须联网;⑤限制访问终端自带设备,功能不能完全实现。
(3)混合开发模式则是同时使用程序语言和网页语言进行开发,融合了原生开发模式和WEB开发模式,充分继承了两种开发模式的优点,取长补短,既实现了完全的设备访问能力,保证了用户的高性能体验,又突破了平台限制,实现了跨平台支持,成为目前最主要的移动应用开发模式。
2 混合开发模式的深入分析
混合开发模式集原生开发模式和WEB开发模式技术与一身,采用混合开发模式不仅可以使用跨平台WEB技术实现应用程序的重要部分,还可以根据需要保留对本机API的直接访问。
混合开发模式编写的应用程序安装网页语言与程序语言的混合方式,可以分为:多View混合型,单View混合型和Web主体型。[1]
多View混合型是指Native View和Web View独立展示,交替出现,此类应用混合逻辑比较简单,既根据需要将WebView当成一个独立的View运行起来,并且在WebView内完成相关的展示操作。这种混合模式的应用主体是Native App,Web技术只是起到一个补充作用,开发应用难度和原生开发模式基本相当。
单View混合型是指在一个View内同时包含NativeView和WebView,两个View之间相互是覆盖关系或者层叠关系,这种混合型开发的难度也是不小的,开发成本也不低,但是用户的体验就比较好。
Web主体型则是意如其名,该类型应用的主体是WebView,主要以HTML5、CSS3和JavaScript为主的网页语言编写,中间穿插Native相关功能,此模式开发的应用在用户体现性能上存在一定的缺陷,但是整体开发的难度却是大幅度的降低,基本上可以实现跨平台应用,成为主要的混合开发模式。
混合开发的实质就是支持 Web 功能和原生功能的相互嵌套,即JS 代码和原生代码的相互调用,从开发层面实现“一次开发,多处运行”的机制,示意图1如下:
图1
在开发应用程序的过程中,选择合适的开发平台进行开发可以起到事半功倍的效果。常见的开发平台有PhoneGap、Titanium、AppCan等。
PhoneGap是基于 Web 开发技术创建跨平台移动应用的开源的开发框架,它是一套国外的移动开发平台,可以在不同操作系统的移动设备上像本地应用一样运行同一个 Web 应用。PhoneGap提供了统一的打包平台,用户可进行统一打包,经过 打包后的Web 应用被嵌入原生应用的 “盒子”中,从而在终端设备上运行;PhoneGap将本地功能如摄像头、传感器、指南针、GPS等封装成JavaScript调用,开发者在开发移动应用时就可以像使用标准 JavaScript类库一样进行调用;PhoneGap 还允许开发者按照一定的规则使用平台指定的本地语言编写功能。但是PhoneGap并没有提供 IDE开发环境,具体开发过程需要借助第三方移动应用开发框架来实现。
Titanium开发平台和PhoneGap开发平台的原理相似,都是通过传统Web开发结合JS调用本地设备能力,但是不同的地方是后者不会通过JS暴露本地的UI接口,而Titanium则有完整的本地UI接口,通过JS调用就能够获得本地一样的UI,使其开发的应用看起来更加接近本地。但是它的某些API是平台相关的,这样会降低相关应用的跨平台能力,并且Titanium 不兼容标准 JavaScript,开发人员需要按照它规定的语法编写代码,增加了开发难度,因此该平台在实际使用过程中不像PhoneGap一样为大众所接受。
AppCan简单地可以说是PhoneGap的中国化,是本土移动应用开发中使用最广的移动平台,但从实际过程中会发现AppCan和PhoneGap是截然不同的两个平台,它不仅封装了类似于PhoneGap的本地调用功能,而且封装了uexWindow多窗口机制,实现了移动端的iframe效果,并且提供集成开发环境的IDE进行模拟器开发,支持在线上传证书打包,对于不了解IOS,以及Android 环境开发的人来说就轻松很多,更多类似UI控件的封装、通讯类、地图等原生控件的支持,并且拥有统一的数据统计平台,虽然AppCan并不是开源的项目,但一直都有面向开发者的免费版,使用过程中相对更加方便。
3 总语
移动应用混合开发模式作为目前主流的移动应用开发模式,但是其内部具体的细节处还有很多不同,在具体移动应用开发的过程中,开发者可以根据应用的具体功能针对性地选择最佳的开发方式,合适地才是最好地,不要局限于一成不变的规则,灵活运用,达到最理想的效果。
[1]郑海山.基于混合模式移动客户端开发的安全性研究[J].福建电脑,2013,29(12):64-65.
Mobile Application Development Based on Mixed Mode
Li Hui
Puyang City,Henan Zhongyuan Oilfield Liu Zhunzhen gas plant production and marketing information management station,Henan Puyang 457000
With the massive popularity of mobile Internet,mobile client application development is also important to mention the status of the current common mobile APP includes three types: Native APP,Web App,Hybrid App,their development model were Native Development mode,WEB development model and hybrid development model,development model which combines hybrid native development model and WEB development model that combines the advantages of both modes of development,become the leading mobile application development model,in contrast to the three kinds of paper will the main features of the mobile development model based on mixed development model to do more in-depth discussion.
mobile application; development model; mixed mode
TP311.52
A
1009-6434(2016)6-0215-02