当前位置:文档之家› 智能终端软件开发设计报告

智能终端软件开发设计报告

智能终端软件开发设计报告题目: Android 手机团购小组成员:俊邱波中国地质大学()信息工程学院2013 年 12月1.项目概述智能手机现在已经全方位的扎入到我们的生活,而智能手机的操作系统—Android目前市场占有率很高,安卓操作系统的操作简单,代码开源使得安卓迅速成为现在主流,代码开放后,对于安卓软件的开发就没有了限制,用户可以用到广泛的免费软件。

Android的系统架构和其他操作系统一样,采用了分层的架构,分为四层,从高层向底层分别是应用程序层,应用程序框架层,系统运行库层和Linux核心层。

随着移动端的购物软件快速发展,淘宝移动客户端,京东商城移动客户端成为人们购物的常用工具。

在安卓软件市场,移动购物软件同游戏软件以及其他类型的软件在质量,数量都存在较大差距。

这次我们做的团购软件就是仿照美团,利用大众点评的API数据开发的,能够查看到全国100多个城市的团购项目,也能看到你当前位置周围的团购项目。

并且才用分页加载数据的方式,每次批量获取一定量的数据,这样大大的节约了流量,而对于图片的获取采用异步加载的方式,即先从服务器端获取图片,保存在本地的软引用中,再显示出来。

2.技术介绍2.1. Android 简介Android本意指“机器人”,最初由现任Google工程副总裁的安迪·罗宾(Andy Rubin),创建于2003年,2005年被Google收购。

2007年11月5日基于Linux核的软件平台和操作系统由Google正式发布,开启了一个新手机系统辉煌时代的开始。

同时Google联合了34家厂商并成立了“开放手机联盟”,开启了Android发展的最初标准和加盟支持原则。

2008年9月23日,Android初步发布SDK1.0。

第一款机型Dream G1的诞生(Android 1.0时代)在2009年10月23日。

不被市场认可--G1和G2逐渐被市场接受(Android 1.5时代) HTC Hero G3广受欢迎,成为最受欢迎的机型(Android 1.6时代)众多厂商加盟支持,机型越来越多,市场反应和占有率越来越高,同时伴随着Market出现爆发式增长。

然后支持蓝牙2.1、多点触控(Android 2.0时代),支持动态桌面(Android 2.1时代),支持在线视频Flash播放、网络共享功能,加入了Just-In-Time(JIT)功能较大提升了运行速度(Android 2.2时代)置NFC Reader功能、强化游戏性(Android 2.3时代),专门针对平板电脑进行优化的Android 3.0版(Android进入真正意义上的平板电脑时代)陆续上市。

2.2. Android平台特征1.支持组件的重用与替换。

意味着我们可以把系统中不喜欢的应用程序换掉,安装我们自己喜欢的程序。

2.Dalvik虚拟机专门为移动设备做了优化。

将class文件通过DX工具转换成后缀为.dex的文件来执。

Dalvik虚拟机基于寄存器,比java虚拟机快。

3.部集成浏览器基于开源的WebKit引擎。

4.优化的2D和3D图形库。

5.SQLite数据库,用于结构话的数据存储。

6.支持各种多媒体格式:MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF,7.GSM—全球通。

8.蓝牙、Wifi(无线局域网)、EDGE(GSM到3G的过渡)。

9.照相机、GPS、指南针和加速度计。

10. 丰富的开发环境包括设备模拟器,调式工具,存及性能分析表和Eclipse集成开发环境插件。

Google提供了Android开发包SDK,其中包含大量的类库和开发工具。

2.3. Android 平台架构Android操作系统结构分为4层,由上到下一次是应用程序、应用程序框架、核心类库和Linux核。

1.应用程序:Android连同一个核心应用程序抱一起发布,改应用程序包包括E-mail 客户端。

SMS短消息程序、日历、地图、浏览器、联系人管理应用程序等。

2.开发者完全可以访问核心应用程序所使用的API框架。

该应用程序框架用来简化组件软件的重用,任何一个应用程序度可以发布它的功能并且任何其他应用程序度可以使用其所发布的功能块。

应用程序都是由一系列的服务和系统组成包括:一个可扩展的视图(Views)、容管理器(Content Providers)、资源管理器(Resource Manager)、通知管理器(Notification Manager)、活动类管理器(Activity Manager)。

3.Android程序库通过Android应用程序框架为开发者提供服务主要核心库包括:系统C库、媒体库、Suface Manager、LibWebCore、SGL、3D libraries、FreeType、SQLite。

4. Android运行库包括一个核心库,提供java编程语言核心库的大多数功能。

5.Linux核:Android的核心系统服务依赖于Linux2.6核,如安全性、存管理、进程管理、网络协议、和驱动模型。

2.4. 数据解析方式介绍在移动端的开发中,最主要的两种数据解析方式为JSON解析和XML解析。

相比XML解析,JSON解析方式更加简单,而且从服务器端传递的数据量更少,从而更加省流量。

在Android应用框架中为我们提供了 JSON库,JSON库中主要包括以下两个JSON解析库。

