毕业设计(论文)基于Android平台的信息家电控制系统的设计与实现.doc

上传人:仙人指路1688 文档编号:2394293 上传时间:2023-02-17 格式:DOC 页数:34 大小:2.41MB
返回 下载 相关 举报
毕业设计(论文)基于Android平台的信息家电控制系统的设计与实现.doc_第1页
第1页 / 共34页
毕业设计(论文)基于Android平台的信息家电控制系统的设计与实现.doc_第2页
第2页 / 共34页
毕业设计(论文)基于Android平台的信息家电控制系统的设计与实现.doc_第3页
第3页 / 共34页
毕业设计(论文)基于Android平台的信息家电控制系统的设计与实现.doc_第4页
第4页 / 共34页
毕业设计(论文)基于Android平台的信息家电控制系统的设计与实现.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《毕业设计(论文)基于Android平台的信息家电控制系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于Android平台的信息家电控制系统的设计与实现.doc(34页珍藏版)》请在三一办公上搜索。

1、基于Android平台的信息家电控制系统的设计与实现摘 要随着网络技术的发展和广泛普及,PC作为网络第一接入设备的地位正在不断削弱,而集电脑、通信和消费类电子产品三者功能于一身的信息家电产品已经成为一个不可阻挡的发展潮流,同时Android操作系统已成为许多手机制造商的宠儿,将二者结合在一起,Android操作系统将为信息家电控制系统的开发提供更好的平台。本系统使用的是友善之臂的ARM11开发板Tiny6410,可以利用该开发板上的USB接口,接上摄像头,再在网页上浏览摄像头拍摄到的图片,根据图片上显示的信息人工进行对家电的控制,从而实现远程监控的系统设计。本系统需要在开发板上安装一个Andr

2、oid操作系统,再将能完成摄像头监控的程序安装到开发板上,最后用Java语言编写一个对应的客户端安装到开发板上,这样就可以直接通过该客户端实现对摄像头以及家电的控制。关键词信息家电;ARM11;Android ;控制The Design and Implementation of Intelligent Appliances Control System Based on the Android PlatformAbstractAlong with the development of network technology and widely available, the PC as an

3、Internet access equipment status of the first is increasingly weakened, and set the computer, communication, and consumer electronic products three functions in one information appliance product has become an irreversible trend, and Android operating system has become many mobile phone manufacturers

4、 pet,bringing them together, the Android operating system for the development of information appliances control system can provide better platform.This system is using the ARM11development board, Tiny6410,of FriendlyARM , we can use the USB port of the development board, Connected to the camera, and

5、 then,we can browse the picture on the web, according to the information shown in the pictures,we can control our home appliance, so as to realize the remote monitor and control system design.This system needs to install a Android operating system,and then install the program that be able to complet

6、e the surveillance camera, finally we will use Java language to write a corresponding client setup to the development board, which can directly realize the control of cameras and home appliances through the client .Key wordsIntelligent appliances;ARM11;Android;Control第一章 绪论1.1信息家电概述信息家电指带有嵌入式处理器的小型家

7、用(个人用)信息设备,它的基本特征是与网络(主要指互联网)相连而有一些具体功能,可以是成套产品,也可以是一个辅助配件。信息家电利用先进的计算机、网络通信、人工智能等技术,将与家庭生活有关的各种家用电器应用子系统有机地结合在一起,通过综合家庭范围内的本地管理与控制以及来自家庭之外的远程管理与控制,特别是基于互联网的远程管理与控制,让家庭生活更舒适、有效和便捷。与普通家电相比,智能家电不仅具有传统功能,还能提供舒适、高效、便捷、具有高度人性化的控制方式;将一批原来死板的家居设备结合在一起转变为具有“智慧”的工具,提供全方位的信息交换功能,实现家电控制的实时畅通,优化人们的生活方式,帮助人们有效地安

