Android毕业设计报告Word格式.docx
《Android毕业设计报告Word格式.docx》由会员分享,可在线阅读,更多相关《Android毕业设计报告Word格式.docx(54页珍藏版)》请在冰豆网上搜索。
Nowadays,peoplearepayingmoreandmoreattentiontotheinternet.Flowernapprovidesaplatformfortheexchangeandexchangeofflowerlovers,wheretheflowerloverscangetthelatestinformationaboutflowersandbuytheflowerstheylike.
Inthispaper,Androidtechnology,AndroidStudiodevelopmentplatform,JSONandothertechniquesandtoolsareusedtoanalyze,designandimplementthenap.Theanalysis,giventhefunctionofthesystemenvironmentandqualityrequirements;
establishasystemstructuremodelofsoftwareandhardwaresystem;
thecompletionofthedockingmoduledesignanddatainterface;
whiledeterminingthetestenvironmentofeachmodule,anddevelopedatestschemefortestingandanalysisoftheeffectiveofeachmodule;
finallyrealizestheapplicationofAndroidplatformtheendofthe.
TheprojectusestheMVParchitecture,andtheMVPmodelisanevolvedversionoftheMVCschema,MVP,fullnameModel-View-Presenter.TheMVPpatternremovesthecouplingofViewandModel,effectivelyreducingthecomplexityofView.Atthesametime,italsobringsgoodscalabilityandtestability,andensurestheneatnessandflexibilityofthesystem.TheMVPmodelcanseparatethedisplaylayerfromthelogicallayer,throughwhichtheycancommunicateandreducethecoupling.TheidealizedMVPmodelcanimplementthesamelogicalcodewithdifferentdisplayinterfaces,becausetheydonotdependonanddependonabstractions,butdependonabstractions.ThisallowsthePresentertobeappliedtoanyUIthatimplementstheViewlogicalinterface,makingitmorewidelyapplicableandprovidingflexibility.
Inaword,thesystemcancontroltheintelligenthomesystemandthefeedbackofthecontrolledstate,sothattheoperatorcangrasptheinformationoftheaccuserintimeandmakeitinteractiveandintelligent.Betterserveourlife,makepeople'
sdailylifemoreconvenient,intelligentandquick.
keywords:
flower;
Android;
JSON;
MVP;
shoppingonline
1绪论1
1.1研发背景1
1.2主要研究容2
1.3论文组织结构2
2课题研究相关技术综述4
2.1Android系统4
2.2Sqlite数据库9
2.3JSON数据11
2.4Java环境12
2.5设备环境16
3系统需求分析17
3.1需求调查17
3.2功能分析18
4系统需求分析19
4.1系统设计环境19
4.2系统体系结构设计19
5.1项目设计20
5.2数据接口设计23
6系统实现28
6.2系统测试41
7总结与展望44
7.1总结44
7.2展望44
参考文献45
致46
附录一:
英文原文47
附录二:
中文译文48
1绪论
1.1研发背景
近些年,随着Internet和计算机网络通信技术的飞速发展、人们生活水平的不断提高,以及人们精神需求的不断增长,移动应用已几乎成为每个人都会使用的东西,无论男女老少,就比如我外公,前几年就在学习怎么使用浏览器XX养生知识,虽然我外公之前没有接触过这些,但是在我的耐心讲解下,而且移动应用的操作也比较好上手,我外公还是轻松地学会了。
大家对移动应用充满了好奇心以及求知欲,并且随着移动手机越来越成为人们生活中不可缺失的一部分,移动应用便随着这个趋势大大发展了起来。
然后互联网+模式顺势而生,它能够做到让人们不出门,甚至是躺在床上,光是动动手指就可以获取各种最新信息或者购买远在天边的商品,给人们的生活带来了极大的便利。
再说到我这个软件,花田小憩是一款花艺爱好者的App,它不仅仅是有专业的花艺教学容,它还是一个活跃的百万花艺爱好者社区。
在这里,你可以看到各式各样的话题讨论,不仅限于花艺,还延伸至家居、植物、杂物等生活美学领域。
「花田小憩」还提供了众多高清花艺壁纸,供你下载换桌面,可以适配各种屏幕尺寸。
手机的美观再也不愁了。
「花田小憩」是一款花艺爱好者不容错过的生活应用。
在这里,收获的不仅仅是花艺知识,还有同道中人和美的生活方式。
让你的节奏,慢下来,美下去。
作为一个植物生活美学平台,「花田小憩」还提供跟花艺与生活美学相关的物品贩卖,如鲜花、器皿、干花、书籍等。
你可以在这里寻找生活的美。
「花田小憩」创办初衷是想为所有喜欢植物和美学的人们,通过花草与时间的叠加,营造一个小而美的精致生活。
希望能让用户在繁琐的生活之中,享受一种静雅恬淡的生活之美,制造一份专属的美学生活态度。
1.2主要研究容
本文采用面向对象软件开发方法,遵照软件工程的概念、原理和方法,利用AndroidStudio开发平台控制系统的分析、设计和实现。
所开发的控制系统主要具备以下功能:
(1)浏览帖子:
可以通过App来查看其他用户发布的与花卉有关的帖子。
(2)购买花卉:
可以通过App来进行在线的花卉购买。
(3)发布帖子:
可以发布帖子,并且上传图片以及选择分类等。
1.3论文组织结构
本文共分七章,各章的主要容如下:
第一章“绪论”部分主要综述了系统的开发背景、论文研究的主要容以及组织结构。
第二章“课题研究相关技术综述”部分对论文研究中所用到的开发工具、平台及技术、设备环境做了简单的介绍。
第三章“系统需求分析”部分主要描述了系统的需求分析过程,包括系统的需求调查、功能分析环境和质量要求。
第四章“系统总体设计”部分对系统的总体设计过程做了阐述,主要包括系统的设计环境,系统体系结构和数据库的逻辑设计。
第五章“系统详细设计”部分叙述了系统的详细设计过程,包括项目设计、系统的功能模块设计和数据接口的设计。
第六章“系统实现”部分对系统实现和测试做了概述,主要包括系统各功能模块的实现、核心技术编码、系统的测试过程等。
第七章“总结与展望”部分讲述了对系统开发的总结和对下一步工作的预测。
2课题研究相关技术综述
2.1Android系统
Android是一种以linux为基础的开放源代码操作系统,主要使用于便携设备。
目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。
Android操作系统最初由AndyRubin开发,最初主要支持手机。
2005年由谷歌收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。
Android的主要竞争对手是苹果公司的ios以及RIM的BlackberryOS。
2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。
2012年2月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为68.4%。
Android的系统架构和其它操作系统一样,采用了分层的架构。
android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。
Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。
在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C++作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:
python、lua、tcl、php等等),还有其他诸如:
QT(qtforandroid)、Mono(monoforandroid)等一些著名编程框架也开始支持Android编程,甚至通过MonoDroid,开发者还可以使用C#作为编程语言来开发应用程序。
另外,谷歌还在2009年特别发布了针对初学者的AndroidSimple语言,该语言类似Basic语言。
而在网页编程语言方面,JavaScript,HTML5等等都已经支持Android开发。
2.1.1Android基本架构
Android系统架构自上而下可分为应用程序层、应用程序框架层、系统运行库层、系统核层四个层次,如图2.1所示。
图2.1Android系统架构图
(1)应用程序(Applications)
该层提供一些核心应用程序包,例如电子、短信、日历、地图、浏览器和联系人管理等。
同时,开发者可以利用Java语言设计和编写属于自己的应用程序,而这些程序与那些核心应用程序彼此平等、友好共处。
(2)应用程序框架(ApplicationFramework)
该层是Android应用开发的基础,开发人员大部分情况是在和她打交道。
应用程序框架层包括活动管理器、窗口管理器、容提供者、视图系统、包管理器、管理器、资源管理器、位置管理器、通知管理器和XMPP服务十个部分。
在Android平台上,开发人员可以完全访问核心应用程序所使用的API框架。
并且,任何一个应用程序都可以发布自身的功能模块,而其他应用程序则可以使用这些已发布的功能模块。
基于这样的重用机制,用户就可以方便地替换平台本身的各种应用程序组件。
(3)系统运行库(Libraries)
系统库包括九个子系统,分别是图层管理、媒体库、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。
Android运行时包括核心库和Dalvik虚拟机,前者既兼容了大多数Java语言所需要调用的功能函数,又包括了Android的核心库,比如android.os、android.NET、android.media等等。
后者是一种基于寄存器的java虚拟机,Dalvik虚拟机主要是完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。
(4)系统核(LinuxKernel)
Android核心系统服务依赖于Linux2.6核,如安全性、存管理、进程管理、网络协议栈和驱动模型。
Linux核也是作为硬件与软件栈的抽象层。
驱动:
显示驱动、摄像头驱动、键盘驱动、WiFi驱动、Audio驱动、flash存驱动、Binder(IPC)驱动、电源管理等。
2.1.2Android开发环境搭建
Android平台为开发者提供了免费并且开放的开发环境,而且使用其提供的帮助文档和工具,开发者能够快速地编写出需要的APP。
学习Android开发的第一步就是搭建Android的开发环境,开发环境的搭建步骤如下:
(1)第一步:
安装JDK
下载Oracle公司的JDK可以XX“JDK”进入Oracle公司的JDK下载页面,选择自己电脑系统的对应版本即可。
JDK的全称是JavaSEDevelopmentKit,也就是Java开发工具箱。
SE表示标准版。
JDK是Java的核心,包含了Java的运行环境(JavaRuntimeEnvironment),一堆Java工具和给开发者开发应用程序时调用的Java类库。
JDK包含的基本工具主要有:
javac:
Java编译器,将源代码转成字节码。
jar:
打包工具,将相关的类文件打包成一个文件。
javadoc:
文档生成器,从源码注释中提取文档。
jdb:
debugger,调试查错工具。
java:
运行编译后的java程序。
(2)配置JDK的变量环境
为了配置JDK的系统变量环境,我们需要设置三个系统变量,分别是JAVA_HOME,Path和CLASSPATH。
下面是这三个变量的设置防。
JAVA_HOME
先设置这个系统变量名称,变量值为JDK在你电脑上的安装路径:
C:
\ProgramFiles\Java\jdk1.8.0_20。
创建好后则可以利用%JAVA_HOME%作为JDK安装目录的统一引用路径。
PATH
PATH属性已存在,可直接编辑,在原来变量后追加:
;
%JAVA_HOME%\bin;
%JAVA_HOME%\jre\bin。
CLASSPATH
设置系统变量名为:
CLASSPATH变量值为:
.;
%JAVA_HOME%\lib\dt.jar;
%JAVA_HOME%\lib\tools.jar。
注意变量值字符串前面有一个"
."
表示当前目录,设置CLASSPATH的目的,在于告诉Java执行环境,在哪些目录下可以找到您所要执行的Java程序所需要的类或者包。
(3)下载AndroidStudio
AndroidStudio是一个Android集成开发工具,基于IntelliJIDEA.类似EclipseADT,AndroidStudio提供了集成的Android开发工具用于开发和调试。
2013年5月16日,在I/O大会上,谷歌推出新的Android开发环境——AndroidStudio,并对开发者控制台进行了改进,增加了五个新的功能。
AndroidStudio是谷歌推出了新的Android开发环境,开发者可以在编写程序的同时看到自己的应用在不同尺寸屏幕中的样子。
2015年5月29日,在谷歌I/O开发者大会上,谷歌发布AndroidStudio1.3版,支持C++编辑和查错功能。
AndroidStudio1.3版开发码代码变得更加容易,速度提升,而且支持C++编辑和查错功能。
(4)下载AndroidSDK
配置了JDK变量环境,安装好了Eclipse,这个时候如果只是开发普通的JAVA应用程序,那么Java的开发环境已经准备好了。
我们要通过Eclipse来开发Android应用程序,那么我们需要下载AndroidSDK(SoftwareDevelopmentKit)和在Eclipse安装ADT插件,这个插件能让Eclipse和AndroidSDK关联起来。
AndroidSDK提供了开发Android应用程序所需的API库和构建、测试和调试Android应用程序所需的开发工具。
下载后双击安装,指定AndroidSDK的安装目录,为了方便使用AndroidSDK包含的开发工具,我们在系统环境变量中的Path设置AndroidSDK的安装目录下的tools目录。
在AndroidSDK的安装目录下,双击“SDKManager.exe”,打开AndroidSDKManager,AndroidSDKManage负责下载或更新不同版本的SDK包,我们看到默认安装的AndroidSDKManager只安装了一个版本的sdktools。
2.2Sqlite数据库
SQLite是D.RichardHipp用C语言编写的开源嵌入式数据库引擎。
它支持大多数的SQL92标准,并且可以在所有主要的操作系统上运行。
SQLite由以下几个部分组成:
SQL编译器、核、后端以及附件。
SQLite通过利用虚拟机和虚拟数据库引擎(VDBE),是调试、修改和扩展SQLite的核变得更加方便。
所有SQL语句都被编译成易读的、可以在SQLite虚拟机中执行的程序集。
SQLite的整体结构图如下:
值得一提的是,袖珍型的SQLite竟然可以支持高达2TB大小的数据库,每个数据库都是以单个文件的形式存在,这些数据都是以B-Tree的数据结构形式存储在磁盘上。
在事务处理方面,SQLite通过数据库级上的独占性和共享锁来实现独立事务处理。
这意味着多个进程可以在同一时间从同一数据库读取数据,但只有一个可以写入数据。
在某个进程或线程想数据库执行写操作之前,必须获得独占锁。
在获得独占锁之后,其他的读或写操作将不会再发生。
SQLite采用动态数据类型,当某个值插入到数据库时,SQLite将会检查它的类型,如果该类型与关联的列不匹配,SQLite则会尝试将该值转换成该列的类型,如果不能转换,则该值将作为本身的类型存储,SQLite称这为“弱类型”。
但有一个特例,如果是INTEGERPRIMARYKEY,则其他类型不会被转换,会报一个“datatypemissmatch”的错误。
概括来讲,SQLite支持NULL、INTEGER、REAL、TEXT和BLOB数据类型,分别代表空值、整型值、浮点值、字符串文本、二进制对象。
SQLite的特点大致总结如下:
1.轻量级
使用SQLite只需要带一个动态库,就可以享受它的全部功能,而且那个动态库的尺寸想当小。
2.独立性
SQLite数据库的核心引擎不需要依赖第三方软件,也不需要所谓的“安装”。
3.隔离性
SQLite数据库中所有的信息(比如表、视图、触发器等)都包含在一个文件夹,方便管理和维护。
4.跨平台
SQLite目前支持大部分操作系统,不至电脑操作系统更在众多的手机系统也是能够运行,比如:
Android和IOS。
5.多语言接口
SQLite数据库支持多语言编程接口。
6.安全性
2.3JSON数据
JSON(JavaScriptObjectNotation,JS对象标记)是一种轻量级的数据交换格式。
它基于ECMAScript(w3c制定的js规)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。
简洁和清晰的层次结构使得JSON成为理想的数据交换语言。
易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
在JS语言中,一切都是对象。
因此,任何支持的类型都可以通过JSON来表示,例如字符串、数字、对象、数组等。
但是对象和数组是比较特殊且常用的两种类型:
对象表示为键值对、数据由逗号分隔、花括号保存对象、方括号保存数组。
但是对象和数组是比较特殊且常用的两种类型。
对象:
对象在JS中是使用花括号包裹{}起来的容,数据结构为{key1:
value1,key2:
value2,...}的键值对结构。
在面向对象的语言中,key为对象的属性,value为对应的值。
键名可以使用整数和字符串来表示。
值的类型可以是任意类型。
数组:
数组在JS中是方括号[]包裹起来的容,数据结构为["
java"
"
javascript"
vb"
...]的索引结构。
在JS中,数组是一种比较特殊的数据类型,它也可以像对象那样使用键值对,但还是索引使用得多。
同样,值的类型可以是任意类型。
2.4Java环境
2.4.1Java简介
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。
Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
2.4.2Java特性
(1)简单性
Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般