1、 毕业设计论文基于Android平台的信息家电控制系统的设计与实现毕业论文(设计)原创性声明本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作与取得的研究成果。据我所知,除文中已经注明引用的容外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示意。 作者签名: 日期:毕业论文(设计)授权使用说明本论文(设计)作者完全了解*学院有关保留、使用毕业论文(设计)的规定,学校有权保留论文(设计)并向相关部门送交论文(设计)的电子版和纸质版。有权将论文(设计)用于非赢利目的的少量复制并允许论文(设计)进入学校图
2、书馆被查阅。学校可以公布论文(设计)的全部或部分容。的论文(设计)在解密后适用本规定。 作者签名: 指导教师签名:日期: 日期:注意事项1.设计(论文)的容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文
3、字通顺,语言流畅,书写字迹工整,打印字体与大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订3)其它摘 要随着网络技术的发展和广泛普与,PC作为网络第一接入设备的地位正在不断削弱,而集电脑、通信和消费类电子产品三者功能于一身的信息家
4、电产品已经成为一个不可阻挡的发展潮流,同时Android操作系统已成为许多手机制造商的宠儿,将二者结合在一起,Android操作系统将为信息家电控制系统的开发提供更好的平台。本系统使用的是友善之臂的ARM11开发板Tiny6410,可以利用该开发板上的USB接口,接上摄像头,再在网页上浏览摄像头拍摄到的图片,根据图片上显示的信息人工进行对家电的控制,从而实现远程监控的系统设计。本系统需要在开发板上安装一个Android操作系统,再将能完成摄像头监控的程序安装到开发板上,最后用Java语言编写一个对应的客户端安装到开发板上,这样就可以直接通过该客户端实现对摄像头以与家电的控制。关键词信息家电;A
5、RM11;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 Internet access equipment status of the first is increasingly weakened, and set the computer
6、, 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 pet,bringing them together, the Android operating system for the development of information
7、 appliances control system can provide better platform.This system is using the ARM11developmentboard, Tiny6410,of FriendlyARM , we can use the USB port of the development board, Connected to the camera, and then,we can browse the picture on the web, according to the information shown in the picture
8、s,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 complete the surveillance camera, finally we will use Java language to write a corresponding client
9、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信息家电概述信息家电指带有嵌入式处理器的小型家用(个人用)信息设备,它的基本特征是与网络(主要指互联网)相连而有一些具体功能,可以是成套产品,也可以是一个辅助配件。信息家电利用先进的计算机、网络通信、人工智能等技术,将与家庭生活有关
10、的各种家用电器应用子系统有机地结合在一起,通过综合家庭围的本地管理与控制以与来自家庭之外的远程管理与控制,特别是基于互联网的远程管理与控制,让家庭生活更舒适、有效和便捷。与普通家电相比,智能家电不仅具有传统功能,还能提供舒适、高效、便捷、具有高度人性化的控制方式;将一批原来死板的家居设备结合在一起转变为具有“智慧”的工具,提供全方位的信息交换功能,实现家电控制的实时畅通,优化人们的生活方式,帮助人们有效地安排时间,增强家庭生活的高效性,并为家庭节省能源费用等1。而将多个信息家电系统组成网络就构成了智能家居网络系统,它是将家庭中各种与信息有关的通讯设备、家用电器和家庭保安装置通过家庭总线技术连接
11、到一个家庭智能化系统上进行集中的或者异地的监视、控制和家庭事务性管理, 并保持家庭设施与住宅环境的和谐与协调的系统2。1.2Android平台概述Android平台是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,受到众多开发者的欢迎,成为真正意义上的开放式操作系统。Android凭借其开放性和良好的人机界面,受到广大手机生产商的重视,随着3G时代的到来,Android平台凭借其优势,一方面,Android平台可为众多移动应用开发者提供良好的系统性平台,有利于移动应用的集合;另一方面,终端厂商可以针对自身的特殊需要进行“定制化开发”,Android有可
12、能会改变现在智能手机市场的格局。Android采用的是Java虚拟机技术,并具有强大的开发环境,包括一个设备模拟器、调试工具、存和性能检测以与Eclipse IDE(Integrated Development Environment)集成开发环境的开发插件3。Android系统中文件系统采用的是一种针对 NAND设备的新型文件系统Yaffs2 J,读写速度更快,并支持大容量的NANDFlash芯片4。1.3课题的来源背景目前,作为主流32位RISC嵌入式处理器ARM(Advanced RISC Machines),以其高性能、低功耗的优势占据很大的市场份额。ARM处理器家族大致分为如下系列:
13、ARM7、ARM9、ARM9E、ARM10E、ARM11、SecurCore、和Cortex等。不仅有各大公司的微处理器芯片,还有用于学习和研发的各种配套开发包。目前低层系统和硬件平台经过若干年的研究,已经相对比较成熟,实现各种功能的芯片应有尽有。而且巨大的市场需求给我们提供了学习研发的资金和技术力量。本论文的选题正是结合Android平台、信息家电这两个热点领域,在友善之臂计算机科技开发的Tiny6410开发板上安装Android操作系统,再通过Java语言编写一个关于信息家电的应用程序,本程序实现的功能是在网页上实现USB摄像头的控制。本系统可以应用于远程的系统监控,能在网页上实时的浏览家
14、中家电的状态并加以控制。1.4国外的研究现状随着网络技术的发展和广泛普与,PC作为网络第一接入设备的地位正在不断削弱,而集电脑、通信和消费类电子产品三者功能于一身的信息家电产品已经成为一个不可阻挡的发展潮流。无论在国际还是在国,这股潮流都已经得到了充分的验证。在美国,有94%的人通过个人电脑上网,而到2002年,这一比例将降到64%,30%的个人电脑市场将让位给信息家电。微软公司董事长兼首席执行官比尔盖茨预言:TV型PC和“口袋”型PC将是下一代PC的代表。为适应这一发展趋势,微软中国研发中心针对国用户的特点,开发出了适合中国家庭使用环境的维纳斯电脑。目前国很多知名电子厂商如联想、方正、海尔等
15、,都已经纷纷加入维纳斯阵营,推出了各自不同的基于维纳斯平台的信息家电产品。目前,我国互联网用户目前已有1000万之多,而且还在以每年翻两翻的速度快速增长。国人对互联网的消费需求由此可见一斑。但由于价格和技术的障碍,我国家庭目前只有200多万台家用电脑;同时,却拥有世界上最大的家电市场:3.17亿台电视,普与率已达到25%,城市超过50%。这样的一种反差正好给信息家电留了一个巨大的发展空间。有理由相信,随着国信息家电产品与技术的不断发展与成熟,信息家电走入千家万户只是迟早的事情。自2009年开始,中国信息家电市场发展迅速,产品产出持续扩,国企业新增投资项目投资逐渐增多,企业为了获得更大的投资收益
16、,在生产规模和产品质量上不断提升。世界大的经济环境与国针对信息家电行业推出的一系列新的政策,加上国家一批重大工程陆续开工建设,对信息家电市场需求必定产生极大的拉动作用。1.5设计主要容利用ARM11开发板自带的USB接口,将摄像头采集到的图像信息在网页上显示出来,并根据这些信息在网页上做出对控制对象的操作,从而通过摄像头实现对家电的远程控制。本系统要实现的功能有1.开发板通过摄像头进行实时的视频采集,并将信息反映到互联网上。2.在电脑端或手机端能通过安装编写的客户端进行实时的视频监控。3.客户端能对开发板上的硬件进行控制第二章 系统分析2.1研究目标(1)学会在Linux操作系统上进行程序的编
17、译改写和运行,并熟练掌握Linux操作系统的使用,熟悉其基本的Shell命令,并能进行运用。(2)在Android操作系统上实现“通过Web远程浏览并控制Tiny6410上的摄像头”,再用Java语言编写一个可以对开发板进行控制的客户端,从而实现在Android平台上控制信息家电系统的设计。2.2系统框架图2.3Tiny6410开发板简介Tiny6410是一款以ARM11芯片(三星S3C6410)作为主处理器的嵌入式核心板,该CPU基于ARM1176JZF-S核设计,部集成了强大的多媒体处理单元,支持Mpeg4, H.264/H.263等格式的视频文件硬件编解码,可同时输出至LCD和TV显示;
18、它还并带有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供电,在板实现CPU必需的各种核心电压转换,还带有专业复位芯片,通过2.0mm间距的排针,引出各种常见的接口资源,以供不打算自行设计CPU板的开发者进行快捷的二次开发使用。Tiny6410SDK是采用Tiny6410核心板的一款参考设计底板,它主要帮助开发
19、者以此为参考进行核心板的功能验证以与扩展开发。该底板具有三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)接口等;在板的还有蜂鸣器、I2C-EEPROM、备份电池、AD可调电阻、8个中断式按键等。在布局上安排上,我们尽量考虑把常用尺寸的LCD模块能够固定在底板上,比如3.5”,4.3”LCD, 7”LCD等,这样用户在使用时不至于把各种电线搅在一起,更增加
20、了开发套件的便携性2.3.1Tiny6410核心板资源特性如下:Item Description CPU Samsung S3C6410A, run at 533Mhz ARM1176JZF-S, up to 667Mhz RAM 256 DDR RAM(128M is option), default: 256MFlash 128/256M/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
21、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.3.2Tiny6410SDK开发板资源特性如下:Item Description CPU Samsung S3C6410A(ARM1176JZF-S) 频率运行频率533Mhz, 最高可达667Mhz RAM 128M DDR RAM,可升级至256MN
22、and 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 指示灯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接口网络接
23、口10/100M MB以太网, RJ-45接口第三章系统开发环境与相关技术3.1Android开发环境介绍Android的上层应用程序是用Java语言开发,同时还需要基于Dalvik虚拟机,所以,Google公司推荐使用主流的Java继承开发环境Eclipse。只有Eclipse还不够,因为是使用Java语言进行开发,还应该有由SUN公司提供的JavaSDK(其中包括JRE:JavaRuntimeEnvironment)。此外,Android的应用程序开发和Java开发有较大区别的,所以还需要有Google提供的AndroidSDK。同时,还需要在Eclipse安装ADT,为Android开发
24、提供开发工具的升级或者变更,是Eclipse下开发工具的升级下载的工具。简言之,需要以下软件,才能搭建Android开发环境,从而进行Android应用程序的开发。(1)JavaSDK(2)Eclipse(3)AndroidSDK(4)ADT3.2 Eclipse简介Eclipse就像软件开发者的打铁铺,它一开始备有火炉、铁钻与铁锤。就像铁匠会用现有的工具打造新的工具,也能用Eclipse打造新工具来开发软件-这些新工具可扩充Eclipse的功能。(Eclipse其中一个卖点就是它的扩充性)3.2.1Eclipse的历史背景Eclipse 最初由OTI和IBM两家公司的IDE产品开发组创建,起
25、始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT 和PDE。目前由IBM牵头,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、Rational Software、Red Hat与Sybase等。Eclipse是一个开发源码项目,它其实是Visual Age for Java的替代品,其界面跟先前的Visual Age for Java差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。近期还有包括Oracle在的
26、许多大公司也纷纷加入了该项目,并宣称Eclipse将来能成为可进行任何语言开发的IDE集大成者,使用者只需下载各种语言的插件即可。Eclipse已经成为开放原始码计划(OpenSourceProject),大部分的开发扔然掌握在IBM手中,但是有一部份由eclipse.org的软件联盟主导。Eclipse项目由ProjectManagementCommittee(PMC)所管理,它综观项目全局,Eclipse项目分成3个子项目:1.平台-Platform2.开发工具箱-JavaDevelopmentToolkit(JDT)3.外挂开发环境-Plug-inDevelopmentEnvironme
27、nt(PDE)这些子项目又细分成更多子项目。例如Platform子项目包含数各组件,如Compare、Help与Search。JDT子项目包括三各组件:UserInterface(UI)、核心(Core)与除错(Debug)。PDE子项目包含两各组件:UI与Core3.2.2Eclipse版本介绍可以从eclipse.org(.eclipse.org/downloads)下载,可以发现最新与最好的版本,这两种版本通常不一样,基本上有四种版本或建置(build)可供下载:1.释出版(Releasebuilds):由Eclipse开发团队所宣称的主要稳定版本。Releasebuilds经过完整测试
28、,并具有一致性、定义清楚的功能。它的定位就跟上市的商业软件一样。2.稳定版(Stablebuilds):比Releasebuild新一级的版本,经由Eclipse开发团队测试。并认定它相当稳定。新功能通常会在此过渡版本出现。它的定位就跟商业软件的beta版一样。3.整合版(Integrationbuilds):此版本的各个独立的组件已经过Eclipse开发团队认定具稳定度,但不保证兜在一起没问题。若兜在一起够稳定,它就有可能晋级成Stablebuild。4.当日最新版(Nightlybuilds):此版本显然是从最新的原始码产生出来的。可想而知,此版本当然不保证它跑起来没问题,搞不好还有严重的
29、bug。3.2.3Eclipse特点-跨语言、跨平台多数人认为Eclipse是JavaIDE,不过,当下载Eclipse之后,除了有JavaIDE(就是JDT),还有PDE。然而Eclipse是万用工具平台。JDT实际上是Eclipse的添加品,也就是外挂程序。Eclipse本身实际上是指Eclipse平台(EclipsePlatform),除了下载时能取得Java工具集以外,还提供各种工具的支持,所以平台本身只是相当小的组软件。如果想开发Java程序,用的是Eclipse随附的JDT外挂程序。如果想开发其它语言的程序,就需要拿到其它外挂程序,诸如CDT(CDevelopmentToolkit
30、)就可以开发C/C+程序。Eclipse跨计算机语言,也跨人类的语言。一样的外挂机制可用来增加对不同语言的支持,这里使用一种特殊的外挂,叫做外挂程序片断(plug-infragment)。IBM以捐出一个语言套件,支持中文(繁体与简体)、法文、德文、意大利文、日文、文、葡萄牙文(巴西)与西班牙文。照理说Eclipse以Java写成,应该可以在任何的平台执行。但严格来说Eclipse不是跨平台的,因为它使用作业平台的原生图形来建置。因此要等SWT(StandardWidgetToolkit)移植到该平台,Eclipse才能在那个平台执行。但就现实而言到不是什么大问题,因为SWT已经被移植到数个常
31、见平台上了,包括Windows、Linux/Motif、Linux/GTK2、Solaris、QNX、AIX、HP-UX与MacOSX。3.2.4Eclipse平台架构Eclipse 平台的目的,是提供多种软件开发工具的整合机制,这些工具会实作成 Eclipse 外挂程序,平台必须用外挂程序加以扩充才有用处。Eclipse 设计美妙之处,在于所有东西都是外挂,除了底层的核心以外。这种外挂设计让 Eclipse 具备强大扩充性,但更重要的是,此平台提供一个定义明确的机制,让各种外挂程序共通合作(透过延伸extension points)与贡献(contributions),因此新功能可以轻易且无
32、缝地加入平台。Eclipse 平台由数种组件组成:平台核心(platform kernel)、工作台(workbench)、工作区(workspace)、团队组件(tram component)以与说明组件(help)。3.3 Android开发平台搭建Android开发平台搭建步骤为:1.并安装JDK (Java SE Development Kit) 由于Android SDK和Eclipse都是用Java编写的,因此需要先在Windows 7上安装JDK,JDK可按以下方法下载:访问 oracle./technetwork/java/javase/downloads/index.html
33、,在页面中点击JDK:在打开的页面中,选中Accept License Agreement:接着根据平台选择jdk下载,Windows7 32bit版本是点击jdk-7u4-windows-i586.exe下载JDK的安装程序,下载完成后,双击安装程序,根据向导的提示完成安装即可。安装完成后,需要将JDK命令添加到Path环境变量中,通过下面的方法将JDK命令所在的路径添加到Path环境变量中:1) 右击“我的电脑”-属性,再选择左边导航的“高级系统设置”选项。2) 点击右下角的“环境变量”选项。3) 在系统变量中,找到Path 环境变量,双击它,在变量值前面追加以下容:“C:Program
34、FilesJava jdk1.7.0_03;”,注意后面有一个分号4) 点击“确定”完成环境变量设置。2.下载并安装Android SDK 首先,前往从developer.android./sdk/获取Windows 平台的最新的Android SDK 套件,下载完成会得到一个安装文件,下载页面如下图所示,请下载符合电脑系统的文件:双击下载得到的安装程序installer_r11-windows.exe,根据安装向导的提示安装即可,默认将安装在 C:Program FilesAndroidandroid-sdk目录下,安装完成后,SDK Manager默认会自动启动。如果安装过程中出现找不到J
35、DK的错误提示,只要Back回去一次再点Next即可。SDK Manager启动时,由于我们还没有下载任何的Packages,因此会弹出一个Choose Packages to Install的对话框,询问你是否安装所有可用的Packages,由于我只想安装Android 2.3相关的Packages,因此,这里我点击Cancel关闭对话框,回到Android SDK and AVD Manager的主界面。以后可以通过在开始菜单中找到Android SDK Tools,然后点击SDK Manager来启动SDK Manager,如下图所示:由于默认SDK是安装在C盘,所以最好将SDK Man
36、ager以管理员身份运行,否则在下载并安装Packages时会因为无法往C盘写入数据而导致失败,通过以下方法设置在每次启动SDK时,都以管理员身份启动:1) 在开始菜单中右击 SDK Manager 的快捷方式,点属性2) 在SDK Manager 快捷方式的属性对话框,点击“兼容性”的选项卡,选中“以管理员身份运行此程序”,如下图所示:以后每次点击快捷方式运行SDK时,都会弹出权限确认对话框,点击“是”即可以管理员身份运行程序。3.下载并安装Android 2.3的相关Packages 用管理员身份启动SDK Manager,在Android SDK and AVD Manager的主界面上
37、,选择“Available Packages”,点击Android Repository前面的“”图标展开选项,参考下图选中Android 2.3.3相关的选项:在上面的对话框中点击“Install Selected”按钮,在弹出的Choose Packages to Install”对话框中,选中“Accept All”单选框,点击“Install”按钮,将进入下载过程,下载速度视你的网速而定,请耐心等待下载完成。下载完成后,会弹出询问是否重启ADB的对话框,点击Yes即可。4. 安装 Eclipse 集成开发环境Android 推荐的 IDE 为 Eclipse,访问以下地址下载Eclip
38、se: .eclipse.org/downloads/:在下载页面中,参考下图,选择Windows类别,然后下载Eclipse IDE for Java Developers版本(下载32bit还是64bit版本则根据你的Windows7版本的实际情况而定),如下图所示:下载后会得到一个名为eclipse-java-helios-SR2-win32.zip的压缩包(随着eclipse版本的更新,文件名可能有所不同),Eclipse是不需要安装的,直接解压就可以用了,推荐在D:根目录下解压这个压缩包,解压后进入eclipse目录,双击eclipse.exe即可启动eclipse。启动时,首先会让
39、你设置Workspace的路径,这个路径用于保存你所创建所有程序的源代码,你可以自行修改,启动后Eclipse的主界面如下所示:5.安装Android Development Tools 插件在上面的步骤中,我们分别安装了Android SDK和Eclipse,但要在Eclipse中使用Android SDK,还需要在Eclipse中安装一个ADT插件,安装方法如下:访问网址 developer.android./sdk/eclipse-adt.html#installing ,在网页中找到ADT的下载下载它,如下所示:下载后得到文件ADT-10.0.1.zip,解压后得到如下文件:先退出Ec
40、lipse,然后将这些文件复制并覆盖Eclipse目录下即可完成安装。6.配置Eclipse 启动Eclipse,在Eclipse主界面上点击Window菜单,选择Preferences,在Preferences对话框中,在左侧选中“Android”,在右侧的SDK Location右边点击Brower按钮,选择SDK的安装路径,默认的路径为C:Program FilesAndroidandroid-sdk,如下图所示:7.创建Android模拟器在开始菜单中找到Android SDK Tools,然后点击SDK Manager来启动SDK Manager,将弹出“Android SDK an
41、d 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”按钮即可,如下图所示:创建完成后,将在列表中列出该模拟器,如下图所示:可在列表中选中它,然后点击Start,在弹出的Launch Option对话框中点击Launch启动模拟器,效果如下所示:第四章 Android程序设计与最终效果4.1Android系统架
42、构Android是一个包括操作系统,中间件以与一些重要应用程序的专门针对移动设备的层次结构的软件集。作为一个层次结构的软件集,一定有一个层次的系统构架,下图为Android的构架图:从图4.1中明显的可以看出该系统从下到上包括Linux核层、Libraries和运行时环境层、应用程序框架层、应用程序层四层结构。在Android的最下层的操作系统基于Linux2.6核,往上的中间件包括Libraries和运行时环境层和应用程序框架层两个层次,最上层则是应用程序层5。 在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C+作为编程语言来开发应用程序,也可
43、使用SL4A来使用其他各种脚本语言进行编程(如:python、lua、tcl、php等等),还有其他诸如:Qt(qt for android)、Mono(mono for android)等一些著名编程框架也开始支持Android编程,甚至通过MonoDroid,开发者还可以使用C#作为编程语言来开发应用程序。另外,谷歌还在2009年特别发布了针对初学者的Android Simple语言,该语言类似Basic语言。而在网页编程语言方面,JavaScript,ajax,HTML5,jquery、sencha、dojo、mobl、PhoneGap等等都已经支持Android开发。 而在Androi
44、d系统底层方面,Android使用C/C+作为开发语言。操作系统与应用程序的沟通桥梁,应用分为两层:函数层(Library)和虚拟机(Virtual Machine)。 Bionic是 Android 改良libc的版本。Android 同时包含了Webkit,所谓的Webkit 就是Apple Safari 浏览器背后的引擎。Surface flinger 是就2D或3D的容显示到屏幕上。Android使用工具链(Toolchain)为Google自制的Bionic Libc。 Android采用OpenCORE作为基础多媒体框架。OpenCORE可分7大块:PVPlayer、PVAutho
45、r、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。 Android 使用skia 为核心图形引擎,搭配OpenGL/ES。skia与Linux Cairo功能相当,但相较于Linux Cairo, skia 功能还只是雏形的。2005年Skia公司被Google收购,2007年初,Skia GL源码被公开,目前Skia 也是Google Chrome 的图形引擎。 Android的多媒体数据库采用SQLite数据库系统。数据库又分为
46、共用数据库与私用数据库。用户可通过ContentResolver类(Column)取得共用数据库。 Android的中间层多以Java 实现,并且采用特殊的Dalvik 虚拟机(Dalvik Virtual Machine)。Dalvik虚拟机是一种“暂存器型态”(Register Based)的Java虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。 Dalvik虚拟机可以有多个实例(instance), 每个Android应用程序都用一个自属的Dalvik虚拟机来运行,让系统在运行程序时可达到优化。Dalvik 虚拟机并非运行Java字节码(Bytecode),而是运行一种称为.dex格式的文件。4.2 Android的应用任何一个Android应用程序,都可由四个部分组成,这四个组成部分分别是Activity;Intent Receiver;Service;Content Provider6。对于一个应用程序来说,不一定这四个部分都需要。其中,Activity、Intent Receiver和Se