8、排时间,增强家庭生活的高效性,并为家庭节省能源费用等【1】。而将多个信息家电系统组成网络就构成了智能家居网络系统,它是将家庭中各种与信息有关的通讯设备、家用电器和家庭保安装置通过家庭总线技术连接到一个家庭智能化系统上进行集中的或者异地的监视、控制和家庭事务性管理, 并保持家庭设施与住宅环境的和谐与协调的系统【2】。1.2Android平台概述Android平台是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,受到众多开发者的欢迎,成为真正意义上的开放式操作系统。Android凭借其开放性和良好的人机界面,受到广大手机生产商的重视,随着3G时代的到来,A

9、ndroid平台凭借其优势,一方面,Android平台可为众多移动应用开发者提供良好的系统性平台,有利于移动应用的集合;另一方面,终端厂商可以针对自身的特殊需要进行“定制化开发”,Android有可能会改变现在智能手机市场的格局。Android采用的是Java虚拟机技术,并具有强大的开发环境,包括一个设备模拟器、调试工具、内存和性能检测以及Eclipse IDE(Integrated Development Environment)集成开发环境的开发插件【3】。Android系统中文件系统采用的是一种针对 NAND设备的新型文件系统Yaffs2 J,读写速度更快,并支持大容量的NANDFlas

10、h芯片【4】。1.3课题的来源背景目前,作为主流32位RISC嵌入式处理器ARM(Advanced RISC Machines),以其高性能、低功耗的优势占据很大的市场份额。ARM处理器家族大致分为如下系列:ARM7、ARM9、ARM9E、ARM10E、ARM11、SecurCore、和Cortex等。不仅有各大公司的微处理器芯片,还有用于学习和研发的各种配套开发包。目前低层系统和硬件平台经过若干年的研究,已经相对比较成熟,实现各种功能的芯片应有尽有。而且巨大的市场需求给我们提供了学习研发的资金和技术力量。本论文的选题正是结合Android平台、信息家电这两个热点领域,在广州友善之臂计算机科技

11、有限公司开发的Tiny6410开发板上安装Android操作系统,再通过Java语言编写一个关于信息家电的应用程序,本程序实现的功能是在网页上实现USB摄像头的控制。本系统可以应用于远程的系统监控,能在网页上实时的浏览家中家电的状态并加以控制。1.4国内外的研究现状随着网络技术的发展和广泛普及,PC作为网络第一接入设备的地位正在不断削弱,而集电脑、通信和消费类电子产品三者功能于一身的信息家电产品已经成为一个不可阻挡的发展潮流。无论在国际还是在国内,这股潮流都已经得到了充分的验证。在美国,有94%的人通过个人电脑上网,而到2002年,这一比例将降到64%,30%的个人电脑市场将让位给信息家电。微

12、软公司董事长兼首席执行官比尔盖茨预言:TV型PC和“口袋”型PC将是下一代PC的代表。为适应这一发展趋势,微软中国研发中心针对国内用户的特点,开发出了适合中国家庭使用环境的维纳斯电脑。目前国内很多知名电子厂商如联想、方正、海尔等,都已经纷纷加入维纳斯阵营,推出了各自不同的基于维纳斯平台的信息家电产品。目前,我国互联网用户目前已有1000万之多,而且还在以每年翻两翻的速度快速增长。国人对互联网的消费需求由此可见一斑。但由于价格和技术的障碍,我国家庭目前只有200多万台家用电脑;同时,却拥有世界上最大的家电市场:3.17亿台电视,电话普及率已达到25%,城市超过50%。这样的一种反差正好给信息家电

13、留了一个巨大的发展空间。有理由相信,随着国内信息家电产品与技术的不断发展与成熟,信息家电走入千家万户只是迟早的事情。自2009年开始,中国信息家电市场发展迅速,产品产出持续扩张,国内企业新增投资项目投资逐渐增多,企业为了获得更大的投资收益,在生产规模和产品质量上不断提升。世界大的经济环境及国内针对信息家电行业推出的一系列新的政策,加上国家一批重大工程陆续开工建设,对信息家电市场需求必定产生极大的拉动作用。1.5设计主要内容利用ARM11开发板自带的USB接口,将摄像头采集到的图像信息在网页上显示出来,并根据这些信息在网页上做出对控制对象的操作,从而通过摄像头实现对家电的远程控制。本系统要实现的

