Android毕业设计报告.doc_第1页
Android毕业设计报告.doc_第2页
Android毕业设计报告.doc_第3页
Android毕业设计报告.doc_第4页
Android毕业设计报告.doc_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

. ;. 摘摘 要要 现在,人们越来越重视互联网。花田小憩可以为花卉爱好者们提供一 个交流以及交易的平台,在这里花卉爱好者们可以的到最新的花卉信息以 及购买到喜欢的花卉品种。 本文综合运用 Android 技术、Android Studio 开发平台、JSON 等技术 和工具对花田小憩进行了分析、设计和实现。给出了系统的功能分析、环 境和质量要求;建立了系统软、硬件体系结构模型;完成了功能模块设计 和数据接口的对接;同时确定了各个功能模块的测试环境,并制定了测试 方案对各个模块进行有效的测试和分析;最终实现了 Android 平台端的应 用。 项目采用 MVP 架构,MVP 模式是 MVC 模式的一个演化版本,MVP 全称 Model-View-Presenter。MVP 模式会解除 View 与 Model 的耦合,有 效的降低 View 的复杂性。同时又带来了良好的可扩展性、可测试性,保 证系统的整洁性和灵活性。MVP 模式可以分离显示层与逻辑层,它们之 间通过接口进行通信,降低耦合。理想化的 MVP 模式可以实现同一份逻 辑代码搭配不同的显示界面,因为它们之间并不依赖与具体,而是依赖于 抽象。这使得 Presenter 可以运用于任何实现了 View 逻辑接口的 UI,使之 具有更广泛的适用性,保证了灵活度。 总之,本系统可以通过对智能家居系统的控制和受控方状态的反馈, 从而使操作者可以及时掌握受控方信息,使其达到交互式智能化。更好地 服务于我们的生活,使人们的日常生活更加方便、智能、快捷。 关键词:花卉关键词:花卉;Android;JSON;MVP;在线购物 . ;. Abstract Nowadays , people are paying more and more attention to the internet. Flower nap provides a platform for the exchange and exchange of flower lovers , where the flower lovers can get the latest information about flowers and buy the flowers they like. In this paper , Android technology , Android Studio development platform , JSON and other techniques and tools are used to analyze , design and implement the nap. The analysis , given the function of the system environment and quality requirements; establish a system structure model of software and hardware system; the completion of the docking module design and data interface; while determining the test environment of each module , and developed a test scheme for testing and analysis of the effective of each module; finally realizes the application of Android platform the end of the. The project uses the MVP architecture , and the MVP model is an evolved version of the MVC schema , MVP , full name Model-View-Presenter. The MVP pattern removes the coupling of View and Model , effectively reducing the complexity of View. At the same time , it also brings good scalability and testability , and ensures the neatness and flexibility of the system. The MVP model can separate the display layer from the logical layer , through which they can communicate and reduce the coupling. The idealized MVP model can implement the same logical code with different display interfaces , because they do not depend on and depend on abstractions , but depend on abstractions. This allows the Presenter to be applied to any UI that implements the View logical interface , making it more widely applicable and providing flexibility. In a word , the system can control the intelligent home system and the feedback of the controlled state , so that the operator can grasp the information of the accuser in time and make it interactive and intelligent. Better serve our life , make peoples daily life more convenient , intelligent and quick. keywords: flower; Android; JSON; MVP; shopping online . ;. 目目 录录 1 1 绪论绪论.1 1.1 研发背景.1 1.2 主要研究内容.2 1.3 论文组织结构.2 2 2 课题研究相关技术综述课题研究相关技术综述.4 2.1 ANDROID 系统 .4 2.2 SQLITE数据库 .9 2.3 JSON 数据.11 2.4 JAVA环境.12 2.5 设备环境.16 3 3 系统需求分析系统需求分析.17 3.1 需求调查.17 3.2 功能分析.18 4 4 系统需求分析系统需求分析.19 4.1 系统设计环境.19 4.2 系统体系结构设计.19 5.1 项目设计.20 5.2 数据接口设计.23 6 6 系统实现系统实现.28 6.2 系统测试.41 7 7 总结与展望总结与展望 .44 7.1 总结.44 7.2 展望.44 参考文献参考文献.45 致谢致谢.46 附录一:英文原文附录一:英文原文.47 附录二:中文译文附录二:中文译文.48 . ;. 1 1 绪论绪论 1 1.1 1 研发背景研发背景 近些年,随着 Internet 和计算机网络通信技术的飞速发展、人们生活 水平的不断提高,以及人们精神需求的不断增长,移动应用已几乎成为每 个人都会使用的东西,无论男女老少,就比如我外公,前几年就在学习怎 么使用浏览器百度养生知识,虽然我外公之前没有接触过这些,但是在我 的耐心讲解下,而且移动应用的操作也比较好上手,我外公还是轻松地学 会了。大家对移动应用充满了好奇心以及求知欲,并且随着移动手机越来 越成为人们生活中不可缺失的一部分,移动应用便随着这个趋势大大发展 了起来。然后互联网+模式顺势而生,它能够做到让人们不出门,甚至是 躺在床上,光是动动手指就可以获取各种最新信息或者购买远在天边的商 品,给人们的生活带来了极大的便利。 再说到我这个软件,花田小憩是一款花艺爱好者的 App,它不仅仅是 有专业的花艺教学内容,它还是一个活跃的百万花艺爱好者社区。在这里, 你可以看到各式各样的话题讨论,不仅限于花艺,还延伸至家居、植物、 杂物等生活美学领域。 花田小憩还提供了众多高清花艺壁纸,供你下载换桌面,可以适 配各种屏幕尺寸。手机的美观再也不愁了。 花田小憩是一款花艺爱好者不容错过的生活应用。在这里,收获 的不仅仅是花艺知识,还有同道中人和美的生活方式。让你的节奏,慢下 来,美下去。 作为一个植物生活美学平台,花田小憩还提供跟花艺与生活美 学相关的物品贩卖,如鲜花、器皿、干花、书籍等。你可以在这里寻找生 活的美。 . ;. 花田小憩创办初衷是想为所有喜欢植物和美学的人们,通过花 草与时间的叠加,营造一个小而美的精致生活。希望能让用户在繁琐的生 活之中,享受一种静雅恬淡的生活之美,制造一份专属的美学生活态度。 1 1.2 2 主要研究内容主要研究内容 本文采用面向对象软件开发方法,遵照软件工程的概念、原理和方法, 利用 Android Studio 开发平台控制系统的分析、设计和实现。所开发的控 制系统主要具备以下功能: (1)浏览帖子:可以通过 App 来查看其他用户发布的与花卉有关的 帖子。 (2)购买花卉:可以通过 App 来进行在线的花卉购买。 (3)发布帖子:可以发布帖子,并且上传图片以及选择分类等。 1 1.3 3 论文组织结构论文组织结构 本文共分七章,各章的主要内容如下: 第一章“绪论”部分主要综述了系统的开发背景、论文研究的主要内 容以及组织结构。 第二章“课题研究相关技术综述”部分对论文研究中所用到的开发工 具、平台及技术、设备环境做了简单的介绍。 第三章“系统需求分析”部分主要描述了系统的需求分析过程,包括 系统的需求调查、功能分析环境和质量要求。 第四章“系统总体设计”部分对系统的总体设计过程做了阐述,主要 包括系统的设计环境,系统体系结构和数据库的逻辑设计。 第五章“系统详细设计”部分叙述了系统的详细设计过程,包括项目 设计、系统的功能模块设计和数据接口的设计。 第六章“系统实现”部分对系统实现和测试做了概述,主要包括系统 各功能模块的实现、核心技术编码、系统的测试过程等。 . ;. 第七章“总结与展望”部分讲述了对系统开发的总结和对下一步工作 的预测。 . ;. 2 2 课题研究相关技术综述课题研究相关技术综述 2 2.1 1 AndroidAndroid 系统系统 Android 是一种以 l i n u x 为基础的开放源代码操作系统,主要使用于 便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用“安卓” 或“安致”。Android 操作系统最初由 Andy Rubin 开发,最初主要支持手 机。2005 年由谷歌收购注资,并组建开放手机联盟开发改良,逐渐扩展到 平板电脑及其他领域上。Android 的主要竞争对手是苹果公司的 i o s 以及 RIM 的 Blackberry OS。2011 年第一季度,Android 在全球的市场份额首次 超过塞班系统,跃居全球第一。 2012 年 2 月数据,Android 占据全球智能 手机操作系统市场 52.5%的份额,中国市场占有率为 68.4%。 Android 的系统架构和其它操作系统一样,采用了分层的架构。 android 分为四个层,从高层到低层分别是应用程序层、应用程序框架层、 系统运行库层和 l i n u x 核心层。 Android 是以 Linux 为核心的手机操作平台,作为一款开放式的操作 系统,随着 Android 的快速发展,如今已允许开发者使用多种编程语言来 开发 Android 应用程序,而不再是以前只能使用 Java 开发 Android 应用程 序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操 作系统。 在 Android 中,开发者可以使用 Java 作为编程语言来开发应用程序, 也可以通过 NDK 使用 C/C+作为编程语言来开发应用程序,也可使用 SL4A 来使用其他各种脚本语言进行编程(如:python、l u a、t cl、p h p 等等),还有其他诸如:QT(qt for android)、Mono(mono for android) 等一些著名编程框架也开始支持 Android 编程,甚至通过 Mon o Droid,开 发者还可以使用 C#作为编程语言来开发应用程序。另外,谷歌还在 2009 年特别发布了针对初学者的 Android Simple 语言,该语言类似 Basic 语言。 . ;. 而在网页编程语言方面,JavaScript , HTML5 等等都已经支持 Android 开发。 .1 AndroidAndroid 基本架构基本架构 Android 系统架构自上而下可分为应用程序层、应用程序框架层、系 统运行库层、系统内核层四个层次,如图 2.1 所示。 图 2.1 Android 系统架构图 (1)应用程序(Applications) 该层提供一些核心应用程序包,例如电子邮件、短信、日历、地图、 浏览器和联系人管理等。同时,开发者可以利用 Java 语言设计和编写属于 自己的应用程序,而这些程序与那些核心应用程序彼此平等、友好共处。 (2)应用程序框架(Application Framework) 该层是 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)系统内核(Linux Kernel) Android 核心系统服务依赖于 Linux2.6 内核,如安全性、内存管理、 进程管理、网络协议栈和驱动模型。Linux 内核也是作为硬件与软件栈的 抽象层。驱动:显示驱动、摄像头驱动、键盘驱动、WiFi 驱动、Audio 驱 动、flash 内存驱动、Binder(IPC)驱动、电源管理等。 .2 AndroidAndroid 开发环境搭建开发环境搭建 Android 平台为开发者提供了免费并且开放的开发环境,而且使用其 提供的帮助文档和工具,开发者能够快速地编写出需要的 APP。学习 Android 开发的第一步就是搭建 Android 的开发环境,开发环境的搭建步 骤如下: (1)第一步:安装 JDK . ;. 下载 Oracle 公司的 JDK 可以百度“JDK”进入 Oracle 公司的 JDK 下 载页面,选择自己电脑系统的对应版本即可。 JDK 的全称是 Java SE Development Kit,也就是 Java 开发工具箱。SE 表示标准版。JDK 是 Java 的核心,包含了 Java 的运行环境(Java Runtime Environment),一堆 Java 工具和给开发者开发应用程序时调用的 Java 类 库。 JDK 包含的基本工具主要有: javac:Java 编译器,将源代码转成字节码。 jar:打包工具,将相关的类文件打包成一个文件。 javadoc:文档生成器,从源码注释中提取文档。 jdb:debugger,调试查错工具。 java:运行编译后的 java 程序。 (2)配置 JDK 的变量环境 为了配置 JDK 的系统变量环境,我们需要设置三个系统变量,分别是 JAVA_HOME,Path 和 CLASSPATH。下面是这三个变量的设置防范。 JAVA_HOME 先设置这个系统变量名称,变量值为 JDK 在你电脑上的安装路径: C:Program FilesJavajdk1.8.0_20。创建好后则可以利用%JAVA_HOME% 作为 JDK 安装目录的统一引用路径。 PATH PATH 属性已存在,可直接编辑,在原来变量后追加: ;%JAVA_HOME%bin;%JAVA_HOME%jrebin 。 CLASSPATH 设置系统变量名为:CLASSPATH 变量值为: .;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar 。 . ;. 注意变量值字符串前面有一个.表示当前目录,设置 CLASSPATH 的 目的,在于告诉 Java 执行环境,在哪些目录下可以找到您所要执行的 Java 程序所需要的类或者包。 (3)下载 Android Studio Android Studio 是一个 Android 集成开发工具,基于 IntelliJ IDEA. 类 似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发 和调试。 2013 年 5 月 16 日,在 I/O 大会上,谷歌推出新的 Android 开发环境 Android Studio,并对开发者控制台进行了改进,增加了五个新的功能。 Android Studio 是谷歌推出了新的 Android 开发环境,开发者可以在编 写程序的同时看到自己的应用在不同尺寸屏幕中的样子。 2015 年 5 月 29 日,在谷歌 I/O 开发者大会上,谷歌发布 Android Studio 1.3 版,支持 C+编辑和查错功能。Android Studio 1.3 版开发码代码 变得更加容易,速度提升,而且支持 C+编辑和查错功能。 (4)下载 Android SDK 配置了 JDK 变量环境,安装好了 Eclipse,这个时候如果只是开发普 通的 JAVA 应用程序,那么 Java 的开发环境已经准备好了。我们要通过 Eclipse 来开发 Android 应用程序,那么我们需要下载 Android SDK(Software Development Kit)和在 Eclipse 安装 ADT 插件,这个插件 能让 Eclipse 和 Android SDK 关联起来。 Android SDK 提供了开发 Android 应用程序所需的 API 库和构建、测 试和调试 Android 应用程序所需的开发工具。 下载后双击安装,指定 Android SDK 的安装目录,为了方便使用 Android SDK 包含的开发工具,我们在系统环境变量中的 Path 设置 Android SDK 的安装目录下的 tools 目录。 . ;. 在 Android SDK 的安装目录下,双击“SDK Manager.exe”,打开 Android SDK Manager,Android SDK Manage 负责下载或更新不同版本的 SDK 包,我们看到默认安装的 Android SDK Manager 只安装了一个版本的 sdk tools。 2.2 Sqlite 数据库数据库 SQLite 是 D.Richard Hipp 用 C 语言编写的开源嵌入式数据库引擎。它 支持大多数的 SQL92 标准,并且可以在所有主要的操作系统上运行。 SQLite 由以下几个部分组成:SQL 编译器、内核、后端以及附件。 SQLite 通过利用虚拟机和虚拟数据库引擎( VDBE ),是调试、修改和扩展 SQLite 的内核变得更加方便。所有 SQL 语句都被编译成易读的、可以在 SQLite 虚拟机中执行的程序集。SQLite 的整体结构图如下: . ;. 值得一提的是,袖珍型的 SQLite 竟然可以支持高达 2TB 大小的数据 库,每个数据库都是以单个文件的形式存在,这些数据都是以 B-Tree 的数 据结构形式存储在磁盘上。 在事务处理方面,SQLite 通过数据库级上的独占性和共享锁来实现独 立事务处理。这意味着多个进程可以在同一时间从同一数据库读取数据, 但只有一个可以写入数据。在某个进程或线程想数据库执行写操作之前, 必须获得独占锁。在获得独占锁之后,其他的读或写操作将不会再发生。 SQLite 采用动态数据类型,当某个值插入到数据库时,SQLite 将会检 查它的类型,如果该类型与关联的列不匹配,SQLite 则会尝试将该值转换 成该列的类型,如果不能转换,则该值将作为本身的类型存储,SQLite 称 这为“弱类型”。但有一个特例,如果是 INTEGER PRIMARY KEY,则 其他类型不会被转换,会报一个“datatype missmatch”的错误。 概括来讲,SQLite 支持 NULL、INTEGER、REAL、TEXT 和 BLOB 数据类型,分别代表空值、整型值、浮点值、字符串文本、二进制对象。 SQLite 的特点大致总结如下: 1.轻量级 使用 SQLite 只需要带一个动态库,就可以享受它的全部功能,而 且那个动态库的尺寸想当小。 2.独立性 SQLite 数据库的核心引擎不需要依赖第三方软件,也不需要所谓 的“安装”。 3.隔离性 SQLite 数据库中所有的信息(比如表、视图、触发器等)都包含 在一个文件夹内,方便管理和维护。 4.跨平台 . ;. SQLite 目前支持大部分操作系统,不至电脑操作系统更在众多的 手机系统也是能够运行,比如:Android 和 IOS。 5.多语言接口 SQLite 数据库支持多语言编程接口。 6.安全性 2.3 JSON 数据数据 JSON( JavaScript Object Notation , JS 对象标记 ) 是一种轻量级的数据 交换格式。它基于 ECMAScript ( w3c 制定的 js 规范 )的一个子集,采用完 全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构 使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机 器解析和生成,并有效地提升网络传输效率。 在 JS 语言中,一切都是对象。因此,任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。但是对象和数组是比 较特殊且常用的两种类型:对象表示为键值对、数据由逗号分隔、花括号 保存对象、方括号保存数组。 在 JS 语言中,一切都是对象。因此,任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。但是对象和数组是比 较特殊且常用的两种类型。 对象:对象在 JS 中是使用花括号包裹 起来的内容,数据结构为 key1:value1 , key2:value2 , . 的键值对结构。在面向对象的语言中, key 为对象的属性,value 为对应的值。键名可以使用整数和字符串来表示。 值的类型可以是任意类型。 数组:数组在 JS 中是方括号 包裹起来的内容,数据结构为 java , javascript , vb , . 的索引结构。在 JS 中,数组是一种比较特殊的数据 . ;. 类型,它也可以像对象那样使用键值对,但还是索引使用得多。同样,值 的类型可以是任意类型。 2.4 Java 环境环境 .1 JavaJava 简介简介 Java 是一门面向对象编程语言,不仅吸收了 C+语言的各种优点,还 摒弃了 C+里难以理解的多继承、指针等概念,因此 Java 语言具有功能强 大和简单易用两个特征。Java 语言作为静态面向对象编程语言的代表,极 好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。 Java 具有简单性、面向对象、分布式、健壮性、安全性、平台独立与 可移植性、多线程、动态性等特点。Java 可以编写桌面应用程序、Web 应 用程序、分布式系统和嵌入式系统应用程序等。 .2 JavaJava 特性特性 (1)简单性 Java 看起来设计得很像 C+,但是为了使语言小和容易熟悉,设计者 们把 C+语言中许多可用的特征去掉了,这些特征是一般程序员很少使用 的。例如,Java 不支持 go to 语句,代之以提供 break 和 continue 语句以及 异常处理。Java 还剔除了 C+的操作符过载(overload)和多继承特征, 并且不使用主文件,免去了预处理程序。因为 Java 没有结构,数组和串都 是对象,所以不需要指针。Java 能够自动处理对象的引用和间接引用,实 现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多的时间 和精力花在研发上。 (2)面向对象 Java 是一个面向对象的语言。对程序员来说,这意味着要注意应中的 数据和操纵数据的方法(method),而不是严格地用过程来思考。在一个 . ;. 面向对象的系统中,类(class)是数据和操作数据的方法的集合。数据和 方法一起描述对象(object)的状态和行为。每一对象是其状态和行为的 封装。类是按一定体系和层次安排的,使得子类可以从超类继承行为。在 这个类层次体系中有一个根类,它是具有一般行为的类。Java 程序是用类 来组织的。 Java 还包括一个类的扩展集合,分别组成各种程序包(Package),用 户可以在自己的程序中使用。例如,Java 提供产生图形用户接口部件的类 (java.awt 包),这里 awt 是抽象窗口工具集(abstract windowing toolkit) 的缩写,处理输入输出的类(java.io 包)和支持网络功能的类( 包) 。 (3)分布性 Java 设计成支持在网络上应用,它是分布式语言。Java 既支持各种层 次的网络连接,又以 Socket 类支持可靠的流(stream)网络连接,所以用 户可以产生分布式的客户机和服务器。 网络变成软件应用的分布运载工具。Java 程序只要编写一次,就可到 处运行。 (4)编译和解释性 Java 编译程序生成字节码(byte-code),而不是通常的机器码。Java 字节码提供对体系结构中性的目标文件格式,代码设计成可有效地传送程 序到多个平台。Java 程序可以在任何实现了 Java 解释程序和运行系统 (run-time system)的系统上运行。 在一个解释性的环境中,程序开发的标准“链接”阶段大大消失了。 如果说 Java 还有一个链接阶段,它只是把新类装进环境的过程,它是增量 式的、轻量级的过程。因此,Java 支持快速原型和容易试验,它将导致快 . ;. 速程序开发。这是一个与传统的、耗时的“编译、链接和测试”形成鲜明 对比的精巧的开发过程。 (5)稳健性 Java 原来是用作编写消费类家用电子产品软件的语言,所以它是被设 计成写高可靠和稳健软件的。Java 消除了某些编程错误,使得用它写可靠 软件相当容易。 Java 是一个强类型语言,它允许扩展编译时检查潜在类型不匹配问题 的功能。Java 要求显式的方法声明,它不支持 C 风格的隐式声明。这些严 格的要求保证编译程序能捕捉调用错误,这就导致更可靠的程序。 可靠性方面最重要的增强之一是 Java 的存储模型。Java 不支持指针, 它消除重写存储和讹误数据的可能性。类似地,Java 自动的“无用单元收 集”预防存储漏泄和其它有关动态存储分配和解除分配的有害错误。Java 解释程序也执行许多运行时的检查,诸如验证所有数组和串访问是否在界 限之内。 异常处理是 Java 中使得程序更稳健的另一个特征。异常是某种类似于 错误的异常条件出现的信号。使用 try/catch/finally 语句,程序员可以找到 出错的处理代码,这就简化了出错处理和恢复的任务 (6)安全性 Java 的存储分配模型是它防御恶意代码的主要方法之一。Java 没有指 针,所以程序员不能得到隐蔽起来的内幕和伪造指针去指向存储器。更重 要的是,Java 编译程序不处理存储安排决策,所以程序员不能通过查看声 明去猜测类的实际存储安排。编译的 Java 代码中的存储引用在运行时由 Java 解释程序决定实际存储地址。 Java 运行系统使用字节码验证过程来保证装载到网络上的代码不违背 任何 Java 语言限制。这个安全机制部分包括类如何从网上装载。例如,装 . ;. 载的类是放在分开的名字空间而不是局部类,预防恶意的小应用程序用它 自己的版本来代替标准 Java 类。 (7)可移植性 Java 使得语言声明不依赖于实现的方面。例如,Java 显式说明每个基 本数据类型的大小和它的运算行为(这些数据类型由 Java 语法描述)。 Java 环境本身对新的硬件平台和操作系统是可移植的。Java 编译程序 也用 Java 编写,而 Java 运行系统用 ANSIC 语言编写。 (8)高性能 Java 是一种先编译后解释的语言,所以它不如全编译性语言快。但是 有些情况下性能是很要紧的,为了支持这些情况,Java 设计者制作了“及 时”编译程序,它能在运行时把 Java 字节码翻译成特定 CPU(中央处理 器)的机器代码,也就是实现全编译了。 Java 字节码格式设计时考虑到这些“及时”编译程序的需要,所以生 成机器代码的过程相当简单,它能产生相当好的代码。 (9)多线索性 Java 是多线索语言,它提供支持多线索的执行(也称为轻便过程), 能处理不同任务,使具有线索的程序设计很容易。Java 的 lang 包提供一个 Thread 类,它支持开始线索、运行线索、停止线索和检查线索状态的方法。 Java 的线索支持也包括一组同步原语。这些原语是基于监督程序和条 件变量风范,由 C.A.R.Haore 开发的广泛使用的同步化方案。用关键词 synchronized,程序员可以说明某些方法在一个类中不能并发地运行。这些 方法在监督程序控制之下,确保变量维持在一个一致的状态。 (10)动态性 Java 语言设计成适应于变化的环境,它是一个动态的语言。例如, Java 中的类是根据需要载入的,甚至有些是通过网络获取的。 . ;. 2 2.5 5 设备环境设备环境 设备名称:LG Nexus 5(16GB) 主屏尺寸:4.95 英寸 主屏分辨率:1920 x1080 像素 后置摄像头:800 万像素 前置摄像头:130 万像素 电池容量:2300mAh 电池类型:不可拆卸式电池 核心数:四核 内存:2GB Android 版本:Android 6.0.1 . ;. 3 3 系统需求分析系统需求分析 3 3.1 1 需求调查需求调查 通过网络搜索、查阅相关资料以及与用户进行访谈等方式,对用户的 需求进行了详细的调研,并对用户在环境监测、视频监控、家庭管理及开 关控制和场景模式等方面的需求进行了详细的探讨,确定了智能家居控制 系统的主要功能需求。功能分解图如图 3.1 所示。 图 3.1 花田小憩的功能分解图 分析得主要功能如下: (1)专题,该页面分为小编推荐、专题分类、每日壁纸以及每日推 荐。 (2)发现:该页面分为精选、圈子以及订阅。 (3)发布帖子:如果未登录,点击该按钮跳转到登陆页面,如果已 登录,点击该按钮跳转到发布帖子页面。 (4)商城:可以在该页面选购喜欢的花卉,并且加入购物车然后付 款购买。 (5)我的:可以在该页面中管理自己的个人信息以及点赞的帖子以 及评论。 花田小憩 专题发现发布帖子商城我的 . ;. 3 3.2 2 功能分析功能分析 .1 系统框架图系统框架图 根据在需求调查时得到的结果,本文通过对花田小憩系统功能分析, 建立了系统的主体框架如图 3.2 所示。 图 3.2 花田小憩系统整体架构图 .2 系统各部分描述系统各部分描述 由图 3.2 可以看出,系统主要包括五个部分:专题部分、发现部分、 商城部分、发表帖子部分以及我的部分。其中,每个部分的交互过程如下: (1)专题部分 此部分为这个系统的第一部分,它主要负责展示每日精选帖子、精选 壁纸以及所有帖子分类。 (2)发现部分 此部分是用来显示精选、圈子以及订阅的内容。 (3)商城 此部分用来方便用户购买各种花卉。 (4)发表帖子 . ;. 此部分用于用户发表自己的帖子。 (5)我的 此部分用户用户查看以及修改自己的个人信息,查看自己的帖子的点 赞情况。 4 4 系统需求分析系统需求分析 4 4.1 1 系统设计环境系统设计环境 .1 软件环境软件环境 (1)Java,版本为 1.8.0_112。 (2)Android Studio,版本为 2.3.2。 .2 硬件环境硬件环境 (1)Mac OS X EI Captian 10.11.6。 (2)Android 平台:Android 版本需要高于 4.4。 4 4.2 2 系统体系结构设计系统体系结构设计 .1 C/SC/S 体系结构体系结构 B/S 模式,相对于 C/S 结构而言易于拓展,开发周期短,而且移植方 便,不须安装客户端( 客户端只使用浏览器 ),可以跨平台使用。但其缺点 是客户端的处理能力差,无文件和目录的操作能力,也不容易完成与其它 程序之间的数据交互;同时,考虑到要保证便携性以及安全性,由于 B/S 模式在数据交互时,其数据的安全性很难保证;而 C/S 模式却恰恰可以封 装 Client 和 Server 之间的数据交互,也能够很好实现对 Client 的控制和操 作,所以它适合于该 App 系统。 可以说,支持采用 C/S 的理由主要有:应用的不确定性,系统的扩展 性,逐步开发和增加新应用的需要,适应将来开放的异种网络环境中应用 的需要,用户数、数据量增长的可能性,适应电脑开发、维护、供应商与 . ;. 相关技术人员变更的需要,有利于动态规划与动态开发过程,对系统可靠 性有保证。 5 5 系统详细设计系统详细设计 5 5.1 1 项目设计项目设计 .1 项目构架项目构架 该项目采用 MVP 架构,该架构是 Android 平台 MVC 框架的升级, MVC 全称是 Model - View - Controller,是模型( model )视图( view )控 制器( controller )的缩写。MVC 是一种框架模式而非设计模式,GOF 把 MVC 看作是 3 种设计模式:观察者模式、策略模式与组合模式的合体, 而核心是观察者模式。简而言之,框架是大智慧,用来对软件设计进行分 工;设计模式是小技巧,对具体问题提出解决方案,以提高代码复用率, 降低耦合度。MVP 架构是在 MVC 的基础上进行的升级,MVP 模式是 MVC 模式的一个演化版本,MVP 全称 Model-View-Presenter。目前 MVP 在 Android 应用开发中越来越重要了。在 Android 中,业务逻辑和数据存 取是紧紧耦合的,很多缺乏经验的开发者很可能会将各种各样的业务逻辑 塞进某个 Activity、Fragment 或者自定义 View 中,这样会使得这些组件的 单个类型臃肿不堪。如果不将具体的业务逻辑抽离出来,当 UI 变化时, 你就需要去原来的 View 中抽离具体业务逻辑,这必然会很麻烦并且易出 错。MVP 模式会解除 View 与 Model 的耦合,有效的降低 View 的复杂性。 同时又带来了良好的可扩展性、可测试性,保证系统的整洁性和灵活性。 MVP 模式可以分离显示层与逻辑层,它们之间通过接口进行通信,降低 耦合。理想化的 MVP 模式可以实现同一份逻辑代码搭配不同的显

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论