蒋健健
摘要:本文旨在对当下流行的三种移动端应用开发模式Native APP,Web APP和Hybrid APP进行一下总结,分析各种模式利弊。在全面介绍三种开发模式的配置工作的同时,本文还着重讨论最新的Hybrid APP模式的概念,并以安卓系统模拟器作为实验平台,对三种模式的性能进行测试。最后我们将会展望一下未来html5对我们移动应用开发的影响,并总结我们当下三种开发模式各自擅长的开发领域。
关键词:Native APP;Web APP;Hybrid APP
中图分类号:TP311.52 文献标识码:A 文章编号:1007-9416(2017)02-0202-02
从07年乔布斯正式发布第一代iphone开始,我们的世界就正式迈入了移动互联网时代,当时的几大功能机巨头(诺基亚、摩托罗拉)怎么也不会想到智能机会在10年后进入千家万户成为人手一只的必备工具。现在的人们已经越来越依赖于智能机带给他们的便捷功能,他们可以足不出户看遍天下、买遍天下,甚至手机在越来越多的场合下成为了身份证一样的存在。智能机规模的急剧膨胀,对于程序开发者来说机遇也是空前的,移动APP开发已经是当下极为热门的IT行业岗位,而且岗位的工资也随之水涨船高,根据调查截至16年底,手机app开发者的薪水平均值为5000元每个月。为了提升我们开发者自身技术水平,选择适合自己工作任务的开发模式是极为重要的,而当下主流的移动app开发模式有三种,分别为:Native APP、Web APP和Hybrid APP。
1 三种移动APP开发模式
1.1 Native APP
Native APP开发模式算是最传统、最经典的开发模式,此模式建立于手机操作系统(Android/IOS)之上进行开发,几乎完全依赖于本地硬件或者OS的基础功能来实现APP的各项需求,所以我们又将此模式称为本地开发模式。这种模式充分利用了用户本身手机的本地资源,这对于APP服务提供方来说可以极大的减轻他们的服务流量压力,同时此模式下的稳定性和性能效益上都极为优秀。但是优点与缺点并存,完全依赖于本地硬件进行开发的APP在后续升级以及硬件的兼容性上都极为的受限,很容易使得一部分机型用户遇到各种兼容性问题,不利于APP的推广。
1.2 Web APP
Web APP从本质上来讲,其实就是一个针对特殊需求进行了针对性优化后的web浏览器,这种app的兼容性可以说是最强的,因为其对硬件上没有任何个性化的需求,只有带有浏览器功能api的手机都可以安装并使用此种app,并且由于我们将所有功能都放在了我们的web站点上,所以app本身的开发难度也是低的可怕。但是此種app从本质上来说就是网络浏览器,所以此种app对于网络本身性能的依赖极大,一旦用户因为其他客观原因造成其网络性能低下,那么app就会处于低效甚至是不可用状态,同时因为不依赖于本地硬件和操作系统,所以也几乎不可能实现需要本地硬件或者操作系统支持的功能。
1.3 Hybrid APP
Hybrid APP开发模式,即混合开发模式。前两种开发模式都有了一定的使用历史,而且其应用优点和缺点都极为的极端,所以开发者在强烈的需求中催生出了这种中合后的新型开发模式,这种模式建立于第三方技术方提供跨平台开发框架之上,我们可以只使用一种编程语言开发出多平台都可以使用的app。
2 三种开发模式的环境配置及APP运行
2.1 Hybrid APP的PhoneGap开发框架
PhoneGap框架由Nitobi公司推出,从根上讲是基于Web APP的理念(不幸的是这家公司已经被业界毒瘤adobe收购,笔者对此深表遗憾),该公司对其框架的官方定义是:使用了web技术的移动端本地应用程序,其所使用的语言统一为html5。总而言之,该框架其实就是建立在html5这门强大web语言基础之上的移动端开放模式。
PhoneGap最为卓越和成功的地方在于它成功地将java web技术移植到了移动设备之上,所以对于那些拥有过多年java web开放经验的程序员来说,他们在此框架内进行移动端app的开发会更为得心应手,无论是html5还是css或者js都在本框架的兼容范围之内。PhoneGap框架的兼容能力是无以伦比的,主流的ios、Android和wp都是他的核心支持名单之上,开发者可以很轻松利用该框架避免多次的重复开发,同时该框架吸收了native app的一些强大特性,提供给开发者一部分稳定的api允许他们安全可靠的调用手机的联系人列表、GPS数据或者使用手机的摄像头和麦克风。更为令人可喜的是该框架是完全免费的,这对于一些中小型的独立工作室来说是巨大的福音。不过强大兼容性和泛型的背后是大量计算消耗作为代价,所以此框架开发出来的APP运行速度较为缓慢,同时在对本地硬件资源的利用率上也完全不如native app模式。
2.2 PhoneGap APP开发环境搭建
开发PhoneGap APP可以使用Dreamweaver工具来制作 Java Web 页面,并使用 PhoneGap Build(PhoneGap的在线编译云服务)生成安装包。但如果想测试某一平台的硬件功能,就必须配置对应的开发环境,再进行编译和测试。例如安卓开发的SDK工具包提供了手机模拟器,可以在PC机上进行APP测试。
下面介绍在配置好安卓开发环境后,如何使用PhoneGap框架开发应用。首先,下载好PhoneGap的工具包,打开Eclipse后,按照创建步骤,新建一个安卓应用项目。复制cordova-x.x.x.jar文件到项目中的lib文件夹下,右击该jar文件添加引用。然后,在项目的assets目录下新建文件,复制PhoneGap工具包内的cordova.js文件到个文件夹下,并创建Ja-va Web运行的级联样式表,Html文件和其他js文件。
2.3 Native APP的开发环境配置及APP运行
上一节已经说过,native app开发模式是本地开发模式,所以对于每一种不同的操作系统,所使用的框架和编程平台都是不同的,比如苹果手机的ios系统需要使用switch语言或者传统的obj-c语言,Android手机一般使用java进行开发,但是在Android更新到5.0增加了C++虚拟机后,也开始广泛的使用C++进行安卓手机上的大型应用的开发,wp手机使用的则是微软自家经典的.net平台和C#语言。
3 HTML5对开发模式的影响
3.1 HTML5的新特性
HTML5能够成为现在最被看好的web语言的一个核心理由就是他通过独有的技术实现了离线存储功能,也就是说即使手机的网络暂时断开了,用户在使用应用的时候也可以凭借缓存文件继续进行一段时间的交互,这样就极大的避免了web app受到的网络性能的限制,同时html5的交叉定位api也使得原本web app极差的定位短板得到了有效的弥补。所以说HTML5是在WEB APP的基础之上的又一次重大飞跃。
为了适应移动设备,HTML5页面的表单元素可与键盘形成对应,不同输入对应不同键盘,以节省屏幕中键盘占用的空间。HTML5放弃了Flash插件,提供了Canvas绘图API来,开发者只需编写Ja-vaScript实现动画效果,提高了穩定性。新加入的视频和音频元素,为开发者统一了使用规范,再也无需安装插件。移动设备上不通过嵌入音频或视频来达到效果而是使用多个组件来实现。
同时作为一门脚本语言,html5最为卓越的进步在于它具有了JS多线程的特性,这是极大的性能提升,所以用户在运行HTML5的APP时,手机系统是在多线程的进行多项任务的,这对于当下动辄4核乃至8核的手机CPU来说,无异于是好马配好鞍。
3.2 应用商店
手机上的五花八门、千差万别,但是对于绝大部分用户来说他们下载安装APP往往都是在几个核心的大IT公司提供的应用商店内进行的,而这几家最大的应用商店背后的公司同时也分别是手机操作系统的持有方。比如我们拿最为优秀的例子苹果商店来说,对于如今硬件上已经几乎没有明显差距的智能机硬件时代来讲,苹果手机之所以能够牢牢占据销量的绑手,依靠的正是他安全可靠同时内容又丰富多彩的应用商店,其实如果我们追根溯源的话就会发现应用商店的概念发扬光法者也正是苹果上一任传奇CEO史蒂夫乔布斯。乔布斯制定了一系列严格的手段将所有苹果系统应用开发者集中到统一平台上进行管理,同时也对开发者发布的每一个APP和每一次更新都严格把关,从而形成了如今优秀而又卓越的苹果应用商店。
乔布斯的成功在于他意识到了用户真正的需求是什么,对于一个手机用户来说,其实他们并不在意自己手里的小东西在硬件上有多么牛逼的参数,又或者他使用的软件采用了多么优秀的算法和优化策略,我们往往只在乎最终呈现给我们的结果是不是好的,这个软件够不够流畅、稳定才是我们真正所在乎的。乔布斯正是认识到了这点,所以他在推出几乎完全由苹果设计和订制的手机本体之外,他还悍然的建立了唯一的应用发布平台,使得在苹果手机上运行的每一款APP都是经过了严格审核的,都是被确认足够适应于苹果手机的才会被放出来。
当然成功的案例背后也有一定的缺陷,苹果商店的这种严格限制其实从某种意义上也限制 了其平台上web app的发展。与此相反的是,完全开源的安卓系统上就有百花齐放的各类web app提供给人们使用。这促使了安卓平台山虽然APP的质量良莠不齐,但是善于使用和挑选APP的年轻群体其实更青睐于安卓手机,因为他能通过更丰富的app获得更多的功能实现。
4 结语
Web应用是云时代下的大势所趋,而从web app上走出来的Hybrid APP模式就是顺应技术潮流诞生的新贵,虽然目前从最终性能上不能尽如人意,但是相信随着html5的不断发展,该模式肯定还可能更加优秀,其前景是很可观的。相信在未来移动端越来越强大,其范围越来越广泛的时候,WEB应用会成为唯一存活下来的技术核心。
参考文献
[1]李莉,张超然,刘丹,李纪成.移动APP开发模式研究[J].长春理工大学学报(自然科学版),2016,(05):110-114+126.
[2]李新星,许倩,张筱倩,明均仁.面向湖北省35所本科高校图书馆的移动APP调查与分析[J].图书馆学研究,2016,(09):18-23.
[3]杨毅.移动APP开发模式探讨[J].福建电脑,2014,(06):86-87.
[4]顾春来.APP应用程序开发模式探究[J].硅谷,2014,(05):35-36.
[5]黄悦深.基于HTML5的移动Web App开发[J].图书馆杂志,2014,33(7):72-77.