14、功能有1.开发板通过摄像头进行实时的视频采集,并将信息反映到互联网上。2.在电脑端或手机端能通过安装编写的客户端进行实时的视频监控。3.客户端能对开发板上的硬件进行控制第二章 系统分析2.1研究目标(1)学会在Linux操作系统上进行程序的编译改写和运行,并熟练掌握Linux操作系统的使用,熟悉其基本的Shell命令,并能进行运用。(2)在Android操作系统上实现“通过Web远程浏览并控制Tiny6410上的摄像头”,再用Java语言编写一个可以对开发板进行控制的客户端,从而实现在Android平台上控制信息家电系统的设计。2.2系统框架图2.3Tiny6410开发板简介Tiny6410是

15、一款以ARM11芯片(三星S3C6410)作为主处理器的嵌入式核心板,该CPU基于ARM1176JZF-S核设计,内部集成了强大的多媒体处理单元,支持Mpeg4, H.264/H.263等格式的视频文件硬件编解码,可同时输出至LCD和TV显示;它还并带有3D图形硬件加速器,以实现OpenGL ES 1.1 & 2.0加速渲染,另外它还支持2D图形图像的平滑缩放,翻转等操作。 Tiny6410采用高密度6层板设计,尺寸为64 x 50mm,它集成了128M/256M DDR RAM,SLC NAND Flash(256M/1GB)或MLC NAND Flash(2GB)存储器,采用5V供电,在板

16、实现CPU必需的各种核心电压转换,还带有专业复位芯片,通过2.0mm间距的排针,引出各种常见的接口资源,以供不打算自行设计CPU板的开发者进行快捷的二次开发使用。 Tiny6410SDK是采用Tiny6410核心板的一款参考设计底板,它主要帮助开发者以此为参考进行核心板的功能验证以及扩展开发。该底板具有三LCD接口、4线电阻触摸屏接口、100M标准网络接口、标准DB9五线串口、Mini USB 2.0接口、USB Host 1.1、3.5mm音频输入输出口、标准TV-OUT接口、SD卡座、红外接收等常用接口;另外还引出4路TTL串口,另1路TV-OUT、SDIO2接口(可接SD WiFi)接口

17、等;在板的还有蜂鸣器、I2C-EEPROM、备份电池、AD可调电阻、8个中断式按键等。 在布局上安排上,我们尽量考虑把常用尺寸的LCD模块能够固定在底板上,比如3.5”,4.3”LCD, 7”LCD等,这样用户在使用时不至于把各种电线搅在一起,更增加了开发套件的便携性2.3.1 Tiny6410核心板资源特性如下:Item Description CPU Samsung S3C6410A, run at 533Mhz ARM1176JZF-S, up to 667Mhz RAM 256 DDR RAM(128M is option), default: 256M Flash 128/256M/

18、512M/1GB/2GB Nand Flash, default: 2GB MLC Nand Flash Interface 4 x User Leds 10 pin 2.0mm space Jtag connector Reset button on board Connector - 2 x 60 pin 2.0mm space DIP connector - 2 x 30 pin 2.0mm space GPIO connector Power Supply Supply Voltage from 2.0V to 6V Size 64 x 50 x 12mm (L x W x H) 2.

19、3.2 Tiny6410SDK开发板资源特性如下:Item Description CPU Samsung S3C6410A(ARM1176JZF-S) 频率 运行频率533Mhz, 最高可达667Mhz RAM 128M DDR RAM,可升级至256M Nand Flash 128M/256M/512M/1GB, 缺省为256M 多媒体 支持Mpeg4, H.264, H.263, VC1硬件编解码,高达30fpsSD 3D 支持3D硬件加速处理 2D 支持图形图像无极缩放,旋转,翻转 调试口 COM0 + JTAG + USB Slave PCB尺寸 180 x 130 mm 供电 5V

