移动APP开发模式研究

2016-11-30 06:23李莉张超然刘丹李纪成
关键词:安卓开发者页面

李莉,张超然,刘丹,李纪成

(长春理工大学 计算机科学技术学院,长春 130022)

移动APP开发模式研究

李莉,张超然,刘丹,李纪成

(长春理工大学 计算机科学技术学院,长春 130022)

对智能手机的Native APP,Web APP和Hybrid APP三种开发模式进行了深入研究。分析了各种模式的优缺点。描述了属于Hybrid APP开发模式的PhoneGap开发框架及三种开发模式的环境配置,在Android模拟器上进行了三种模式实验验证,达到了预期的结果。分析了HTML5对开发模式的影响。最后,根据每种手机APP开发模式的特性,对其适用的开发情境进行了总结。

Native APP;Web APP;Hybrid APP

伴随着互联网技术的发展,智能手机已经成为人们日常生活的必须品。2014年,移动电话普及率由90.8%升至年底的94.5%。截止2014年底,我国手机网民数量已达到5.57亿,同比增加5672万人。网民中使用手机上网的人数达到85.8%[1]。

智能手机的应用开发也随着手机的发展成为一个火热的行业,有着不错的收入。中国软件开发者薪资调查报告显示,大多数手机软件开发者薪资范围在三千至一万元之间,超过半数的开发者月收入在五千以上[2]。为了方便而有效的进行开发,选择一套合适的开发模式是十分重要的。智能手机APP的开发模式,可以分为三类分别是Native APP、Web APP和Hybrid APP开发模式[3]。

1 三种移动APP开发模式

1.1 Native APP

Native APP开发模式,即本地开发模式,又称为传统型开发模式。这种开发模式基于移动终端的操作系统进行开发,可以良好的利用系统的硬件资源。其缺点也是显而易见的,其应用只能在一种移动终端的系统中安装使用,而且由于APP对硬件的依赖,应用升级会比较麻烦[4]。

1.2 Web APP

Web APP开发模式基本依靠网络技术实现。其APP是一个针对手机优化后的Web站点,优点是实现了跨平台,而且对硬件几乎没有依赖,开发周期短。缺点也很明显,APP对网络的依赖很大,数据基本都来自服务器,因此网络状况会直接影响用户体验。在没有网络的情况下,APP的功能基本不能使用。而且APP无法调用手机的硬件API,功能受到一定的限制。

1.3 Hybrid APP

Hybrid APP开发模式,即混合开发模式。这种开发模式使用第三方的跨平台开发框架,将一种语言开发出应用兼容到不同的移动设备上。这样开发者就可以用Java Web技术或另一种不针对某具体系统的第三方的开发技术,实现应用的功能。APP同时具有了跨平台性和不错的硬件资源调用能力[5]。

2 三种开发模式的环境配置及APP运行

2.1 Hybrid APP的PhoneGap开发框架

Nitobi公司(现在已被Adobe公司收购)推出了基于Web技术的移动解决方案PhoneGap,这一方案在其官网上的定义是“可以使用Web技术编写手机本地应用程序的Html5应用程序平台”。简单来说,PhoneGap是一套基于Html5的移动应用开发框架[6]。PhoneGap开发框架成功将Java Web开发技术应用到了移动设备的开发上。已经具备Java Web开发能力的开发者们可以使用熟知的HTML、CSS和JavaScript来开发手机APP。

PhoneGap开发框架支持包括IOS、Android、Windows Phone在内的多种手机平台。开发者通过PhoneGap提供的插件可以调用API,使用摄像头、联系人、地理定位等功能。PhoneGap的使用是免费的,它的兼容性强而且开发成本低。但PhoneGap本身也有不少缺点,它的运行需要依靠移动设备具有内置的浏览器引擎WebKit,PhoneGap的APP运行速度较慢,硬件调用能力也不如Native APP。如图1所示是安卓手机使用PhoneGap框架开发的Hybrid 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文件到个文件夹下,并创建Java Web运行的级联样式表,Html文件和其他js文件。创建完成后的文件结构,如图2所示。

图2 配置效果图

