基于安卓平台的智能电饭煲远程控制手机客户端毕业论文 联系客服

发布时间 : 星期一 文章基于安卓平台的智能电饭煲远程控制手机客户端毕业论文更新完毕开始阅读

3 项目的可行性和需求分析

3.1 项目可行性分析

3.1.1 技术上的可行性

1、项目所使用的安卓平台是基于linux系统开发的一个开源移动操作系统 Android 是一个移动设备的软件平台,是由 Linux+Java 构成的开源软件,它提供包括SDK、Key Apps、Middleware、Linux Kernel四个部分在内的全套手机软件方案[13]。它开放了基于Linux内核以上的开发工具,也就是application层可以通过jni调用底层的c的so库。从而保证了内容的可移植性和多样性以及处理的快捷性。

Android平台为设计者开发应用程序提供了一套很好的框架,设计者不仅可以在这个平台的基础上开发不同的应用程序,还可以开发新的组件供应用程序调用。甚至可以引入第三方库加入项目,开发出来的应用可以供别人下载到安卓系统里使用,或在第三方下载程序装在有安卓系统的终端使用。这是其他移动操作系统不能够实现的。

2、Android的基础语言是java语言,本人具有一定的设计开发基础。 Android是用java语言编程的[14],语法和逻辑是遵循java语言的规则,只不过Android的函数库是自己的,但是它的函数库仅仅只改了类名而已,其函数的用法都一样的,Android的开发框架也是参照j2ee的“mvc”模式定义的。Java开发中的单例模式,观察者模式,工厂模式等等模式,在android的实际开发中也同样适用。

本人在大学里学习过java语言,并且做过一些java项目,所以对Android项目的开发有一定的程序设计基础。 3.1.2 经济上的可行性

手机app主要还是在界面部分,而这个部分是要求界面设计合理,符合大众的操作观念,同时还有使系统稳定,字体要醒目,图片要求高清的,这些要求在Android这个平台上都可以达到。而且网上有大把免费的高清图片和文字格式让开发者选择。

项目的整个开发环境ATD可以在google官网上免费下载, 第三方包gson的引用也是可以在网上免费下载的。

8

因此,基本无需支付任何费用就可以使用这些开发工具,另外,本系统完全由个人开发,除了个人的时间和精力的消耗之外,基本上没有什么经济方面的开发成本。

本項目的设计与开发是非商业性的,虽然没有经济方面的收益,但对于本人而言,既加深了本人对JAVA基础知识和Android框架的了解和掌握,也为以后的软件系统的设计和开发积累了一定的实践经验。

总之,本客户端的经济社会效益是大于它的开发成本的,因而,经济上是可行的。

3.2 需求分析

3.2.1 功能要求

根据对用户的功能需求进行调研可知,用户在使用智能化远程控制的厨房电饭煲时具体功能要求如下:

1、对常用的煮饭、热饭、加热、保温、定时等功能应有相应的快捷按钮; 2、提供常用的固定菜单,但可对固定菜单设置名字、说明、时间段等一些参数信息;

3、用户可以自己创建和保存新的菜单,并可以下发给电饭煲保存定时执行,也可以从电饭煲里导出到手机内存;

4、电饭煲在工作时,能实时显示菜单的执行进度; 5、可以进行多人控制,并定制用户的使用权限。 3.2.2 性能要求

1、客户端应具有较高的安全性和隔离性。用户登陆后可以操作自己的菜单并且保存,各用户之间互相独立、互不干涉,也看不到其他用户的菜单。

2、客户端在数据传输时不能有传输丢失数据,以免造成对电饭煲的错误操作而带来麻烦。

3、考虑到用户的对智能机实际操作水平,系统应采用较友好的人机界面,使得操作灵活方便、简单直观,老人和小孩都会使用;

4、wifi硬件模块应具有较强的数据处理能力、支持实时通讯,安全,可靠。 5、客户端应具有良好的可靠性、稳定性和易维护性,具备检错、纠错和容错能力以及强制停止的功能。

9

4 客戶端概要设计

该客戶端将从体系结构、功能模块和静态模块三方面进行概要设计。

4.1 系统体系结构

开发一个Android项目,其平台本身就是一个框架,并遵循j2ee的mvc的设计模式[15]。其实Android封装的已经很好了,所以视图层(xml定义的layout就是View层)比j2ee的视图结构要清楚很多。在本项目中主界面的视图层是main.xml,这个是android特有的一种视图层。模型层一般是业务实体类(根据业务来的),本项目中有很多,在包bin,adapter里都是模型层,控制层是activity,在本项目里也有很多,在包activity,view以及service里。

该客户端的Android的mvc模型如图3.1所示:

图3-1 项目的mvc模型图

在实际的开发中,开发环境里的层次不像mvc模型里的那么明确,清晰,往往是没有什么标志的。

项目的实际分层如图3.2、图3.3所示。其中图3-2中的src包里面是源代码,cookerbjx.bin、cookerbjx.adapter、cookerbjx.sql代表模型层,cookerbjx.activity、cookerbjx,activity.view、cookerbjx.service代表控制层。

图3-3中Res包是android项目的的资源包,其中layout里面的xml文件是视图层,androidManife.xml是项目的配置文件,在该文件里声明了Android项目里定义了哪些是activity文件,哪个activity文件是初始视图,定义了哪些服务,引用了系统哪些权限,声明了项目的包名,初始化的activity文件必须放在包名里。

10

图3-2项目分层图1 图3-3项目分层图2

4.1.1 视图层

视图是用户看到并与之交互的界面,当用户开始注册时,由控制层来接受此注册请求,将用户注册的信息写进本地的sqlite数据库,以便下次登录验证,在diy新建菜单和快捷功能的模块里,当用户输入相关的数据是在控制层调用相关程序做具体的数据存取逻辑运算等处理,把用户的数据结果存储在本地的数据库,等待用户通过wifi模块下发给电饭煲控制面板,然后,控制层把得到的结果通过视图返回给用户,保存的数据可以在主菜单的菜单里可以查看。 4.1.2 控制层

控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击程序中的按钮或控件时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显示模型处理返回的数据。

再该项目中当点击界面上的某个按钮,也就是视图层的layout文件下的.xml文件里的button组件时,他会去加载项目的activity里的生命周期的部分java文件的方法。最后,界面将重新加载在控制层上。 4.1.3 模型层

通常模型层用来处理系统数据和业务规则。在MVC的三个部件中,模型层拥有最多的处理任务。例如它可能用来操作数据库,处理乱码等。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性[10]。

在本项目的cookerbjx.view中的systemButton.java中,封装了主界面的14个

11