20、 指示灯 4 x User LED(在核心板), 1 x Power LED 测试按键 8 x User Buttons,中断式按键 USB Slave 1 x mini USB(底板没有设计OTG功能) USB Host 通过USB HUB芯片,实现4个USB Host接口 网络接口 10/100M MB以太网, RJ-45接口 第三章系统开发环境及相关技术3.1Android开发环境介绍Android的上层应用程序是用Java语言开发,同时还需要基于Dalvik虚拟机,所以,Google公司推荐使用主流的Java继承开发环境Eclipse。只有Eclipse还不够,因为是使用Java语言进

21、行开发,还应该有由SUN公司提供的Java SDK(其中包括JRE:JavaRuntimeEnvironment)。此外,Android的应用程序开发和Java开发有较大区别的,所以还需要有Google提供的AndroidSDK。同时,还需要在Eclipse安装ADT,为Android开发提供开发工具的升级或者变更,是Eclipse下开发工具的升级下载的工具。简言之,需要以下软件,才能搭建Android开发环境,从而进行Android应用程序的开发。(1)Java SDK(2)Eclipse(3)Android SDK(4)ADT3.2 Eclipse简介Eclipse就像软件开发者的打铁铺,

22、它一开始备有火炉、铁钻与铁锤。就像铁匠会用现有的工具打造新的工具,也能用Eclipse打造新工具来开发软件-这些新工具可扩充Eclipse的功能。(Eclipse其中一个卖点就是它的扩充性)3.2.1 Eclipse的历史背景Eclipse 最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT 和PDE。目前由IBM牵头,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、Rational Software、Red

23、Hat及Sybase等。Eclipse是一个开发源码项目,它其实是Visual Age for Java的替代品,其界面跟先前的Visual Age for Java差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。近期还有包括Oracle在内的许多大公司也纷纷加入了该项目,并宣称Eclipse将来能成为可进行任何语言开发的IDE集大成者,使用者只需下载各种语言的插件即可。Eclipse已经成为开放原始码计划(Open Source Project),大部分的开发扔然掌握在IBM手中,但是有一部份由 eclipse.org 的软件联盟主导。E

24、clipse项目由Project Management Committee(PMC)所管理,它综观项目全局,Eclipse项目分成 3个子项目:1.平台-Platform2.开发工具箱-Java Development Toolkit(JDT)3.外挂开发环境-Plug-in Development Environment(PDE)这些子项目又细分成更多子项目。例如Platform子项目包含数各组件,如Compare、Help与Search。JDT子项目包括三各组件:User Interface(UI)、核心(Core)及除错(Debug)。PDE子项目包含两各组件:UI与Core3.2.2

25、Eclipse版本介绍可以从eclipse.org网站(http:/www.eclipse.org/downloads)下载,可以发现最新与最好的版本,这两种版本通常不一样,基本上有四种版本或建置(build)可供下载:1.释出版(Release builds):由Eclipse开发团队所宣称的主要稳定版本。Release builds经过完整测试,并具有一致性、定义清楚的功能。它的定位就跟上市的商业软件一样。2.稳定版(Stable builds):比Release build新一级的版本,经由Eclipse开发团队测试。并认定它相当稳定。新功能通常会在此过渡版本出现。它的定位就跟商业软件的

26、beta版一样。3.整合版(Integration builds):此版本的各个独立的组件已经过Eclipse开发团队认定具稳定度,但不保证兜在一起没问题。若兜在一起够稳定,它就有可能晋级成Stable build。4.当日最新版(Nightly builds):此版本显然是从最新的原始码产生出来的。可想而知,此版本当然不保证它跑起来没问题,搞不好还有严重的bug。3.2.3 Eclipse特点-跨语言、跨平台多数人认为Eclipse是Java IDE,不过,当下载Eclipse之后,除了有Java IDE(就是JDT),还有PDE。然而Eclipse是万用工具平台。JDT实际上是Eclips