1.JSONObject用于把对象型的JSON数据转化为JSONObject对象,然后使用get系列方法获取对象属性的数据。

其中最常用的方法为getString ,即获取数据并存为字符串,这样处理也是为了适应Web应用的特点。

除此之外,我们也经常使用getJSONArray和getJSONObject方法,它们的存在是为了处理复合型的JSON数据,分别用于获取数组型和对象型的属性值。

2.JSONArray用于把数组型的JSON数据转化成JSONArray对象,该类所提供方法和JSONObject类基本相同,只不过其中的get系列方法的参数都是整型(int),代表的是数组型的位置索引。

在Android平台上对XML的解析常常使用Simple API for XML(SAX) 、 Document Object Model(DOM)和Android附带的pull解析这三种方式。

SAX是一个解析速度快并且占用存少的xml解析器,非常适合用于Android等移动设备。

SAX解析XML文件采用的是事件驱动,也就是说,它并不需要解析完整个文档,在按容顺序解析文档的过程中,SAX会判断当前读到的字符是否合法XML语法中的某部分,如果符合就会触发事件。

所谓事件,其实就是一些回调(callback)方法,这些方法(事件)定义在ContentHandler接口。

DOM解析XML文件时,会将XML文件的所有容读取到存中,然后允许您使用DOM API遍历XML树、检索所需的数据。

使用DOM操作XML的代码看起来比较直观,并且,在某些方面比基于SAX的实现更加简单。

但是,因为DOM需要将XML文件的所有容读取到存中,所以存的消耗比较大,特别对于运行Android的移动设备来说,因为设备的资源比较宝贵,所以建议还是采用SAX来解析XML文件,当然,如果XML文件的容比较小采用DOM是可行的。

Pull解析器的运行方式与 SAX 解析器相似。

它提供了类似的事件,如:开始元素和结束元素事件,使用parser.next()可以进入下一个元素并触发相应事件。

事件将作为数值代码被发送,因此可以使用一个switch对感兴趣的事件进行处理。

当元素开始解析时,调用parser.nextText()方法可以获取下一个Text类型元素的值。

2.5. Event控制用户行为在Android系统中,所有的UI控件的动作都是通过事件监听器Listener来控制的;而UI控件的基类View视图类为我们提供了一系列设置事件监听器的方法,来为不同的UI控件设置对应的监听器;下面是几个比较常用的方法。

1.setOnClickListener(View.OnClickListener l)方法此方法用于设置控件被点击时触发事件的监听器。

在我们的软件中,就大量使用了这个方法。

另外,该监听器需要程序实现的抽象方法onClick(View v),参数只有一个,就是被点击的控件对象。

2.setOnFocusChangeListener(View.OnFocusChangeListener l)方法此方法用于设置控件焦点变化时触发事件的监听器。

当选中控件焦点变化的时候将触发OnFocusChangeListener监听器中的程序逻辑,该监听器需要程序实现的抽象方法为onFocusChange(View v,Boolean hasFocus),两个参数分别是控件对象本身和是否聚焦的状态值。

3.setOnKeyListener(View.OnKeyListener l)方法此方法用于设置按键触发事件的监听器。

当选中控件同时按下键盘的时候将触发OnKeyListener监听器中的程序逻辑,该监听器需要程序实现的抽象方法为onKey (View v,int keyCode,KeyEvent event),三个参数分别是按键时控件选中的控件对象,按键的码值,以及按键事件。

当然,Activity类本身已经包含了捕捉按键动作的onKeyDown方法;另外,OnKeyListener只能监听硬键盘事件,而我们却可以通过TextWatcher类来同时监听软键盘和硬键盘的响应。

4.setOnLongClickListener(View.OnLongClickListener l)方法此方法用于设置长时间按下控件时触发事件的监听器,用法和setOnClickListener方法基本相同。

5.setOnTouchListener(View.OnTouchListener l)方法此方法用于设置触屏事件的监听器。

对于目前流行的移动设备来说,都是匹配触摸屏的,所以触屏事件的运用围非常的广泛;另外,对于触屏设备来说,几乎所有的操作都是通过触屏来实现的,也包括之前提到的点击,按键等操作。

触屏事件监听器类(OnTouchListener)中需要程序实现的抽象方法为onTouch(View v,MotionEvent event),两个参数分别为触屏的视图控件和MotionEvent动作事件。

在使用的时候,我们可以使用MotionEvent对象的getAction方法来获取事件手势进行相应的处理,实例代码如下:OnTouchListener mTouchListener = new OnTouchListener() {Overridepublic boolean onTouch(View v, MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN:// 按下手势触发逻辑......break;case MotionEvent.ACTION_MOVE:// 拖动手势触发逻辑......break;case MotionEvent.ACTION_UP://松开手势触发逻辑......break;}return true;}};3.软件的系统架构软件在启动后,首先进入欢迎界面,延迟3秒后,进入主界面,软件主要有四大模块,全城团购,附近的团购,用户的登录与注册,以及软件的其他信息。

相关主题