大学毕业设计---基于安卓平台的智能电饭煲远程控制手机客户端 联系客服

发布时间 : 星期三 文章大学毕业设计---基于安卓平台的智能电饭煲远程控制手机客户端更新完毕开始阅读7458088a9fc3d5bbfd0a79563c1ec5da50e2d6fb

图1-1 android框架图

图1-1是Android的框架图,很直观的显示Android系统从底层到上层应用开

发的依赖关系。Android的系统结构分成了四层,由底向上分别为内核层、运行库层、应用框架层、应用层[8]。详细介绍如下:

1、内核层:主要还是标准的linux,这里面Android对其自身特有的一些硬

件又做了相应的驱动开发,并把驱动抽象到了一个Android HAL层(硬件抽象层)。致于为何这样做,有这样的一个说法是若是直接在linux内核上进行开发,需要遵守linux的开源策略,这对很多厂家来说,涉及到了商业秘密的问题,这个是不可能公开的,虽然Android是开源的,但是他的很多源码是要付费的。还有底层核心是不开源的。

2、系统运行库层:系统运行库层,主要是由C和C++语言开发,运用JNI可以调用C和C++语言,在jni里封装了JAVA调用C和C++的方法,在这里面可以写JAVA代码和C++代码。实现了系统接口调用和其他的运行模块。

3、应用框架层:这里面实现了对底层C/C++的调用封装,Android为开发都提供了基本的应用接口,是通过JAVA实现的,JAVA调用底层的C/C++则是通过JNI机制来实现。在这里好的应用框架开发,可以给上层的应用调用提供更好的帮助。

4、应用层:用户最直接感受到的一层,这里面实现了与用户交互的过程,

4

不管从界面UI,或是功能上,都与用户相关系,这个好坏决定着用户对产品的认可底。否则,底层封装得再好,也没有用,一般上层的设计都是按照大众的生活观念和app的功能特点来综合考虑设计出来的

2.2 相关技术介绍

2.2.1 第三方库 gson

json是一种数据格式,他以“键—值”对的形式存在,便于数据传输、存储、交换,是把所有的数据下载到本地数据库中进行解析,占用的内存比较大,它解析的数据格式是比较简单,结构单一。这个也是json数据格式的不足之处,但对于解析客户端的菜单的数据格式已经足够了。还有xml数据格式,这是一个比较复杂的数据格式,是边下载,边解析的机制,一般用于解析html网页的数据格式。但对于解析本客户端的菜单数据格式,用json数据格式就足够了。

gson是一种组件库,可以把java对象数据转换成json数据格式,一般用到的简单解析数据都用gson库,还有其他公司开发的解析json数据格式的组件库,本项目只是用了google官网提供的组件库,其功能已足够满足本项目的需求。

1、Json的规格

Json的规格非常简单,只用一个页面几百个字就能说清楚,而且Douglas Crockford声称这个规格永远不必升级,因为该规定的都规定了。

2、JSON数据的解析

谷歌GSON这个Java类库可以把Java对象转换成JSON,也可以把JSON字符串转换成一个相等的Java对象。Gson支持任意复杂Java对象包括没有源代码的对象。

然后就可以使用以下两种方法来解析JSON数据了。 1)通过获取JsonReader对象解析JSON数据:

2)通过把JSON数据映射成一个对象,使用Gson对象的fromJson()方法获取一个对象数组进行操作:

在本项目中,gson的解析使用的是第二种方法,如下:

//当从电饭煲里获取菜单是要用到gson包的解析MenuBin的参数 Gson gson=new Gson();

MenuBin mb = gson.fromJson(bin, MenuBin.class);// 转换成类

5

2.2.2 常用Android系统小组件

1、下面就举例一两个Android开发常用的view组件[10],这个是diy.xml里的两个组件:

Imageview和textview:

android:id=\定义组件的id,这是该xml的唯一的id android:layout_width=\定义组件的宽,有match_parent,fill_parent,wrap_content 三个值 */

android:layout_height=\定义组件的高,跟宽的值一样的 android:layout_weight=\组件的权重,也是很重要的一个参数在屏幕上显示的相对大小

android:onClick= \设置它的点击会执行在diyActivity里的getImage的方法*/

android:padding=\设置它离四周的距离 android:scaleType=\适中占满 android:src=\设置图片 //结束

imageView继承于button,也就是可以在button[11]上加图片,另外加了自己的一些属性,在android项目开发中,是最常用的组件之一。

android:id=\组件的id android:layout_width=\组件的宽 android:layout_height=\组件的高 android:text=\组件上显示的string android:textColor=\组件上的string的颜色 android:textSize=\的大小

这个textView是android开发中最常用的,界面上显示的文字基本上都是在这个view组件上,因此用途很广泛。它的子类组件有button,edittext等。

6

2、intent意图跳转

Intent[12]负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用.。

Intent分为显示意图和隐示意图,显示意图必须指明两个activity的类名,而隐示意图只需指明目标的activity在项目中的路径的string就行了。显示意图的跳转,在一般的Android项目中非常普遍,可以说它是Android的四大组件的纽带。没有它Android项目不可能完成。

v.getActivity().startActivityForResult(new Intent(context, SettingActivity.class), ToSettingActivity);

以下是隐示意图的跳转:

v.getActivity().startActivityForResult(new Intent(“cookerbjx.activity. SettingActivity”),ToSettingActivity);

它们功能是一样的,隐示意图一般是跨应用的引用,启动系统中的某些特定的动作。

7