基于Android 的移动互联网应用框架方案2012-08《电信工程技术与标准化》
黄佳星1, 2 王晶1, 2 沈奇威1, 2
(1. 北京邮电大学网络与交换技术国家重点实验室,100876,
2. 东信北邮信息技术有限公司,100191)
摘要
随着移动互联网的快速发展,市场对于移动互联网应用会有大量并且变化的需求。企业和个人开发者通过应用开发框架的支持,可以实现高效率的开发,并保证工程质量。本文分析了基于Android的移动互联网应用框架的需求,提出满足这一需求的框架设计方案。框架包含能力框架的三大组件、依赖于能力框架的服务以及UI框架。本文针对每一个部分,论述了功能要点以及设计思路。
关键词:应用框架 Android 移动互联网
Application Framework Scheme of Mobile Internet Based on Android
Huang Jiaxing1, 2 Wang Jing1, 2 Shen Qiwei1, 2
(1.State Key Lab of Networking and Switching Technology, Beijing University of Posts and Telecommunications, Beijing 100876, China; 2. EBUPT Information Technology Co. Ltd, Beijing 100191, China)
【Abstract】With the rapid growth of mobile Internet, there will be large and mutative demand for applications. With the help of application framework, enterprise and personal developers can achieve efficient development and create projects of high quality. This paper analyzes the demand for application framework based on Android and proposes a scheme which satisfies this demand. The framework consists of ability framework’s three components, the services based on ability framework and UI framework. This paper discusses the key functions and design ideas of each part of the framework respectively.
【Key words】Application Framework Android Mobile Internet
1 引言
移动互联网的快速发展是当今科技领域不可忽视的潮流,移动互联网是移动和互联网融合的产物,继承了移动随时、随地、随身和互联网分享、开放、互动的优势,是整合二者优势的“升级版本”[1]。,从个人的通信行为规律来讲,移动通信和固定通信类似。移动互联网给用户带来的全新的体验,代表了移动增值业务未来的发展方向[3]。智能终端应用作为广大用户使用移动互联网的重要途径,无论在推动移动互联网技术创新上,还是在满足广大用户的需求上,都扮演着越来越重要的角色。
Android是当前使用范围最广的智能终端平台。由于Android 平台在智能终端平台市场份额上的领先地位,基于Android的移动互联网应用具有大量的需求。在Android平台上更加高效率地开发应用,并且保证良好的软件结构,是所有Android研发企业和个人面临的挑战。如果能很好地解决这一问题,将能够帮助个人开发者和企业更好地适应移动互联网快速发展的节奏,创造更大的价值。
2 Android应用开发现状和应用框架需求分析
2.1 发展现状
当前的应用开发现状是:通常要从零开始,逐一开发应用所涉及的各项功能,当需要使用平台基础能力时,例如网络、存储等基础能力时,必须针对功能的特性,定义并实现相应的基础能力,再进一步完成功能的开发。这种开发模式存在的问题是开发时间成本高,软件之间的代码复用度低,软件结构不合理。
应用开发的基础支持方面,个人或企业开发者随着项目开发的积累,能够提炼出可复用的功能模块。然而作为应用开发过程中的支撑,这些模块通用性较差,完整性不足,不能够从本质上提高代码的复用度,对于开发效率的提升也不够明显。
2.2 需求分析
为了解决当前应用开发方式存在的问题,本文提出基于Android的移动互联网应用框架方案。该框架的目标是满足移动互联网领域的快速发展的背景之下,个人和企业开发者高效率开发并保证项目质量的期望。
应用框架的核心需求是对于网络、存储等基础组件的定义与实现。在此基础上,通过对于已实现基础组件的组合,提供实用的服务,并对应用开发提供友好的调用接口。
应用框架的作用是减少应用开发周期,节约人力、时间成本。开发团队在应用框架的帮助下,可以从平台数据存储、网络访问和结果解析等基础能力的实现细节中解放出来,专注于应用功能的设计与实现。
3 框架设计
3.1 框架结构图
框架结构如图-1所示。应用框架位于安卓四层结构中的应用层与应用框架层之间。分为基础能力框架与 UI 框架两个部分。
图 1 应用框架结构图
3.1.1 基础能力框架
基础能力框架的作用是提供移动互联网应用需要的基础能力和服务,包含底层的能力组件和上层的服务两个部分。
能力组件包含“数据存储”、“网络访问与结果解析”、“日志”三大组件。“数据存储”组件提供数据存储方面的支持;“网络访问与结果解析”提供访问互联网并且解析响应数据的能力;“日志”组件优化调试过程的信息输出与对运行时的信息进行记录。
通过对三项能力的整合,支持上层的服务。例如云端一键备份与数据还原服务、LBS服务等。
3.1.2 UI 框架
UI框架的作用是提升用户交互编程的效率。包括基于Tab的UI模板和UI控件库两个部分。
基于Tab 的UI模板面向包含多个并列子功能的应用;UI控件库封装和优化了与用户交互相关控件,使得这些控件更易于使用。
3.2 框架各模块功能具体分析
3.2.1 数据存储组件
Android 手机应用中数据存储的三种主要方式是SQLite数据库、preference存储、文件存储。应用框架通过对这三种方式的支持与优化提高开发数据存储相关功能时的效率和质量。
3.2.1.1 SQLite 数据库
Android 中通过SQLite 数据库引擎来实现结构化数据存储[4]。Android 在运行时集成了 SQLite,所以每个 Android 应用程序都可以使用 SQLite 数据库[5]。
应用框架通过以下方式提高SQLite数据库相关开发的效率和质量:对底层数据库操作API进行封装,保证调用方法的统一性和通用性,又对数据库操作的灵活性不造成太大的影响;通过SQL语句的优化,实现高效率的数据库操作;帮助了解数据库基本原理的应用开发者,不用过分关注数据操作的细节,更好地通过SQLite实现结构化数据存储。
3.2.1.2 Preference 存储
Preference 提供了一种轻量级的数据存储方法,应用场合主要是数据比较少的配置信息。它以“键-值”对的方式将数据保存在一个XML配置文件中[4]。相对于数据库存储而言,Preference 存储在操作上更加简洁,适用于小数据量、零散的、非结构化的数据存储。
应用框架通过对于这种存储方式的封装,做到统一管理、简化开发过程中对于Preference存储的使用。应用框架简化基于“键-值”对的数据存储过程,并且提供便捷的同时存储多组“键-值”对数据的方法。
3.2.1.3 文件存储
除了SQLite数据库和Preference 存储这两种方式存储之外,文件存储也是Android平台重要的存储方式。文件存储方式适用于文本文件、PDF文件、音视频文件和图片等。Android 提供了文件读写的方法。
应用框架对基于流的文件读写进行封装,对上层提供简洁、具有通用性的文件读写接口。
3.2.2 网络访问与结果解析组件
HTTP协议(Hypertext Transfer Protocol,超文本传输协议)是应用层协议,用于分布式协作超媒体信息系统,是一个客户端和服务器端请求和应答的标准。超文本传输协议是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准[7]。
HTTP协议被广泛地运用于移动终端与服务器端的交互,它是一个基于“请求-响应”模式的协议,一个客户机与服务器建立连接后,发送一个请求给服务器。服务器接到请求后,给予相应的响应信息[8]。
框架的“网络访问与结果解析”组件分为两个部分:
HTTP请求发起模块,帮助开发者更加便捷地向服务器端发起请求,请求的方式包括 GET 和 POST 两种模式。
HTTP 结果解析模块,当前最为流行的网络数据传输格式是 XML,而JSON格式是一种轻量级的数据交换格式[9],载荷高、易于通过编码进行解析的特点使其非常适合移动互联网领域的数据传输。应用框架支持XML、JSON两种数据格式的解析,并通过良好的设计做到解析方法的通用性。
3.2.3 日志组件
在程序开发过程中,日志(Log)是广泛使用的用来记录程序执行过程的机制,它既可以用于程序调试,也可以用于产品运营中的事件记录。在Android系统中,通过工具类android.util.Log提供了日志机制。
应用框架的日志组件主要涉及两方面内容:调试辅助以及运行事件记录。
日志组件对工具类的API进行封装,统一管理应用的调试信息输出,使得开发者在应用开发的调试过程中更简单、便捷地使用日志。另一方面,日志组件需要结合文件或数据库存储组件,实现关键日志的存储,完成重要运行事件的记录,以备分析。
3.2.4 云端一键备份与还原服务
移动互联网应用中,用户在使用应用的过程中会生成个人数据。为了使用户能够更好地享受应用服务,在应用个人数据存储上,需要解决以下问题:个人用户多终端数据同步,即当用户更换手机或同时使用多台智能终端时,终端之间的数据迁移应当是简单易行的。当用户手机丢失或因为应用重置,丢失本地数据存储时,能够恢复最新版本的数据。
云端一键备份与还原服务是解决上述问题的有效途径。该服务通过整合“数据存储”、“网络交互”、“日志”三大组件能力 ,提供了的用户数据的备份和还原能力。
实现该服务的思路是采用配置的方式对需要备份数据进行声明,根据配置生成网络中传输的数据,接受到数据后,经过解析,提取数据,存入数据库。
备份与还原在流程和原理上是一致的,流程图如图-2所示。在使用该流程进行数据维护时,备份与还原的区别在于,备份时数据源是客户端,还原时数据源是服务器端。
图2 备份和还原服务流程图
3.2.5 UI 框架
3.2.5.1 基于Tab 的UI模板
通过对当前热门应用客户端的观察和分析,发现基于Tab的UI结构是一种常见的UI结构。当应用内包含多个并列的子功能时,基于Tab的UI结构能够很好解决手机终端有限屏幕上排列多项子功能的需求,并能够快速地进行切换。UI框架包含一个易用的、可扩展的基于Tab的UI模板,对包含并列的子功能的应用提供支持。
3.2.5.2 UI控件库
移动互联网应用在完成与用户的交互过程中,需要使用众多能够实时显示信息、允许用户操控的UI控件。系统自带控件在使用过程中,易用性不同,某些控件的调用方法较为繁琐。UI控件库的设计与实现目标是让用户交互相关控件更易于使用,提高用户交互方面的开发效率。
4 结束语
基于Android的移动互联网应用框架顺应了蓬勃发展的移动互联网需要高效开发应用的趋势,帮助企业和个人开发者减轻工作量,高效率地开发应用,保证良好的软件结构,并且提高了代码的复用率。该应用框架的设计与实现在移动互联网应用开发方法的创新上具有重要的科研价值,在实际的产业开发过程中,具有广阔的应用前景。
参考文献
[1] http://www.hudong.com/wiki/移动互联网
[2] 吕新荣,廖建新,朱晓民,武家春.无差别移动性管理网络[J],通信学报,2007,7(28):5-7
[3] 徐童,廖建新.移动互联网与移动智能网的互通研究[J],计算机工程与应用,2005,20(1):9-12
[4] 郭宏志著.Android 应用开发详解.电子工业出版社.2010:195, 190
[5] http://www.ibm.com/developerworks/cn/opensource/os-cn-sqlite/
[6] Network Working Group. HTTP methods: USA, internet RFC 2616 , (2004-09-01) http://www.w3.org/Protocols/rfc2616/rfc2616.html.
[7] http://www.hudong.com/wiki/HTTP协议
[8] Balachander Krishnamurthy、Jennifer Rexford著.Web 协议与实践.科学出版社.2003:120
[9] Introducing JSON[EB/OL], http://www.json.org/
* 基金项目:国家自然科学基金(No. 61101119,61121001,61072057,60902051);长江学者和创新团队发展计划资助(No. IRT1049);国家科技重大专项(No. 2011ZX03002-001-01,移动互联网总体架构研究)..