27、e的添加品,也就是外挂程序。Eclipse本身实际上是指Eclipse平台(Eclipse Platform),除了下载时能取得Java工具集以外,还提供各种工具的支持,所以平台本身只是相当小的组软件。如果想开发Java程序,用的是Eclipse随附的JDT外挂程序。如果想开发其它语言的程序,就需要拿到其它外挂程序,诸如CDT(C Development Toolkit)就可以开发C/C+程序。Eclipse跨计算机语言,也跨人类的语言。相同的外挂机制可用来增加对不同语言的支持,这里使用一种特殊的外挂,叫做外挂程序片断(plug-in fragment)。IBM以捐出一个语言套件,支持中文(繁

28、体与简体)、法文、德文、意大利文、日文、韩文、葡萄牙文(巴西)与西班牙文。照理说Eclipse以Java写成,应该可以在任何的平台执行。但严格来说Eclipse不是跨平台的,因为它使用作业平台的原生图形来建置。因此要等SWT(Standard Widget Toolkit)移植到该平台,Eclipse才能在那个平台执行。但就现实而言到不是什么大问题,因为SWT已经被移植到数个常见平台上了,包括Windows、Linux/Motif、Linux/GTK2、Solaris、QNX、AIX、HP-UX 与 Mac OS X。3.2.4 Eclipse平台架构Eclipse 平台的目的,是提供多种软件

29、开发工具的整合机制,这些工具会实作成 Eclipse 外挂程序,平台必须用外挂程序加以扩充才有用处。Eclipse 设计美妙之处,在于所有东西都是外挂,除了底层的核心以外。这种外挂设计让 Eclipse 具备强大扩充性,但更重要的是,此平台提供一个定义明确的机制,让各种外挂程序共通合作(透过延伸extension points)与贡献(contributions),因此新功能可以轻易且无缝地加入平台。Eclipse 平台由数种组件组成:平台核心(platform kernel)、工作台(workbench)、工作区(workspace)、团队组件(tram component)以及说明组件(h

30、elp)。3.3 Android开发平台搭建Android开发平台搭建步骤为:1.并安装JDK (Java SE Development Kit) 由于Android SDK和Eclipse都是用Java编写的,因此需要先在Windows 7上安装JDK,JDK可按以下方法下载: 访问网站在打开的页面中,选中Accept License Agreement:接着根据平台选择jdk下载链接,Windows7 32bit版本是点击jdk-7u4-windows- i586.exe下载JDK的安装程序,下载完成后,双击安装程序,根据向导的提示完成安装即可。安装完成后,需要将JDK命令添加到Path环

31、境变量中,通过下面的方法将JDK命令所在的路径添加到Path环境变量中: 1) 右击“我的电脑”-属性 ,再选择左边导航的“高级系统设置”选项。 2) 点击右下角的“环境变量”选项。 3) 在系统变量中,找到Path 环境变量,双击它,在变量值前面追加以下内容:“C:Program FilesJava jdk1.7.0_03;”,注意后面有一个分号 4) 点击“确定”完成环境变量设置。2.下载并安装Android SDK 首先,前往从网站 平台的 最新的Android SDK 套件,下载完成会得到一个安装文件,下载页面如下图所示,请下载符合电脑系统的文件:双击下载得到的安装程序installe

32、r_r11-windows.exe,根据安装向导的提示安装即可,默认将安装在 C:Program FilesAndroidandroid-sdk目录下,安装完成后,SDK Manager默认会自动启动。 如果安装过程中出现找不到JDK的错误提示,只要Back回去一次再点Next即可。 SDK Manager启动时,由于我们还没有下载任何的Packages,因此会弹出一个Choose Packages to Install的对话框,询问你是否安装所有可用的Packages,由于我只想安装Android 2.3相关的Packages,因此,这里我点击Cancel关闭对话框,回到Android SD

