APP下载

基于Android Dojo的移动互联网软件开发方法※

2012-09-21章亦葵王哲文

单片机与嵌入式系统应用 2012年7期
关键词:服务器端时序云端

章亦葵,王哲文

(天津大学 软件学院,天津300072)

引 言

随着智能手机市场的发展,Android已经成为了当前市场中的主流平台,而Android平台程序也随之成为了开发的热门。针对目前Android平台编程的现状,本文采用HTML、CSS、JavaScript语言来编写Android平台应用程序,利用HTML简单的布局,很大程度地提高了编程效率。[1]系统的设计按照软件工程的思路,从需求开始,到设计、编码实现、测试交付,完整地完成了一个软件周期。

1 Android平台简介

Android是基于Linux内核的软件平台操作系统,早期由Google公司开发,后由开放手机联盟Open Handset Alliance开发。[2,9-10]它包括操作系统、用户界面、应用程序以及移动电话工作所需的全部软件。它采用了软件堆层(software stack,又名软件叠层)的架构,主要分为三部分:

① 底层以Linux核心为基础,由C语言开发,只提供基本功能。

② 中间层包括函数库Library和虚拟机Virtual Machine,由C++开发。

③ 最上层是各种应用软件,包括通话程序、短信程序等,应用软件由各公司自行开发,以Java编写。[3-4]

随着Android系统的不断发展,由Google公司主导的Android已经开始向Iphone发起挑战。[5]Android系统架构图如图1所示。

2 关键技术介绍

2.1 Dojo

Dojo是一个用JavaScript语言实现的开源DHTML工具包。它是在几个项目捐助基础上建立起来的(nWidgets、Burstlib、f(m)),这也是叫它a"unified"toolkit的原因。Dojo的目标是解决开发DHTML应用程序中遇到的那些长期存在的历史问题以及Historical problems with DHTML跨浏览器问题。[6]

Dojo有以下的特征:

◆利用Dojo提供的组件,你可以提升Web应用程序的可用性、交互能力以及性能。

◆可以更容易地建立互动的用户界面,同时Dojo提供小巧的动态处理工具。

◆利用它的低级API和可兼容的代码,能够写出轻便的、单一风格的JavaScript代码。Dojo的事件系统、I/O的API以及通用语言形式是基于一个强

图1 Android系统架构图

大的编程环境。

◆通过Dojo提供的工具,可以为你的代码写命令行式的单元测试代码。

◆Dojo的扩展包能够使你的代码更容易维护,耦合性更低。

Dojo通过很少的代码完成了以上的功能。当写脚本时,只需要包含很少的JS文件,也可以有选择地下载Dojo提供的庞大的功能。

2.2 JSON

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition-December 1999)的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言,易于人阅读和编写,同时也易于机器解析和生成。[7]

JSON建构于两种结构:

① “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object)、记录(record)、结构(struct)、字典(dictionary)、哈希表(hash table)、有键列表(keyed list)或者关联数组(associative array)。

② 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。

3 环境的搭建

本文中推荐使用Ubuntu 10.0.1版本的操作系统,开发平台使用Eclipse集成开发环境。服务器使用Tomcat 6.0版本,数据库使用开源的 MYSQL5.0,JDK版本采用1.6,Android的SDK版本采用10.0.1。[8]

4 项目需求

本文设计了一个小的场景作为程序的需求,如图2所示。

图2 系统需求用例图

首先来解释图2中所示的需求,假设和朋友一起外出,到了吃饭的时候,首先通过应用程序来查找附近的饭店,然后选择一家餐馆用餐,用餐之后通过手机进行支付,同时在应用中分享对餐馆的评价。由于需要进行查看餐馆优惠信息、查看餐馆评价等活动,需要进行大量的运算和存储,因此,本程序设计是将数据的运算和存储都放到了云端,而手机端只进行简单的数据解析和显示。这样的云端加手机端的设计,既发挥了云端计算速度快、存储容量大的特点,又发挥了移动端便携的优势。

5 系统架构设计

总体上讲系统设计为两个部分:一部分是手机上的客户端,另一部分是远程的服务器端。手机端负责向服务器端发送请求,显示服务器端返回的信息,而服务器端则响应手机端的请求,将信息按照指定的格式返回。由于本程序对数据的运算和存储都在云端进行,因此手机端和云端需要有大量的数据交换,为了应对由此产生的流量问题,决定采用轻量级的JSON数据结构作为手机端和云端进行数据交换的格式。这样既能减少因为数据交换而产生的流量,又可以完成手机端和云端之间频繁的数据交换。

