基于安卓平台的智能电饭煲远程控制手机客户端毕业论文(编辑修改稿)内容摘要:
ON,也可以把 JSON字符串转换成一个相等的 Java 对象。 Gson支持任意复杂 Java 对象包括没有源代码的对象。 然后就可以使用以下两种方法来解析 JSON 数据了。 1)通过获取 JsonReader 对象解析 JSON 数据: 2)通过把 JSON 数据映射成一个对象,使用 Gson对象的 fromJson()方法获取一个对象数组进行操作: 在本项目中, gson的解析使用的是第二种方法,如下: //当从电饭煲里获取菜单是要用到 gson包的解析 MenuBin的参数 Gson gson=new Gson()。 MenuBin mb = (bin, )。 // 转换成类 6 常用 Android 系统小组件 下面就举例一两个 Android 开发常用的 view 组件 [10],这个是 里的两个组件: Imageview 和 textview: ImageView android:id=@+id/imageView//定义组件的 id,这是该 xml 的唯一的 id android:layout_width=match_parent/*定义组件的宽 ,有 match_parent,fill_parent,wrap_content 三个值 */ android:layout_height=match_parent//定义组件的高,跟宽的值一样的 android:layout_weight=1//组件的权重,也是很重要的一个参数在屏幕上显示的相对大小 android:onClick= getImage/*设置它的点击会执行在 diyActivity里的getImage 的方法 */ android:padding=5dip//设置它离四周的距离 android:scaleType=fitCenter//适中占满 android:src=@drawable/image_diy //设置图片 /ImageView //结束 imageView 继承于 button,也就是可以在 button[11]上加图片,另外加了自己的一些属性,在 android 项目开发中,是最常用的组件之一。 TextView android:id=@+id/title_textView//组件的 id android:layout_width=wrap_content//组件的宽 android:layout_height=wrap_content//组件的高 android:text=@string/diyTitle//组件上显示的 string android:textColor=0264BD//组件上的 string的颜色 android:textSize=20sp //string 的大小 这个 textView 是 android 开发中最常用的,界面上显示的文字基本上都是在这个 view 组件上,因此用途很广泛。 它的子类组件有 button, edittext 等。 7 intent 意图跳转 Intent[12]负责对应用中一次操作的动作、动作 涉及数据、附加数据进行描述,Android 则根据此 Intent 的描述,负责找到对应的组件,将 Intent 传递给调用的组件,并完成组件的调用 .。 Intent 分为显示意图和隐示意图,显示意图必须指明两个 activity 的类名,而隐示意图只需指明目标的 activity在项目中的路径的 string就行了。 显示意图的跳转,在一般的 Android 项目中非常普遍,可以说它是 Android 的四大组件的纽带。 没有它 Android 项目不可能完成。 ().startActivityForResult(new Intent(context, ), ToSettingActivity)。 以下是隐示意图的跳转: ().startActivityForResult(new Intent(“. SettingActivity”),ToSettingActivity)。 它们功能是一样的,隐示意图一般是跨应用的引用, 启动系统中的某些特定的动作。 8 3 项目的可行性和需求分析 项目 可行性分析 技术上的 可行性 项目所使用的安卓平台是基于 linux系统开发的一个开源移动操作系统 Android 是一个移动设备的软件平台,是由 Linux+Java 构成的开源软件,它提供包括 SDK、 Key Apps、 Middleware、 Linux Kernel 四个部分在内的全套手机软件方案 [13]。 它开放了基于 Linux内核以上的开发工具,也就是 application层可以通过 jni 调用底层的 c 的 so 库。 从而保证了内容的可移植性和多样性以及处理的快捷性。 Android 平台为设计者开发应用程序提供了一套 很好的框架,设计者不仅可以在这个平台的基础上开发不同的应用程序,还可以开发新的组件供应用程序调用。 甚至可以引入第三方库加入项目,开发出来的应用可以供别人下载到安卓系统里使用,或 在第三方下载程序装 在 有安卓系统的终端使用。 这是其他移动操作系统不能够实现的。 Android 的基础语言是 java 语言,本人具有一定的设计开发基础。 Android 是用 java 语言编程的 [14],语法和逻辑是遵循 java 语言的规则,只不过 Android 的函数库是自己的,但是它的函数库仅仅只改了类名而已,其函数的用法都一样的, Android 的开发框架也是参照 j2ee 的“ mvc”模式定义的。 Java开发中的单例模式,观察者模式,工厂模式等等模式,在 android 的实际开发中也同样适用。 本人在大学里学习过 java 语言,并且做过一些 java 项目,所以对 Android项目的开发有一定的程序设计基础。 经济上的可行性 手机 app 主要还是在界面部分,而这个部分是要求界面设计合理,符合大众的操作观念,同时还有使系统稳定,字体要醒目,图片要求高清的,这些要求在Android 这个平台上都可以达到。 而且网上有大把免费的高清图片和文字格式让开发 者选择。 项目的整个开发环境 ATD 可以在 google 官网上免费下载, 第三方包 gson的引用也是可以在网上免费下载的。 9 因此,基本无需支付任何费用就可以使用这些开发工具,另外,本系统完全由个人开发 ,除了个人的时间和精力的消耗之外,基本上没有什么经济方面的开发成本。 本 項目 的设计与开发是非商业性的,虽然没有经济方面的收益,但对于本人而言,既加深了本人对 JAVA 基础知识和 Android 框架 的了解和掌握,也为以后的软件系统的设计和开发积累了一定的实践经验。 总之,本 客户端 的经济社会效益是大于它的开发成本的,因而, 经济上是可行的。 需求分析 功能要求 根据对用户的功能需求进行调研可知,用户在使用智能化远程控制的厨房电饭煲时具体功能要求如下: 对常用的煮饭、热饭、加热、保温、定时等功能应有相应的快捷按钮; 提供常用的固定菜单,但可对固定菜单设置名字、说明、时间段等一些参数信息; 用户可以自己创建和保存新的菜单,并可以下发给电饭煲保存定时执行,也可以从电饭煲里导出到手机内存; 电饭煲在工作时,能实时显示菜单的执行进度; 可以进行多人控制,并定制用户的使用权限。 性能 要求 客户端 应具有较高的安全性和隔离性。 用户 登陆后 可以操作自己的 菜单并且保存, 各 用户 之间互相独立 、 互不干涉 ,也看不到其他用户的菜单。 客户端在数据传输时不能有传输丢失数据,以免造成对电饭煲的错误操作而带来麻烦。 考虑到用户的 对智能机 实际操作水平,系统应采用较友好的人机界面,使得操作灵活方便 、简单直观,老人和小孩都会使用; wifi 硬件模块 应具有较强的数据处理能力、 支持实时通讯,安全,可靠。 客户端 应具有良好的可靠性、稳定性和易维护性,具备检错、纠错和容错能力 以及强制停止的功能。 10 4 客戶端 概 要设计 该客戶端将从体系结构、功能模块和静态模块三方面进行概要设计。 系统体系结构 开发一个 Android 项目,其平台本身就是一个框架,并遵循 j2ee 的 mvc 的设计模式 [15]。 其实 Android 封装的已经很好了,所以 视图层 ( xml定义的 layout就是 View 层) 比 j2ee 的视图结构要清楚很多。 在本项目中主界面的视图层是,这个是 android 特有的一种视图层。 模型层 一般是业务 实体类 (根据业务来的), 本项目中有很多,在包 bin, adapter 里都是模型层,控制层 是 activity,在本项目里也有很多,在包 activity, view 以及 service 里。 该客户端的 Android 的 mvc 模型如图 : 图 31 项目的 mvc 模型图 在实际的开发中,开发环境里的层次不像 mvc 模型里的那么明确,清晰,往往是没有什么标志的。 项目的实际分层如图 、图。 其中图 32中 的 src 包里面是源代码,、 、 , 、cookerbjx,、 代表控制层。 图 33中 Res 包是 android 项目的的资源包,其中 layout 里面的 xml 文件是视图层, 是项目的配置文件,在该文件里声明了 Android 项目里定义了哪些是 activity文件,哪个 activity文件是初始视图,定 义了哪些服务,引用了系统哪些权限,声明了项目的包名,初始化的 activity文件必须放在包名里。 11 图 32项目分层图 1 图 33项目分层图 2 视图层 视图是用户看到并与之交互的界面,当用户 开始注册时 ,由控制层来接受此注册 请求, 将用户注册的信息写进本地的 sqlite 数据库,以便下次登录验证,在diy新建菜单和快捷功能的模块里,当用户输入相关的数据是在控制层调用相关程序 做具体的数据存取逻辑运算等处理, 把用户的数据结果存储在本地的数据库,等待用户通过 wifi 模块下发给电饭煲控制面板, 然后,控制层把得到的结果通过视图返回给用户 ,保存的数据可以在主菜单的菜单里可以查看。 控制层 控制器接受用户的输入并调用模型和视图去完成用户的需求。 所以当单击程序中的按钮或控件时,控制器本身不输出任何东西和做任何处理。 它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显示模型处理返回的数据。 再该项目中当点击界面上的某个按钮,也就是视图层的 layout 文件下的 .xml文件里的 button组件时,他会去加载项目的 activity里的生命周期的部分 java 文件的方法。 最后,界面将重新加载在控制层上。 模型层 通常模型层用来处理系统数据和业务规则。 在 MVC 的三个部件中,模型 层拥有最多的处理任务。 例如它可能用来操作数据库 , 处理乱码等。 被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。 由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性 [10]。 在本项目的 中的 中,封装了主界面的 14个 12 按钮的样式,包括 imageBg,image,text。 在 里,封装了 9个时间段的数据显示格式,包括 step, time, temp, press, condition, ment。 系统功能模块 系统功能 模块 划分 根据用户需求分析,将系统分为“登录模块”、“ menu主菜单”、“ diy新建菜单”、“ setting”四个功能模块。 各模块功能如下: 登录模块 该模块主要用 于用户注册、用户登录和 wifi的登录连接。 menu主菜单模块 该模块用于查看、修改、导入、导出、上传、下载菜单。 在主界面下还应提供常见菜单的快速启动方式。 diy新建菜单模块 在该模块下用户可以新建 14种菜单,并保存在 menu菜谱里。 setting模块 该模块用于连接 wifi和 device(电饭煲),控制用户的登入登出。 系统总体控制流程 图 34 客户端总体流程图 13 上图 34 所示的是系统总体控制流程图,其运行流程为: 首先,开启该客户端,首页是登陆界面,如果是首次使用,则 必须要要注册,不然没法使用该客户端,进入注册界面完成用户信息的填写,然后注册成功,进入主界面,在主界面可以进入任何一个系统模块,如果有用户名,则输入用户和密码进入系统主界面,然后可以任意操作。 用例图和数据库的表的设计 用例图 用例图是从用户角度描述系统功能,并指出个功能的操作者,用例图能描述出用例、角色以及它们之间的关系。 本系统的用例图如下图 : 图 35 用户权限图 从上图可以看出一个用户可以在客户端对菜单可以增、删、查、改、上传、下载、导入、导出的操作。 概念模 型设计 E。基于安卓平台的智能电饭煲远程控制手机客户端毕业论文(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。