33、K and AVD Manager的主界面。 以后可以通过在开始菜单中找到Android SDK Tools,然后点击SDK Manager来启动SDK Manager,如下图所示:由于默认SDK是安装在C盘,所以最好将SDK Manager以管理员身份运行,否则在下载并安装Packages时会因为无法往C盘写入数据而导致失败,通过以下方法设置在每次启动SDK时,都以管理员身份启动: 1) 在开始菜单中右击 SDK Manager 的快捷方式,点属性 2) 在SDK Manager 快捷方式的属性对话框,点击“兼容性”的选项卡,选中“以管理员身份运行此程序”,如下图所示:以后每次点击快捷方式运

34、行SDK时,都会弹出权限确认对话框,点击“是”即可以管理员身份运行程序。 3.下载并安装Android 2.3的相关Packages 用管理员身份启动SDK Manager,在Android SDK and AVD Manager的主界面上,选择“Available Packages”,点击Android Repository前面的“”图标展开选项,参考下图选中Android 2.3.3相关的选项:在上面的对话框中点击“Install Selected”按钮,在弹出的Choose Packages to Install”对话框中,选中“Accept All”单选框,点击“Install”按钮,

35、将进入下载过程,下载速度视你的网速而定,请耐心等待下载完成。 下载完成后,会弹出询问是否重启ADB的对话框,点击Yes即可。4. 安装 Eclipse 集成开发环境Android 推荐的 IDE 为 Eclipse,访问以下地址下载Eclipse: http:/www.eclipse.org /downloads /: 在下载页面中,参考下图,选择Windows类别,然后下载Eclipse IDE for Java Developers版本(下载32bit还是64bit版本则根据你的Windows7版本的实际情况而定),如下图所示:下载后会得到一个名为eclipse-java-helios-S

36、R2-win32.zip的压缩包(随着eclipse版本的更新,文件名可能有所不同),Eclipse是不需要安装的,直接解压就可以用了,推荐在D:根目录下解压这个压缩包,解压后进入eclipse目录,双击eclipse.exe即可启动eclipse。 启动时,首先会让你设置Workspace的路径,这个路径用于保存你所创建所有程序的源代码,你可以自行修改,启动后Eclipse的主界面如下所示:5.安装Android Development Tools 插件在上面的步骤中,我们分别安装了Android SDK和Eclipse,但要在Eclipse中使用Android SDK,还需要在Eclips

37、e中安装一个ADT插件,安装方法如下: 访问网址 ,在网页中找到ADT的下载链接下载它,如下所示:下载后得到文件ADT-10.0.1.zip,解压后得到如下文件:先退出Eclipse,然后将这些文件复制并覆盖Eclipse目录下即可完成安装。6.配置Eclipse 启动Eclipse,在Eclipse主界面上点击Window菜单,选择Preferences,在Preferences对话框中,在左侧选中“Android”,在右侧的SDK Location右边点击Brower按钮,选择SDK的安装路径,默认的路径为C:Program FilesAndroidandroid-sdk,如下图所示:7.

38、创建Android模拟器 在开始菜单中找到Android SDK Tools,然后点击SDK Manager来启动SDK Manager,将弹出“Android SDK and AVD Manager”对话框,点击“New.”按钮,将弹出“Create new Android Virtual Device(AVD)”对话框,在Name中输入:Android-AVD,Target中选择:Android 2.3.3 - API Level 10,SD Card输入512, 其它选项默认,点击“Create AVD”按钮即可,如下图所示:创建完成后,将在列表中列出该模拟器,如下图所示:可在列表中选中

39、它,然后点击Start,在弹出的Launch Option对话框中点击Launch启动模拟器,效果如下所示:第四章 Android程序设计及最终效果4.1Android系统架构Android是一个包括操作系统,中间件以及一些重要应用程序的专门针对移动设备的层次结构的软件集。作为一个层次结构的软件集,一定有一个层次的系统构架,下图为Android的构架图:从图4.1中明显的可以看出该系统从下到上包括Linux内核层、Libraries和运行时环境层、应用程序框架层、应用程序层四层结构。在Android的最下层的操作系统基于Linux2.6内核,往上的中间件包括Libraries和运行时环境层和应

