基于Android平台的生活小助手app的设计与实现.docx
《基于Android平台的生活小助手app的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Android平台的生活小助手app的设计与实现.docx(31页珍藏版)》请在冰豆网上搜索。
基于Android平台的生活小助手app的设计与实现
天津工业大学
毕业设计(论文)
基于android平台的生活小助手app的设计与实现
姓名
学院
专业
指导教师
职称
年月日
摘要
随着智能手机的快速普及,智能手机操作系统市场风生水起。
为了让智能手机用户能够随时随地查询互联网所提供的服务,一种高效的办法就是将应用系统的功能拓展到手机终端上,让手机能够通过移动网以及互联网访问Web网站并处理各种各样的业务。
因此,智能手机的应用软件及其需要的服务将有广阔的发展前景。
在如今这个智能手机系统群雄纷争的时候,2008年Google推出了一款名为Android的开源智能手机操作系统,它采用Linux内核,开放手机联盟(OHA)成员可以任意使用和修改SDK包,系统的开源性使其具有良好的拓展性。
这款软件包括了操作系统、用户界面和应用程序,即智能手机工作所需要的全部软件。
Android的最大特点是其开放性体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功能以及强大的浏览器。
因此,对于软件从业人员来说,Android平台具有无限的吸引力。
本文就在分析讨论Android手机软件开发技术原理的基础上,开发出能为用户提供更好的基于Android平台的4G生活小助手app软件。
关键词:
Android;天气;生活助手;
Abstract
Withtherapidpopularizationofintelligentmobilephone,intelligentmobilephoneoperatingsystemmarketfast.InordertomakeintelligentmobilephoneuserscanquerytheservicesprovidedbytheInternetanytime,anywhere,toexpandthefunctionanefficientapproachistheapplicationofthesystemtothemobilephoneterminal,letthephonethroughthemobilenetworkandInternetaccesstoawebsiteandhandleawidevarietyofbusiness.Therefore,theintelligentmobilephoneapplicationsoftwareandservicewillhavebroadprospectsfordevelopment.
Innowthesystemofintelligentmobilephonewarlordsdispute.In2008,GooglelaunchedaproductcalledAndroidopen-sourcesmartphoneoperatingsystem,whichusesLinuxkernel,OpenHandsetAlliance(OHA)memberscanbefreetouseandmodifytheSDKpackage,theopen-sourcesystemmakeitwithgoodscalability.Thissoftwareincludestheoperatingsystemuserinterfaceandapplicationsthatneedintelligentmobilephoneallthesoftware.ThebiggestfeatureofAndroidisitsopenarchitecture,notonlyhasaverygooddevelopmentanddebuggingenvironment,butalsosupportavarietyofscalableuserexperience,includingrichgraphicalcomponents,multimediasupport,andpowerfulbrowser.Therefore,forsoftwarepractitioners,Androidplatformhasunlimitedappeal.
ThisarticleonthebasisofanalysisandDiscussionontheAndroidmobilephonesoftwaredevelopmenttechnology,developedtoprovideuserswithbetterAndroidplatformbasedonthe4Glifeofsmallassistantappsoftware.
Keywords:
Android;weather;lifeassistant;
第1章引言
1.1选题的目的及意义
Android是谷歌于2007年公布的开放式源代码手机系统,它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。
这使得越来越多的人关注这个操作系统。
本次作品天气系统就是基于Android平台的。
Android操作系统是世界上最流行的手机操作系统之一,它在智能手机市场的占有率达到40%以上。
越来越多的人开始使用Android智能手机,而基本上Android手机都自带摄像头,可以实现拍照、录像等功能。
但一般情况下,拍的照片或者录像在当时只能自己才能看到。
如果想发给远方的亲朋好友,要通过彩信或者4G视频电话等功能实现,这样做不仅资费高,而且十分不便。
本文的设计思想是利用Android手机的摄像头,调用多媒体框架OpenCore实现视频采集、编码,并通过RTP协议把视频打包发送到PC客户端。
利用手机4G传输网络,实现手机拍摄、PC客户端观看视频的功能。
1.2研究现状
Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。
Android是基于Linux内核的软件平台和操作系统,早期由Google开发(在华注册商标名为“安致”),后由开放手机联盟(OpenHandsetAlliance)开发。
它采用了软件堆层(softwarestack,又名以软件叠层)的架构,主要分为三部分。
低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。
另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。
Android在未公开之前常被传闻为Google电话或gPhone。
大多传闻认为Google开发的是自己的手机电话产品,而不是一套软件平台。
到了2010年1月,Google开始发表自家品牌手机电话的NexusOne。
1.3本系统要实现的基本目标和研究内容
本文要实现的基本目标和主要研究内容有以下几个方面:
天气查询功能:
点击跳转到天气界面,开始查询默认城市的天气,并可以添加、删除城市;
食谱查询功能:
点击跳转到食谱界面,可以查询、浏览食谱信息、存储食谱信息、并且可以自制食谱,可以通过人气访问量等对首页推送消息进行排序;
列车查询功能:
点击跳转到列车界面,可以通过站站、车次查询列车信息。
第2章系统的可行性研究
当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,是的手机操作系统也出现了不同各类,现在的市场主要有三个手机操作系统,Windowsmobile,symbian,以及谷歌的Android操作系统,其中占有开发源代码优势的Android系统有最大的发展前景。
那么能否在手机上拥有自己编写的个性天气系统呢?
能的,谷歌Android系统就能做到。
本文的天气系统就是基于谷歌Android手机平台的程序。
2.1经济上的可行性
Android 是Google历经数年和投资数亿美元开发出来的智能手机系统,是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统。
随着各大移动终端生产商大力开发和生产基于 Android 的移动智能设备, Android迅速得到业界和社会的认可,并成为整个产业的热点,基于 Android 平台的各类人才逐渐成为各大企业竞相争夺的焦点。
而且 Android 是一个开放的系统,不管是企业还是个人都可以参与来表达自己的创意和想法。
2.2技术上的可行性
Google发起了围绕 Android 的组织——开放手机联盟,其英文全称为“OpenHandsetAlliance”。
它采用了软件堆层(softwarestack,又名以软件叠层)的架构,主要分为三部分。
底层Linux内核只提供基本功能;其他的应用软件则由各公司自行开发,部分程序以Java编写。
2.3操作上的可行性
本系统采用Android框架,可以在eclipse中安装Android开发插件,使用Android模拟器也可以使用任意Android终端。
模拟器和真正的Android手机没有太大区别,人们对手机操作早已熟悉。
综合以上三方面,该系统具有很高的开发可行性,无论是从技术上经济上还是操作上。
故此,可以设计该系统流程图,建立数据字典。
第3章需求分析
软件需求分析工作是软件生存期中重要的一步,也是决定性的一步。
软件需求分析是一个不断认识和逐步细化的过程,该过程将软件计划阶段所确定的软件范围逐步细化到可详细定义的程度。
需求分析还是软件开发的基础,假定在该阶段发现一个错误,解决它需要用一小时的时间,到设计、编程、测试和维护阶段解决,则要花几倍甚至更多的时间。
因此对于复杂系统而言,首先要进行需求分析。
开发人员应该对用户的要求及现实环境进行调查和了解。
3.1软件目标
本系统是天气系统。
可以方便用户平时对天气的统计。
本系统应达到以下目标:
(1)软件采用人机交互的方式,界面美观友好,操作灵活、方便、富有个性化。
(2)能够对天气信息进行实时显示实时更新。
(3)系统应最大限度地实现易维护性和易操作性。
(4)查看确定区域的天气
(5) 设置界面:
对要显示天气预报的城市及更新频率进行设置;
(6) 显示界面:
通过文字和图片显示当前的天气情况,包括日期、时间、城市、最高温度、最低温度、当前温度等。
(7) 详细界面:
通过文字图片动画显示当前的天气情况,包括城市当前天气、温度、风向、风速、湿度;同时显示今后四天的天气情况。
(8)食谱推荐:
系统将会根据当天天气对用户进行食谱推荐。
(9)车次查询:
用户可以根据自己需要进行车次查询,方便出行
3.2功能需求
功能需求定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了用户的业务需求。
用户需求文档描述了用户使用产品必须要完成的任务。
针对android生活小助手app系统分别对输入功能、接受功能等功能进行详细的调研和分析,总结出如下的用户需求信息。
3.3系统界面需求
手机屏幕下天气系统界面要求布局合理,颜色舒适,控制按钮友好,要求整体有一个主要的元素标准,统一的主题思想。
第4章系统的总体设计
软件功能设计是使整个软件能够实现天气的界面布局和天气提醒功能,能让用户更好的天气系统。
4.1设计思想
(1)将系统分成几个相对独立的模块。
(2)分层的模块化程序设计思想,整个系统采用模块化结构设计。
作为应用程序有较强的可操作性和扩展性。
(3)合理的数据流设计,在应用系统设计中,相对独立的模块间以数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。
4.2系统功能结构图
根据上述需求分析,本Android生活小助手app系统可分为一下几个模块:
传输基本功能如图所示:
注册登录
从图中可以看出参与者依然是用户,这表达了客户体验的要求,当用户输入添加所需要的信息后,会添加到系统里面。
添加食谱模块如图所示
读取数据
添加食谱模块图
系统流程图:
4.3开发语言简介
4.3.1Android简介
Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。
Android是基于Linux内核的软件平台和操作系统,早期由Google开发(在华注册商标名为“安致”),后由开放手机联盟(OpenHandsetAlliance)开发。
它采用了软件堆层(softwarestack,又名以软件叠层)的架构,主要分为三部分。
低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。
另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。
Android在未公开之前常被传闻为Google电话或gPhone。
大多传闻认为Google开发的是自己的手机电话产品,而不是一套软件平台。
到了2010年1月,Google开始发表自家品牌手机电话的NexusOne。
4.3.2AndroidFeatures特性
Android系统有如下的几大特性:
应用程序框架支持组件的重用与替换
Dalvik虚拟机专门为移动设备做了优化
内部集成浏览器该浏览器基于开源的WebKit引擎
优化的图形库包括2D和3D图形库,3D图形库基于OpenGLES
SQLite用作结构化的数据存储
多媒体支持包括常见的音频、视频和静态印象文件格式(如MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF)
GSM电话(依赖于硬件)
蓝牙Bluetooth,EDGE,4GandWiFi(依赖于硬件)
照相机,GPS,指南针,和加速度计(依赖于硬件)
丰富的开发环境包括设备模拟器,调试工具,内存及性能分析图表,和Eclipse集成开发环境插件
4.3.3Android基本框架(AndroidArchitecture)
Android平台的基本框架如图所示。
Android基本框架图
(1)Applications
ApplicationAndroid会同一个核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。
所有的应用程序都是用JAVA编写的。
(2)ApplicationFrameWork
开发者完全可以访问核心应用程序所使用的API框架。
该应用程序架构用来简化组件软件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。
该应用程序重用机制使得组建可以被用户替换。
所有的应用程序都由一系列的服务和系统组成,包括:
可扩展的视图(Views)可以用来建应用程序,包括列表(lists),网格(grids),文本框(textboxes),按钮(buttons),甚至包括一个可嵌入的web浏览器
内容管理器(ContentProviders)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。
资源管理器(ResourceManager)提供非代码资源的访问,如本地字符串,图形,和分层文件(layoutfiles)。
通知管理器(NotificationManager)使得应用程序可以在状态栏中显示客户通知信息。
活动类管理器(ActivityManager)用来管理应用程序生命周期并提供常用的导航回退功能。
(3)Libraries库
Android包括一个被Android系统中各种不同组件所使用的C/C++库集。
该库通过Android应用程序框架为开发者提供服务。
以下是一些主要的核心库:
系统C库-一个从BSD继承来的标准C系统函数库(libc),专门为基于embeddedlinux的设备定制。
媒体库-基于PacketVideoOpenCORE;该库支持录放,并且可以录制许多流行的音频视频格式,还有静态印像文件包括MPEG4,H.264,MP3,AAC,AMR,JPG,PNG。
SurfaceManager-对显示子系统的管理,并且为多个应用程序提供2D和3D图层的无缝融合。
LibWebCore-一个最新的web浏览器引擎用来支持Android浏览器和一个可嵌入的web视图。
SGL-一个内置的2D图形引擎3Dlibraries-基于OpenGLES1.0APIs实现;该库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。
FreeType-位图(bitmap)和向量(vector)字体显示。
SQLite一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。
(4)AndroidRuntime
Android包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。
每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。
Dalvik是针对于同时高效地运行多个VMs来实现的。
Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对最小内存使用做了优化。
该虚拟机是基于寄存器的,所有的类都经由JAVA汇编器编译,然后通过SDK中的dx工具转化成.dex格式由虚拟机执行。
Dalvik虚拟机依赖于linux的一些功能,比如线程机制和底层内存管理机制。
(5)Linux内核
Android的核心系统服务依赖于Linux2.6内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。
Linux内核也同时作为硬件和软件堆栈之间的硬件抽象层。
未来发展老牌智能手机软件平台制造商Symbian发言人则表示:
Google的Android只不过是另一个linux,symbian对其它软件与其形成的竞争并不感到担心。
除了北美之外,Symbian在其它地区智能手机市场都占有大部分市场份额。
与iPhone相似,Android采用WebKit浏览器引擎,具备触摸屏、高级图形显示和上网功能,用户能够在手机上查看电子邮件、搜索网址和观看视频节目等,比iPhone等其他手机更强调搜索功能,界面更强大,可以说是一种融入全部Web应用的单一平台。
4.4.4Android系统的四大组件
在Android系统中,为我们提供了四大基本组件,每个组件是一个视图,但是有些是可见的,有些是不可见的视图,像Activity,ContentProvider是可见的视图,Service和BroadcastReceiver是不可见的,它们只在系统的后台运行。
下面分别介绍四大组件:
(1)Activity简介
在Android系统中Activity提供可视化的用户界面,一个Android应用通常由多个Activity组成。
多个Activity组成了Activity栈(Stack),当前活动的Activity处于栈顶。
Activity有自己的生命周期,由Android系统来控制。
(2)Service简介
顾名思义Service就是运行在后台的一种服务程序,一般很少和用户交互,因此没有可视化界面定义一个Service类比较简单,只要继承Service类,实现其生命周期中的方法就可以了。
一个定义好的Service必须在AndroidManifest.xml配置文件注册,通过元素声明才能使用.Service有自己的生命周期,我们可以调用startService()启动一个Service或者bindService()方法来绑定一个存在的Service。
(3)BroadcastReceiver简介
BroadcastReceiver顾名思义广播接收器,它和事件处理机制类似,只不过事件处理机制是程序组件级别的(例如,某个按钮的单击事件),而广播事件处理机制是系统级别的。
到目前为止我们可以使用Intent来启动一个程序组件,我们还可以通过使用sendBroadcast()方法来发起一个系统级别的事件广播来传递消息。
我们可以在你的应用程序中实现BroadcastReceiver来监听和响应这些广播的Intent。
(4)ContentProvider简介
ContentProvider用来保存和检索数据,并且使应用程序之间相互访问数据成为可能。
它是跨应用程序共享数据的唯一方法。
Android为常用的数据类型(如:
音视频、图片和联系方式等)提供了大量的ContentProvider。
它们被定义在Android.provider包下面。
通过这样定义好的ContentProvider我们可以方便的进行数据操作。
当然我们必须拥有适当的权限。
我们也可以自己来定ContentProvider共享我们的数据,方便用户的访问。
4.4.5SQLite简介
SQLite,是一款轻量级的关系型数据库。
由于它占用的资源非常少,所以在很多嵌入式设备都是用SQLite来存储数据。
并且它目前支持Windows/Linux/Unix等等主流的操作系统,兼容性还不错。
我们也可以用多种开发语言如C#、Java、PHP等来通过ODBC接口操作SQLite,十分方便。
Android作为目前主流的移动操作系统,完全符合SQLite占用资源少的优势,故在Android平台上,集成了一个嵌入式关系型数据库—SQLite。
如果你想要开发Android应用程序,一定需要在Android上存储数据,使用SQLite数据库是一种非常好的选择。
本数据库支持功能如下:
1.自动建表,支持属性来自继承类:
可根据注解自动完成建表,并且对于继承类中的注解字段也支持自动建表。
2.自动支持增删改,增改支持对象化操作:
增删改是数据库操作的最基本单元,不用重复写这些增删改的代码,并且添加和更新支持类似于hibernate中的对象化操作。
3.查询方式灵活:
支持android框架提供的方式,也支持原生sql方式。
4.查询结果对象化:
对于查询结果可自动包装为实体对象,类似于hibernate框架。
5.查询结果灵活:
查询结果支持对象化,也支持结果为List
4.4搭建Android开发环境
任何事物要运行,都要有它的环境,Android也有它的环境才能够运行,下面介绍Android的开发环境配置。
搭建开发环境需要的软件:
操作系统:
windowXP或linux
软件包:
AndroidSDK(SoftwareDevelopmentkitJavaDevelopmentkit)、ADT(AndroidDeveloopmentTool)
IDE环境:
Eclipse