当前位置: 首页 > 指南 > 正文

移动互联网终端 提出了一种应用开发统一架构。架

作者:admin 发布时间:2023-11-03 21:24:35 分类:指南 浏览:120


  提出了一种应用开发统一架构。架构包括移动互联网终端应用的统一开发框架和开发环境两部分,目的在于最大程度地降低技术门槛,提高复用程度和抹平操作系统差异。该架构不仅能支持移动应用的开发,还将支持未来陆续推向市场应用的开发,使得技术资产能够得到复用并持续增值。开发移动应用时,企业需要根据用户的需求特点、开发人员技术储备能力、产品上线时间窗口、开发成本等多个因素综合考虑,最终选择最优的开发模式和方案。

  移动应用;开发模式;统一解决方案

  This paper describes a unified architecture for application development. This architecture includes a unified development framework of mobile internet terminal and development environment. The architecture minimizes the technical threshold, improves the degree of reuse, and unifies the differences in operating systems. The architecture supports current and future development of mobile applications put into the market one after another. The supporting of mobile application development can make the technology assets be multiplexed and sustained value-added. Enterprises need to consider user demand, the capacity of technology developers, the time of a product lunching, and development costs when developing a mobile application. Only then can they choose the best development model and programs.

  mobile application; development mode; unified solution

  苹果的iOS、谷歌Android和微软的Window Phone是3种主流的移动终端操作系统[1-2]。在此之上,各厂商都创建了相应的移动互联网终端应用生态环境:操作系统厂商提供操作系统层的开放接口和开发平台,第三方专业应用开发商或个人开发者基于开放接口和开发平台进行应用的开发,而消费者个人在享受丰富的移动互联网应用的同时,也贡献出个人的商业价值。截至2013年6月,苹果AppStore中的应用数量超过90万个,谷歌android应用市场Google Play中的应用数量接近100万个,微软的应用商店的应用数量也已经超过10万个。移动互联网终端应用的开发因操作系统及开发语言的不同而存在多种开发模式,不同的开发模式都存在相应的关键技术,同时,也对开发人员的开发技能提出了各种不同的要求。为了提高应用的用户覆盖率,每一款移动应用都会尽可能地支持iOS和Android操作系统,甚至Windows Phone操作系统。然而我们知道,各类操作系统平台在开发语言、开发工具等方面存在着巨大的差异,技术门槛高,移植工作量大,开发成本也比较高。特别地,由于操作系统间存在的较大差异,使得专业的应用开发商不得不将不同操作系统类型的移动应用交由多个专业团队开发,不同团队研发的不同操作系统的版本很容易出现用户体验不一致等问题。如何高效快速开发移动终端应用,同时确保较高的开发质量和较低的开发成本,并保证不同类型操作系统版本的用户体验一致性,是移动互联网终端应用开发最重要的实现目标。

  1 移动互联网终端应用的

  开发模式

  1.1 移动应用开发模式分析

  从总体上讲,现有的移动互联网终端应用开发方式主要有原生模式、Web模式和混合模式3种类型。这3种不同的开发模式,各自具有自身的优缺点,因而也各自有着不同的应用场景[3]。

  (1)原生应用开发模式

  原生应用开发模式也称Native开发模式,开发者需要根据不同的操作系统构建开发环境、学习不同的开发语言及适应不同的开发工具。原生应用开发模式如图1所示。

  Native应用开发模式其最大的优势是,基于操作系统提供的原生应用程序接口(API),开发人员可以开发出稳定、高性能、高质量的移动应用;缺点是,需要具备多种不同开发语言和开发工具的开发能力,开发、更新、维护的周期长,所以对于专业性要求比较高的移动应用,大都由具有较高技术水平的团队作为保障,团队内部不同操作系统版本的应用开发人员之间的工作需要密切合作,确保版本质量及不同版本被消费者使用时具有一致性的用户体验,团队间的沟通协调成本也较高。

  Native应用开发模式适用场景是针对那些高性能、快速响应类的面向广大用户的终端应用。例如:有些3D游戏类应用(APP)需要提供实时响应的丰富用户界面,对这类APP而言,Native开发模式可以充分展示其性能和稳定性优势,只要投入足够的研发力量,都可以开发出高质量的APP。

  (2)Web应用开发模式

  超文本链接标记语言(HTML5)技术的兴起给Web APP注入了新的生机。由于浏览器作为移动终端的基本组件以及浏览器对Web技术的良好支持能力,熟悉Web开发技术的人才资源丰富,使得Web APP具有开发难度小、成本低、周期短、使用方便、维护简单等特点,非常适合企业移动信息化的需求。特别是上一轮的企业信息化在PC端大多选择了浏览器/服务器(B/S)架构,这样就能和Web APP通过手机浏览器访问的方式无缝过渡,重用企业现有资产。对于性能指标和触摸事件响应不苛刻的移动应用,Web APP完全可以采用Web技术实现,但是对于功能复杂,实时性能要求高的应用,Web APP还无法达到Native APP的用户体验。

  (3)跨平台Hybrid应用开发模式

  Hybrid APP是一种结合Native开发和Web开发模式的混合模式[4],通常基于跨平台移动应用框架进行开发,比较知名的第三方跨平台移动应用框架有PhoneGap、AppCan和Titanium。这些引擎框架一般使用HTML5和JavaScript作为编程语言,调用框架封装的底层功能如照相机、传感器、通讯录、二维码等。HTML5和JavaScript只是作为一种解析语言,真正调用的都是类似Native APP的经过封装的底层操作系统(OS)或设备的能力,这是Hybrid APP和Web APP的最大区别。

  企业移动应用采用Hybrid APP技术开发,一方面开发简单,另外一方面可以形成一种开发的标准。企业封装大量的原生插件(Native Plugin),如支付功能插件,供JavaScript调用,并且可以在今后的项目中尽可能地复用,从而大幅降低开发时间和成本。Hybrid APP的标准化给企业移动应用开发、维护、更新都带来了极高的便捷性,如工商银行、百度搜索、街旁、东方航空等企业移动应用都采用该方式开发[5]。

  1.2 3种应用开发模式比较

  在运行态下,3种不同应用运行所需要的运行环境各不相同,其中和Web相关的应用模式,其运行环境需要浏览器或浏览器模块(如Webview)的支持。Native、Web和Hybrid运行图如图2所示。

  下面,我们从不同的维度,对3种不同类型的移动应用开发模式进行分析和比较,并对其适用场景作简要说明。3种不同开发模式的比较如表1所示。

  每一种开发模式都有自己的优缺点,企业或开发者需要根据用户的需求、自身的技术储备能力、产品上线时间压力、成本等多个因素综合考虑,选择适用的开发模式,最优的开发模式不是一成不变,而是在于选择、搭配灵活的架构解决方案。

  2 应用开发关键技术

  前面介绍了移动应用开发的3种模式,下面我们将对移动应用开发经常用到的相关关键技术进行介绍和分析。

  (1)网络访问加速技术

  移动网络发展迅猛,目前运营商提供各种从2G、3G、Wi-Fi甚至4G的试点网络,如何确保用户在各种复杂网络环境下使用移动应用获得良好的体验,是移动应用开发中的关键问题之一。总体指导原则为:应用动态感知用户的网络状况,调整应用处理逻辑和应用内容展现机制。例如:在没有网络的情况下,应用需要从缓存中获取数据展现给用户;在2G/3G网络的情况下,数据均通过压缩传输,图片通过设置确定是否加载,大图默认不加载;在Wi-Fi网络的情况下,默认加载完整数据和图片,并对数据进行预读和缓存。

  用户在使用移动应用过程中,会出现网络切换、网络中断、网速异常下降的情况。应用需要根据网络异常进行严格处理,如网络请求采用异步线程处理,不影响用户的主流程操作和响应;在代码编写中对网络请求代码做多重异常保护措施,增强代码的健壮性,防止应用因为网络不稳定导致闪退等问题。

  (2)能耗控制技术

  受限于电池的供电能力,移动应用的耗电控制是开发过程中要重点考虑的因素之一。

  应用耗电控制的技术涉及到应用开发方法和应用网络访问等多个方面。在应用开发中,需要掌握各种省电的手段。例如使用JPEG格式图片、减少不必要的JS库加载、减少内存占用降低应用耗电量,另外在Android应用开发过程中尽量多采用GridView组件,该组件在一个应用页面切换到另外一个页面时候GridView可以智能地以整页生成的方式刷新界面,这不仅能加快刷新速度,同时也降低了CPU和内存的使用率,这样可以大大节约应用耗电量。网络频繁访问和大数据交互也是应用耗电的一大重要原因,应用设计过程中,需要考虑应用网络访问的频度并减少不必要的数据交互。

  (3)安全技术

  在移动互联网的大环境之下,安全问题无处不在。移动应用的安全包括数据安全和运行安全,其中数据安全保护目的是防止静态和传输中的数据泄露,涉及到数据的安全存储、清除及数据通信的加密两个方面。在开发过程中,应用需要明确规定机密数据范围以及可存放于移动设备的数据的范围,机密数据必须存储于固定加密空间中。此外,应用还可能需要支持远程删除丢失或遭窃设备中的数据。对重要业务系统的访问需要通过加密通道,访问地址支持黑白名单控制等方式进行数据的访问控制。

  在应用开发过程中还需要注意,应用内针对用户输入密码的文本框,应提供软键盘输入方式,禁止第三方输入法输入,避免通过拦截用户输入获取用户密码,有效增加应用的安全机制。应用运行安全是要实现应用运行态下的应用隔离,让第三方的钩子程序无法获知应用入口不能够加载关联外部应用。

  (4)开发框架选择技术

  开发框架主要定义了整体结构、类和对象的分割,及其之间的相互协作、流程控制,便于应用开发者能集中精力于应用本身的实现细节。同时,框架更加强调设计复用,好的框架可以让开发者事半功倍。

  常用的Java Script开发框架种类非常繁多。jQuery Mobile是jQuery公司的针对手机和平板设备,经过触控优化的Web框架,在不同移动设备平台上可提供统一的用户界面。jQuery Mobile框架基于渐进增强技术,并利用HTML5和CSS3特性。Sencha Touch是一款HTML5移动应用框架,通过它创建的Web应用,在外观上感觉与iOS和Android本地应用十分相像。它利用HTML5音频/视频并进行本地存储,利用CSS3提供圆角、背景渐变、阴影等广泛使用的样式。

  Android Annotations是一个开源的Native应用开发框架,该框架提供的Android依赖注入(Dependency Injection)方法,可以使得开发Android应用和J2EE项目一样方便,加速Android 应用的开发。根据应用需要的关键需求,权衡选择应用的开发框架,是基本原则。

  (5)能力接口封装技术

  在跨平台技术开发应用过程中,为了实现能力统一调用及接口复用,通常需要将系统底层的能力封装成统一的接口,如JS形式的接口,从而使HTML5/JS编写的代码能通过浏览器核心模块Webview组件实现底层能力的调用[6],如摄像头、定位、通讯录等能力。由于存在多种不同的终端操作系统,如Android、iOS、Windows Phone等,如何实现同一个接口功能在不同操作系统上的封装,是Hybrid类应用开发的关键技术之一。能力接口的封装具有重要的价值和应用前景,可以广泛应用于移动终端,例如网络电视(IPTV)机顶盒等终端类产品。

  (6)远程服务的调用技术

  远程服务调用是移动应用与后台服务之间数据交换的实现方式,移动应用通常使用基于超文本传输协议(HTTP)的Web Service协议来实现终端和服务器之间的数据交换[7]。Web Service通常基于简单对象访问协议(SOAP)的标准方式和基于表述性状态转移(REST)两种方式。前者由于数据传输量较大,应用场景受限;后者能基于可扩展标记语言(XML)和JSON等的多种方式。特别地,JSON是一种轻量级的数据交换格式,以容易阅读、解析速度更快、占用字节更少等优点在移动应用领域比原有的XML数据格式更受欢迎。由于采用字符串式的内容编解码,JSON串的处理性能更高,更有利于提供移动应用的性能及用户体验。目前业界有多种JSON的开源实现,选择高性能的JSON编解码器也是提升移动应用远程服务调用性能的关键技术。

  (7)Web展现技术

  该技术主要用于Web、Hybrid模式中的用户交互界面的开发,利用HTML5、Java Script、CSS3实现界面展现、业务逻辑、人机交互和特效展现。使Web开发工程师可采用熟悉的HTML5、CSS3完成终端的应用展现,如使用localStorage存储用户持久化数据、sessionStorage存储用户临时数据如登录信息等。业务逻辑处理通过Java Script代码实现,增加touchstart、touchmove、touchend等多点触摸事件提高用户交互,通过Web展现技术开发的应用可以和Native的应用媲美。同时该技术开发的应用具有良好的跨平台优势、应用升级简单、用户不需要到应用商店更新应用等特点,是成为越来越多应用开发者追捧Web技术开发的主要原因。

  3 一种移动互联网终端

  应用开发架构

  基于对移动互联网应用开发模式及其关键技术的分析,本文提出了一种移动互联网终端应用开发的统一架构,如图3所示。

  移动互联网终端应用的统一架构包括移动互联网终端应用的统一开发框架和开发环境两部分。其中,对统一开发框架而言,采用分层的架构,减少了模块间的耦合;应用组件、系统中间件具有良好的扩充性,能够更好应变未知的需求;框架具有高复用性,从而有效地节省开发工作量,提高开发效率。开发环境是应用开发人员物理上感知到的最前端,让开发者可以通过简单易用的开发工具,基于开发框架和模板开发,快速构建移动应用,同时开发工具中需要集成终端模拟器和仿真测试环境,便于离线开发和测试,进一步提升效率。

  统一开发框架主要分为系统中间件和应用组件。

  系统中间件主要完成对底层系统能力的封装,使应用层可以通过系统中间件的桥梁和系统通信,提供能力接入、能力暴露、安全控制和能力封装功能,从而避免应用组件直接和OS层交互,可实现与应用开发语言无关,减少对OS层依赖。此外,跨平台的统一接口调用,可以缩短开发周期,降低开发成本。

  应用组件层主要提供了可复用的应用组件,包括能力组件、可视化组件等。能力组件主要提供应用基础类库比如企业应用的安全数据加密、对应用进行日常的日志记录等;同时还提供系统层面的服务方法,比如应用中需要使用手机的通讯录向好友发短信或者打电话。可视化组件主要提供基础的用户可感知的组件,展现层提供了Native和Web可视化组件,为了满足各个应用展现的要求,弥补目前游戏和社交等高交互性的不足,开发者可以根据自己的需求选择不同的展现组件。

  此外,终端应用还需要通过远程调用接口与各种云服务提供的数据存储、服务能力进行交互,让终端应用开发统一平台和云计算服务有机的结合[8-9],为用户提供更加丰富和快捷的功能。

  4 结束语

  由于当前移动应用是业界的热点。各行各业都陆续为越来越多的关键服务赋予移动特性,许多企业正力求找到最佳的开发方法来实现目标。但种种实践表明,每一种开发模式都具有一定的局限性,没有哪一种方法能够满足所有对移动应用的要求。本文提出应用开发统一架构的目的在于最大程度地降低技术门槛,提高复用程度和抹平操作系统差异。在此基础上,具体采用哪种模式开发移动应用,需要企业根据面向用户的需求特点、开发人员技术储备能力、产品上线时间窗口、开发成本等多个因素综合考虑,最终选择最优的开发模式和解决方案。本文提出应用开发统一架构不仅能支持首款移动应用的开发,还将支持未来陆续推向市场应用的开发,使得技术资产能够得到复用并持续增值。

  参考文献

  [1] 中国互联网络信息中心, 第32次中国互联网络发展状况统计报告 [R]. 北京: 中国互联网络信息中心, 2013.

  [2] IDC, Android and iOS Combine for 91.1% of the Worldwide Smartphone OS Market in 4Q12 and 87.6% for the Year [R]. According to IDC, 2013.

  [3] 中国互联网络信息中心, 2012年下半年中国中小企业互联网应用状况调查报告 [R]. 北京: 中国互联网络信息中心, 2013.

  [4] 陆钢, 朱培军, 李慧云, 等. 智能终端跨平台应用开发技术研究 [J]. 电信科学, 2012,05:14-17.

  [5] 刘泽. 我国企业应用商务智能的现状、挑战与对策研究 [J]. 科技管理研究, 2012,02:34-37.

  [6] LIU Chengcheng, ZHAO Yang. Intelligent phone app design guided by the user-centered concept [C]//Proceedings of 2011 IEEE 12th International Conference on Computer-Aided Industrial Design & Conceptual Design Vol.1. 2011:4.

  [7] 郭敏. 基于Mashup的移动应用开发架构设计和研究 [J]. 移动通信, 2011,20:73-77.

  [8] LEE H S, KIM T G, CHOI J Y. A Study on the Factors Affecting Smart Phone Application Acceptance [C]//Proceedings of 2012 3rd International Conference on e-Education, e-Business, e-Management and e-Learning. International Economics Development and Research Center (IEDRC). 2012:8.

  [9] SONG B, LEE C Y, P Y T. Identifying Critical Factors for Customer Satisfaction in Mobile Application Service:A Semantic Text Mining and Bayesian Network Approach [C]//Proceedings of 2011 International Conference on Management and Service Science. International Economics Development and Research Center (IEDRC). 2011:5.


标签:应用开发


相关推荐

最新推荐

关灯