40、用程序框架层两个层次,最上层则是应用程序层【5】。 在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C+作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:python、lua、tcl、php等等),还有其他诸如:Qt(qt for android)、Mono(mono for android)等一些著名编程框架也开始支持Android编程,甚至通过MonoDroid,开发者还可以使用C#作为编程语言来开发应用程序。另外,谷歌还在2009年特别发布了针对初学者的Android Simple语言,该语言类似Basic语言。

41、而在网页编程语言方面,JavaScript,ajax,HTML5,jquery、sencha、dojo、mobl、PhoneGap等等都已经支持Android开发。 而在Android系统底层方面,Android使用C/C+作为开发语言。操作系统与应用程序的沟通桥梁,应用分为两层:函数层(Library)和虚拟机(Virtual Machine)。 Bionic是 Android 改良libc的版本。Android 同时包含了Webkit,所谓的Webkit 就是Apple Safari 浏览器背后的引擎。Surface flinger 是就2D或3D的内容显示到屏幕上。Android使用工具

42、链(Toolchain)为Google自制的Bionic Libc。 Android采用OpenCORE作为基础多媒体框架。OpenCORE可分7大块:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。 Android 使用skia 为核心图形引擎,搭配OpenGL/ES。skia与Linux Cairo功能相当,但相较于Linux Cairo, skia 功能还只是雏形的。2005年Skia公司被G

43、oogle收购,2007年初,Skia GL源码被公开,目前Skia 也是Google Chrome 的图形引擎。 Android的多媒体数据库采用SQLite数据库系统。数据库又分为共用数据库及私用数据库。用户可通过ContentResolver类(Column)取得共用数据库。 Android的中间层多以Java 实现,并且采用特殊的Dalvik 虚拟机(Dalvik Virtual Machine)。Dalvik虚拟机是一种“暂存器型态”(Register Based)的Java虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。 Dalvik虚拟机可以有多个实例(instance),

44、每个Android应用程序都用一个自属的Dalvik虚拟机来运行,让系统在运行程序时可达到优化。Dalvik 虚拟机并非运行Java字节码(Bytecode),而是运行一种称为.dex格式的文件。4.2 Android的应用任何一个Android应用程序,都可由四个部分组成,这四个组成部分分别是Activity;Intent Receiver;Service;Content Provider【6】。对于一个应用程序来说,不一定这四个部分都需要。其中,Activity、Intent Receiver和Service是Android最基本的三个组件。其实,这四个部分全部或者其中几个的相互协调工作组

45、成了我们平时见到的应用程序。4.2.1Activity Android 中,Activity 是所有程序的根本,所有程序的流程都运行在Activity 之中,Activity可以算是开发者遇到的最频繁,也是Android 当中最基本的模块之一。在Android的程序当中,Activity 一般代表手机屏幕的一屏。如果把手机比作一个浏览器,那么Activity就相当于一个网页。在Activity 当中可以添加一些Button、Check box 等控件。可以看到Activity 概念和网页的概念相当类似。 一般一个Android 应用是由多个Activity 组成的。这多个Activity 之间

46、可以进行相互跳转,例如,按下一个Button 按钮后,可能会跳转到其他的Activity。和网页跳转稍微有些不一样的是,Activity 之间的跳转有可能返回值,例如,从Activity A 跳转到Activity B,那么当Activity B 运行结束的时候,有可能会给Activity A 一个返回值。这样做在很多时候是相当方便的。 当打开一个新的屏幕时,之前一个屏幕会被置为暂停状态,并且压入历史堆栈中。用户可以通过回退操作返回到以前打开过的屏幕。我们可以选择性的移除一些没有必要保留的屏幕,应为Android会把每个应用的开始到当前的每个屏幕保存在堆栈中。 4.2.2 、Service Service 是android 系统中的一种组件,它跟Activity 的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。Service 是没有界面的长生命周期的代码。Service 是一种程序,它可以运行很长时间,但是它却没有用户界面。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号