6 系统详细设计

本文中主要进行手机端应用程序的设计。使用HTML、CSS、JavaScript作为开发语言,运用Dojo框架完成手机端应用程序的开发。与服务器的交互采用JSON轻量级的数据格式,在页面展示部分运用Dojo框架辅助进行展示。

用户登录系统之后,选择查看附近餐馆信息,此时手机端系统会向远端的服务器发送包含自身经纬度信息的请求,服务器端接收请求之后,进行运算和查找,将返回的信息用JSON格式进行包装发送回手机端,查看附近餐馆时序图、查看餐馆信息流程如图3、图4所示。

图3 查看附近餐馆时序图

图4 查看餐馆信息流程

用户在登录系统之后,选择查看附近餐馆信息,当用户选择其中一间餐馆进行详细查看的时候,就能够看到餐馆全部的信息以及其他用户对餐馆的评价。手机端会向服务器端发送包含餐馆ID以及评论条数作为参数的信息,服务器端接收到信息之后会将信息以JSON格式发送回来。手机端在对接收到的信息进行解析之后,将信息显示出来。查看餐馆信息时序图、查看餐馆评价信息流程如图5、图6所示。

图5 查看餐馆信息时序图

图6 查看餐馆评价信息流程

用户在登录系统之后,查看了某一餐馆的具体信息,如果这家餐馆有打折活动,就可以查看这家餐馆的优惠信息。手机端会向服务器端发送请求,服务器端会将这家餐馆的全部打折信息以JSON格式返回。手机端接收到信息之后,进行解析显示,查看餐馆优惠信息时序图、查看餐馆优惠信息流程如图7、图8所示。

图7 查看餐馆优惠信息时序图

图8 查看餐馆优惠信息流程

用户在用餐完毕之后,可以选择对这家餐馆进行评价,同时可以将评价信息分享到微博等社交工具上,方便朋友们进行参考。手机会将评价信息以JSON格式发送到服务器上,服务器将数据解析之后存入数据库中,同时利用已经开发好的接口,将信息自动发往微博保存,发表评论信息时序图、发表评论信息流程如图9、图10所示。

图9 发表评论信息时序图

系统样品展示略——编者注。

结 语

图10 发表评论信息流程

Android平台作为当前最为流行的平台,具有巨大的市场潜力,仅仅能够单机运行的程序势必会渐渐地被能够与云端、移动互联网相关联的程序所取代。可以预见,未来以Android为平台的,与云计算、云存储相结合的程序将是发展的主流,将是嵌入式智能手机应用程序的发展方向。使用Dojo作为开发框架,能够提高布局编程效率,降低了移动互联网程序的门槛,使移动互联网程序更加容易开发。

编者注:本文为期刊缩略版,全文见本刊网站www.mesnet.com.cn。

[1] J F DiMarzio.Android:A Programmer's Guide[M].New York:McGraw-Hill,2009.

[2] 公磊,周聪.基于Android的移动终端应用程序开发与研究[J].计算机与现代化,2008(8).

[3] 韩超,粱全.Android系统原理开发要点详解[M]北京:电子工业出版社,2010.

[4] 靳岩,姚尚朗.Android入门开发与实践[M].北京:人民邮电出版社,2009.

[5] 杨丰盛.Android应用开发揭秘[M].北京:机械工业出版社,2010.

[6] Rawld Gill,Craig Riecke,Alex Russell.精通 Dojo[M].北京:人民邮电出版社,2009.

[7] Douglas Crockford.JavaScript语言精粹[M].北京:电子工业出版社,2009.

[8] 余志龙.Android SDK开发范例大全[M].北京:人民邮电出版社,2009:120-150.

[9] 王向辉,张国印,沈洁.Android应用程序开发[M].北京:清华大学出版社,2010:1-60.

[10] E2ECloud工作室.深入浅出 Google Android[M].北京:人民邮电出版社,2009.

猜你喜欢

服务器端时序云端
清明
Linux环境下基于Socket的数据传输软件设计
云端之城
基于不同建设时序的地铁互联互通方案分析
浅析异步通信层的架构在ASP.NET 程序中的应用
基于FPGA 的时序信号光纤传输系统
行走在云端
基于Qt的安全即时通讯软件服务器端设计
云端创意
基于模体演化的时序链路预测方法