另外,安卓的应用需要依靠Activity启动。要让Activity启动后,加载html页面并运行JavaScript代码,需要对Activity进行修改。改动包括两步,要将Activity继承的类改为DroidGap,导入需要的cordova包。然后将setContentView(R.layout.activity_main)改为super.loadUrl(“file://android_asset/ www/index.html”),其中www是新建的文件夹的名字,index.html是该文件夹下的html文件。

编写好文件夹下的html和js代码,生成apk安装到安卓手机上就可以运行了。APP的运行效果如图3所示。

图3 PhoneGap APP运行效果图

2.3 Native APP的开发环境配置及APP运行

对于Native APP发模式,不同的手机系统都有一套成熟的开发框架与对应的开发语言[7]。例如,苹果手机的APP需要用Object-C编写,Android APP主要用Java开发,而属于微软公司的Windows Phone应用主要使用C#语言开发。如图4所示是安卓手机的Native APP的基本结构。其中,Activity可以理解为活动窗口或者是一个单独的页面,它是与用户交互的最基本的成像单元。在XML文件中记录了手机页面的组件信息,Activity启动后加载XML文件显示页面。开发者在Activity里编写Java代码绑定组件,给绑定的组件添加监听事件,在监听事件中实现功能和API的调用。

图4 Android Native APP结构图

Android手机的Native APP开发环境配置主要包括两个方面,一方面是配置程序设计语言的运行环境,需要下载JDK工具包并安装。另一方面是开发平台的搭建,需要将安卓开发的ADT插件安装到Eclipse开发平台上,并用SDK工具配置好安卓虚拟机[8]。

JDK工具包只需要点击按照提示即可安装,配置完环境变量成后在dos下输入命令java–version,若显示java的版本则安装成功。ADT的安装需要打开Eclipse,选择工具栏的安装新软件,输入地址https://dl-ssl.google.com/android/eclipse/,进行在线安装。最后是虚拟机的创建,要将下载好的SDK包解压并将路径配置到Eclipse上,随后在eclipse的工具栏打开AVD Manager下载适合自己的手机系统镜像并更新到对应的平台工具。然后打开SDK Manager创建一台虚拟机,环境配置工作就基本完成了。模拟器运行效果如图5所示。

图5 Android Native APP运行效果图

2.4 Web APP的环境配置及APP运行

Web APP开发模式的环境搭建主要是服务器端的环境搭建,Web APP的使用一般是用手机自带的浏览器访问站点,不需要下载安装。这里选择Java Web的应用,基本结构如图6所示。Java Web的开发环境配置,需要下载Java EE版的Eclipse,安装Tomcat服务器并配置Java运行环境。

图6 Web APP结构图

仅仅靠Java Web技术开发出的页面并不适合手机显示,界面往往太大,操作起来也不方便。开发者可以使用成熟的移动Web开发框架来解决这个问题。现在已经有了很多优秀的移动Web开发框架,例如Sencha Touch、jQuery Mobile、DHTMLX Touch等。这些框架对HTML5和CSS3都有不错的支持。如图7所示是一个用JQuery Mobile界面素材创建的Web APP在安卓模拟器上运行的效果。

图7 Web APP运行效果图

3 HTML5对开发模式的影响

作为下一代的互联网标准,HTML5的重要性可想而知,整体的手机APP开发模式正以它作为方向进行转变。这使得Web APP的变得本地化[9]。

3.1 HTML5的新特性

区内已分析伟晶岩样品中,有多件有用组分分析值达到边界品位以上,(Nb,Ta)2O5一般品位为0.012~0.057%,最高0.0819%。矿石中Nb2O5品位变化系数为32.4~43.7%,Ta2O5品位变化系数为42.4~86.6%,矿化均匀程度属于比较均匀类型。

HTML5提供了WebStorage和Indexed DB实现离线存储。依靠缓存文件,网络被断开后,用户可以继续和页面以及文档进行交互,这使得Web APP离线功能的增加成为可能。此外,HTML5还实现了精确灵活的定位API,弥补了Web APP的又一项短板。所以,HTML5从很大程度上促进了Web APP的发展[10]。

为了适应移动设备,HTML5页面的表单元素可与键盘形成对应,不同输入对应不同键盘,以节省屏幕中键盘占用的空间。HTML5放弃了Flash插件,提供了Canvas绘图API来,开发者只需编写JavaScript实现动画效果,提高了稳定性[11]。

新加入的视频和音频元素,为开发者统一了使用规范,再也无需安装插件。移动设备上不通过嵌入音频或视频来达到效果而是使用多个组件来实现。另一个新的特性,就是增加了JavaScript多线程[11]。该功能具体通过Web Workers实现,用户可以同时运行多个线程,页面在响应用户操作的同时,后台可以完成其他功能。

3.2 HTML5的新通信机制

WebSoket协议,由互联网络工程任务组定制,该协议工作于OSI模型的应用层[12]。它可以搭建双向的长链接,帮助服务器完成高实时性的推送任务,因此可以将其看作一种PUSH类协议。其建立连接的过程与TCP协议相似,不同的是它需要经过两次握手从HTTP协议升级为WebSoket协议[13]。而且WebSoket与传统通信方式相比减少了头信息,报文更简单,减少了资源消耗[14]。

HTML5的通信解决方案将实时数据交给WebSoket协议负责,而非实时数据由HTTP协议实现。整个过程将实时数据与非实时数据分开处理,很好的减少了耦合性。此外,TCP协议需要三次握手,而WebSocket协议只需要两次。该机制的实现,是由客户端先向服务器发起握手请求,服务器根据HTTP头文件判断请求类型,然后升级为WebSoket链接或保持HTTP协议[12]。

3.3 应用商店

目前市场上最主要的几个应用商店是苹果公司的 AppStore,Google公司的 AndroidMarket,Nokia的Ovi Store以及微软的手机应用商店Windows Marketplace。其中App Store仅一年的应用销售数就超过二十亿,全球有77个国家从App Store下载应用[15]。从市场份额和发展趋势来看App Store都是较为成功的例子。一方面开发者需要注册开发者账号才能发布应用,另一方面苹果系统只运行被许可的软件,苹果公司通过这两个手段实现了对应用下载和安装的有效控制。

3.4 趋势分析

HTML5的出现解决了Hybrid APP开发模式中各系统对web开发语言支持标准不一的问题[16]。主流的Hybrid APP开发平台包括PhoneGap,AppCan,appMobi,Titanium等,都基于webkit开源内核,已经采用HTML5标准开发。HTML5将为Web APP和Hybrid APP开发模式带来更多发展优势。

比起前两种模式,本地开发模式基于具体的手机系统设计而且有特定的开发语言,因此很难利用HTML5。不过HTML5目前还不成熟,有许多功能,如调用摄像头,HTML5无法实现,只能调用本地API。但本地开发模式依旧是应用市场的主力军之一。

4 安全性分析

HTML5发展迅速,但还未发展成熟,于是不可避免的存在一些安全问题。Web APP和Hybrid APP开发模式或多或少都收到了影响。而各种Native APP开发模式的应用则具备相对成熟的安全机制。

4.1 Web APP

Web APP的一个重要安全问题就是本地存储,作为离线功能的实现基础,这部分文件可能包含了用户登陆信息以及其他关键数据。而HTML5的CORS(跨域资源共享)可以绕过浏览器的同源策略,使得设备的这些关键数据有被不同的域访问,因而带来了安全隐患[17]。使用HTML5的开发者应当注意对敏感数据的隔离和访问权限的限制。

另一个需要注意的就是HTML5的WebWorkers,它使Web APP具有了后台处理的功能[17]。因此,开发者需要保护好用户的敏感信息,确保代码的逻辑合理,并限制好应用的操作权限,以防止攻击者利用JavaScript的多线程进行破解操作。

4.2 Hybrid APP

Hybrid APP的代码包括HTML代码和原生代码两部分,如果使用HTML5,也会面临Web APP同样的安全问题。在HTML5还不完善的情况下,第三方的移动开发框架可以对重要的API加强审查机制,在Web代码和设备数据间起隔离作用,来保证敏感信息的安全。

以PhoneGap为例,在加载Web内容时,PhoneGap提供了一个白名单机制,对加载内容的来源进行审核。若调用该API加载外部内容审核未通过,该请求会被转移给外部浏览器处理,而这些将被加载的页面无法再访问PhoneGap提供的本地功能[18]。只有本地的Web页面,同源的页面和白名单内的页面可以加载到内置浏览器视图,并使用本地功能,因而PhoneGap的应用不会受到CORS带来的安全隐患。

4.3 Native APP

相比HyBrid APP和Web APP,Native APP的代码全是原生代码。应用的安全机制经过长了时间的使用和改进,较为成熟。以Android为例,系统的每个应用都会被分配一个ID,内部建立沙箱机制避免应用间相互干扰。而且应用对数据的访问,组件的调用都需要相应的权限[19]。系统对权限的申请、审核和确认过程严格,即使是基本的功能没有权限也无法使用,因而数据的安全性可以得到保证。

5 结论

经过测试,三种移动APP开发模式都能为Android手机开发APP,开发者需要根据APP的需求选择合适的开发模式。

Native APP开发模,有较快的运行速度、完整的硬件支持和丰富的接口等优良的特质。这是的是另外两种开发模式无法提供的,因此Native APP始终拥有较好的市场潜力。这种模式适用于用户体验要求高、需要硬件支持或者离线使用次数多的应用。例如,手机游戏和手机系统资源管理软件。

Hybrid APP和Web APP开发模式,随着Html5的快速发展在市场上也具备很大的活力。Hybrid APP开发模式,适用于需要离线功能,支持多个平台或者需要部分硬件资源的应用。Web APP开发模式也有优势,应用不需要考虑手机应用的发布,产品升级也只需要对服务器的进行修改,适用于有跨平台需求、无手机硬件要求、版本更新频繁或者用户需求不稳定的应用。

[1] 三川.CNNIC发布第35次《中国互联网络发展状况统计报告》[J].中国远程教育,2015(2):31-31.

[2] 魏兵.2013年中国软件开发者薪资调查报告[J].程序员,2014(3):26-29.

[3] 杨毅.移动APP开发模式探讨[J].福建电脑,2014,30(6):86-87.

[4] 顾春来.APP应用程序开发模式探究[J].硅谷,2014,(5):35-36.

[5] 孙莉娜.APP开发应用的创新与实用性分析[J].电子制作,2013(20):51.

[6] 饶侠,张坚,赵丽萍.深入浅出PhoneGap[M].北京:人民邮电出版社,2013.

[7] 杨勇,邝宇锋,魏骞.移动互联网终端应用开发技术[J].中兴通讯技术,2013,19(6):19-23.

[8] 陶阳.基于Android平台的APP设计与实现[J].电脑编程技巧与维护,2014,(9):23-27.

[9] 黄悦深.基于HTML5的移动Web App开发[J].图书馆杂志,2014(7):72-77.

[10] 李慧云,何震苇,李丽,等.HTML5技术与应用模式研究[J].电信科学,2012,28(5):24-29.

[11] 黄永慧,陈程凯.HTML5在移动应用开发上的应用前景[J].计算机技术与发展,2013,23(7):207-210.[12] 薛陇彬,刘钊远.基于WebSocket的网络实时通信[J].计算机与数字工程,2014,42(3):478-481.

[13] 陆晨,冯向阳,苏厚勤.HTML5 WebSocket握手协议的研究与实现[J].计算机应用与软件,2015,32(1): 128-131.

[14] 吴晓东,王鹏.Html5的通信机制及效率的研究[J].长春理工大学学报:自然科学版,2011,34(4):159-163.

[15] 王永,杨丽,何涵韬.手机应用程序商店发展探析[J].数字通信,2010,37(3):55-59.

[16] 张玉晴,黄瑾娉.基于HTML5的跨平台移动应用关键技术的研究与实现[J].工业控制计算机,2013,26(3): 56-58.

[17] 董霁,杨丁宁,史德年.基于HTML5技术的移动智能终端应用及安全问题研究[J].现代电信科技,2012(12):1-7

[18] 饶侠.深入浅出PhoneGap[M].人民邮电出版社,2013.

[19] 宋杰,党李成,郭振朝,等.Android OS手机平台的安全机制分析和应用研究[J].计算机技术与发展,2010,20(6):152-155.

Research the Development Model of Mobile Applications

LI Li,ZHANG Chaoran,LIU Dan,LI Jicheng
(School of Computer Science and Technology,Changchun University of Science and Technology,Changchun 130022)

Native APP,Web APP and Hybrid APP development mode of the smart phone were researched in the paper.It analyzed the advantages and disadvantages of each.The paper introduced PhoneGap development framework,And it belongs to Hybrid APP development model.The article introduced the environment configuration of three development model and test the APP examples of three models in theAndroid emulator.The result of this experiment agrees the expected result.The effect of HTML5 on models was analyzed in the paper.Finally,I summarized the suitability of each APP development model.

Native APP;Web APP;Hybrid APP

TP311

A

1672-9870(2016)05-0110-05

2016-06-26

李莉(1963-),女,教授,博士生导师,E-mail:lili@cust.edu.cn

猜你喜欢
安卓开发者页面
刷新生活的页面
iPhone不卡的秘密曝光:安卓也能享受
文物表情包
“85后”高学历男性成为APP开发新生主力军
一种基于安卓系统的手机侧抓包分析方法
16%游戏开发者看好VR
栝楼产业开发者谢献忠
安卓L未至安卓M来了!安卓首泄漏M系统
Web安全问答(3)
网站结构在SEO中的研究与应用