1、教材:胡文,宁世勇.Android嵌入式系统程序开发(基于Cortex-A8)主要参考书:1李善平等.Linux与嵌入式系统M.北京:清华大学出版社,2008.2马忠梅,徐英慧.ARM 嵌入式处理器结构与应用基础M.北京:北京航空航天大学出版社,2007.参考资料参考资料参考资料参考资料.pp AndroidAndroidAndroidAndroid体系结构及开发环境体系结构及开发环境体系结构及开发环境体系结构及开发环境.p什么是嵌入式系统嵌入式系统是以应用为中心,以计算机技术为基础,且软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。一般由以下几部分组成:
2、l嵌入式微处理器l外围硬件设备l嵌入式操作系统l特定的应用程序嵌入式系统基本概念嵌入式系统基本概念嵌入式系统基本概念嵌入式系统基本概念.p嵌入式系统的特点l应用的特定性和广泛性l技术、知识、资金的密集型l高效性l较长的生命周期l高可靠性l软硬一体,软件为主嵌入式系统基本概念嵌入式系统基本概念嵌入式系统基本概念嵌入式系统基本概念.p嵌入式系统的应用领域嵌入式系统基本概念嵌入式系统基本概念嵌入式系统基本概念嵌入式系统基本概念.p嵌入式系统的应用领域嵌入式系统基本概念嵌入式系统基本概念嵌入式系统基本概念嵌入式系统基本概念.p嵌入式系统的产品l网络设备:交换机、路由器;l消费电子:手机、MP4、电视机
3、顶盒、数字电视、数码照相机;l办公设备:打印机、传真机、扫描仪;l汽车电子:ABS(防死锁刹车系统)、车载GPSl工业控制:各种自动控制设备嵌入式系统基本概念嵌入式系统基本概念嵌入式系统基本概念嵌入式系统基本概念.p嵌入式系统的应用领域嵌入式系统基本概念嵌入式系统基本概念嵌入式系统基本概念嵌入式系统基本概念.p几种主流的嵌入式操作系统lVxworkslWindows EmbeddedlPalm OSl嵌入式Linux:层次结构及内核完全开放;强大的网络支持功能;具备一整套工具链;广泛的硬件支持特性。嵌入式系统基本概念嵌入式系统基本概念嵌入式系统基本概念嵌入式系统基本概念.p嵌入式系统的开发流程
4、嵌入式系统基本概念嵌入式系统基本概念嵌入式系统基本概念嵌入式系统基本概念.pARM的产品嵌入式系统基本概念嵌入式系统基本概念嵌入式系统基本概念嵌入式系统基本概念.pARM的产品lARM公司在经典处理器ARM11以后的产品改用Cortex命名,并分成A、R和M三类,为各种不同的市场提供服务。l由于应用领域不同,基于v7架构的Cortex处理器系列所采用的技术也不相同,基于v7A的称为Cortex-A系列,基于v7R的称为Cortex-R系列,基于v7M的称为Cortex-M系列。嵌入式系统基本概念嵌入式系统基本概念嵌入式系统基本概念嵌入式系统基本概念.pARM的产品lARM Cortex-A 系
5、列应用型处理器可向托管丰富OS平台和用户应用程序的设备提供全方位的解决方案,从超低成本手机、智能手机、移动计算平台、数字电视和机顶盒到企业网络、打印机和服务器解决方案。lCortex-A 系列专用于具有复杂软件操作系统(需使用虚拟内存管理)的面向用户的应用。嵌入式系统基本概念嵌入式系统基本概念嵌入式系统基本概念嵌入式系统基本概念.pARM的产品ARM Cortex-R实时处理器为要求可靠性、高可用性、容错功能、可维护性和实时响应的嵌入式系统提供高性能计算解决方案。ARM Cortex-M处理器系列是一系列可向上兼容的高能效、易于使用的处理器,Cortex-M 系列针对成本和功耗敏感的MCU和终
6、端应用(如智能测量、人机接口设备、汽车和工业控制系统、大型家用电器、消费性产品和医疗器械)的混合信号设备进行过优化。嵌入式系统基本概念嵌入式系统基本概念嵌入式系统基本概念嵌入式系统基本概念.1.1Android1.1Android体系结构介绍体系结构介绍.1.11.1纵览智能设备系统纵览智能设备系统p昨日皇者昨日皇者Symbian(塞班)(塞班)对硬件的水平低,操作简单,省电,软件资源多是Symbian系统手机的重要特点。p高贵华丽高贵华丽iOS iOS作为苹果移动设备iPhone和iPad的操作系统,在App Store的推动之下,成为了世界上引领潮流的操作系统之一。pWindows Pho
7、ne昔日诺基亚昔日诺基亚p高端商务高端商务Blackberry OS(黑莓)(黑莓)Blackberry是加拿大Research In Motion(简称RIM)公司推出的一种无线手持邮件解决终端设备的操作系统,由RIM自主开发。pAndroid 2007年,Google公司推出了一款无与伦比的移动智能设备系统Android,这是一种建立在Linux基础之上的为手机、平板等移动设备提供的软件解决方案。.1.11.1分析分析AndroidAndroid成功的秘诀成功的秘诀p强有力的业界支持强有力的业界支持 Android系统基于Linux内核,是一款开源的手机操作系统。正是因为如此,在Andro
8、id刚刚崭露头角,各大手机厂商和电信部门纷纷加入到了Android联盟当中。p研发阵容强大研发阵容强大 包括摩托罗拉、Google、HTC(宏达电子)、PHILIPS、T-Mobile、高通、魅族、三星、LG以及中国移动在内的34家企业。p为开发人员为开发人员“精心定制精心定制”(1)保证开发人员可以迅速转型为Android应用开发。(2)定期召开奖金丰厚的Android大赛。(3)开发人员可以利用自己的作品赚钱。p开源开源 开源意味着对开发人员和手机厂商来说是完全无偿免费使用的,所以吸引了全世界各地无数程序员的热情。于是很多手机厂商都纷纷采用Android作为自己产品的系统,这当然也包括包括
9、很多山寨厂商。因为免费,所以降低了成本,提高了利润。.1.11.1智能设备凶猛来袭智能设备凶猛来袭p常见的常见的Android智能设备智能设备(1)智能电视(2)机顶盒(3)游戏机(4)智能手表(5)智能家居p新兴热点新兴热点可穿戴设备可穿戴设备p可穿戴设备的发展前景分析可穿戴设备的发展前景分析(1)智能手机推动力(2)跨国公司推动力(3)用户推动力pAndroid对穿戴设备的支持对穿戴设备的支持Android Wear 北京时间2014年3月19日早间消息,谷歌在官方博客中公布了可穿戴设备操作系统Android Wear的细节。.1.1Android1.1Android体系结构介绍体系结构介
10、绍.1.1Android1.1Android体系结构介绍体系结构介绍.1.1Android1.1Android体系结构介绍体系结构介绍.1.1Android1.1Android体系结构介绍体系结构介绍.1.1Android1.1Android体系结构介绍体系结构介绍p应用程序(应用程序(Application)p应用程序框架(应用程序框架(Application Framework)p函数库(函数库(Libraries)和)和Android运行时(运行时(Android Runtime)pLinux内核(内核(Linux Kernel).1.1Android1.1Android体系结构介绍体系
11、结构介绍p应用程序(应用程序(Application)Android应应用用程程序序是是基基于于Java语语言言编编写写的的,为为使使用用者者提提供供操操作作接接口口。使使用用者者直直接接操操作作应应用用程程序序,实实现现一一定定的的功功能能。Android系系统统提提供供了了计计算算器器、联联系系人人(Contacts)、电电话话(Phone)、浏浏览览器器(Browser)、E-mail客客户户端端、SMS短短消消息息程程序序、日日历历、地图等内核应用程序。地图等内核应用程序。.1.1Android1.1Android体系结构介绍体系结构介绍p应用程序(应用程序(Application)开
12、开发发者者还还可可以以使使用用Android提提供供的的组组件件编编写写满满足足特特定定功功能能的的应应用程序。用程序。由由用用户户开开发发的的Android应应用用程程序序和和Android内内核核应应用用程程序序是是统统一层次的,它们都是基于一层次的,它们都是基于Android系统的系统的API构建的。构建的。API(Application Programming Interface)应应用用程程序序编编程程接接口口,是是一些预先定义的函数。一些预先定义的函数。.1.1Android1.1Android体系结构介绍体系结构介绍p应用程序框架(应用程序框架(Application Frame
13、work)开开发发人人员员可可以以访访问问内内核核应应用用程程序序所所使使用用的的API框框架架。应应用用程程序序体体系系结结构构设设计计简简化化了了组组件件的的重重用用,任任何何一一个个应应用用程程序序都都可可以以发发布布其其功功能能块块,并并且且任任何何其其他他的的应应用用程程序序都都可可以以使使用用应应用用程程序序体体系系结结构构所所发发布布的的功功能能块块(不不过过要要遵遵循循框框架架的的安安全全性性限限制制)。同同样样,应应用用程程序序重重组组机机制制也也使使使使用用者者可可以以方方便便地地替替换换程程序序组件。组件。.1.1Android1.1Android体系结构介绍体系结构介绍
14、p应用程序框架(应用程序框架(Application Framework)隐隐藏藏在在每每个个应应用用后后面面的的是是一一系系列列的的系系统统的的服服务务,这这些些系系统统服服务包括:务包括:l丰丰富富且且扩扩展展的的视视图图(View System),可可以以用用来来构构建建应应用用程程序序,这这些些视视图图包包括括列列表表(List)、网网格格(Grid)、文文本本块块(Text Box)、按钮()、按钮(Button),甚至可嵌入),甚至可嵌入Web浏览器。浏览器。.1.1Android1.1Android体系结构介绍体系结构介绍p应用程序框架(应用程序框架(Application Fr
15、amework)l内内容容提提供供器器(Content Provider)使使应应用用程程序序可可以以访访问问另另一一个个应应用用程程序序的的数数据据(如如联联系系人人数数据据库库),或或者者共共享享它它们们自自己的数据。己的数据。l资资源源管管理理器器(Resource Manager)提提供供非非程程序序代代码码资资源源的的访问,如本地字符串、图形和布局文件(访问,如本地字符串、图形和布局文件(Layout File)。)。.1.1Android1.1Android体系结构介绍体系结构介绍p应用程序框架(应用程序框架(Application Framework)l通通知知管管理理器器(No
16、tification Manager)使使得得应应用用程程序序可可以以在在状态列中显示自定义的提示信息。状态列中显示自定义的提示信息。l活活动动管管理理器器(Activity Manager)用用来来管管理理应应用用程程序序生生命命周周期并提供常用的导航回退功能。期并提供常用的导航回退功能。l窗口管理器(窗口管理器(Window Manager)管理所有窗口程序。)管理所有窗口程序。.1.1Android1.1Android体系结构介绍体系结构介绍p应用程序框架(应用程序框架(Application Framework)l包管理器(包管理器(Package Manager)管理)管理Andro
17、id系统内的程序系统内的程序l通通信信管管理理器器(Telephony Manager)管管理理Android系系统统的的通通信信功能。功能。l定定位位管管理理器器(Location Manager)提提供供Android系系统统的的定定位位等相关服务。等相关服务。.1.1Android1.1Android体系结构介绍体系结构介绍p函数库(函数库(Libraries)Android包包括括含含一一些些C/C+函函数数库库,这这些些函函数数库库能能被被Android系系统统中中不不同同的的组组件件使使用用。它它们们通通过过Android应应用用程程序序框框架架为为开开发发者提供服务。这些内核函数
18、库包括:者提供服务。这些内核函数库包括:lLibc:标标准准C系系统统函函数数库库,它它是是专专门门为为基基于于Embedded Linux的设备定制的。的设备定制的。.1.1Android1.1Android体系结构介绍体系结构介绍p函数库(函数库(Libraries)lMedia Framework:基基于于PacketVideo OpenCORE,该该函函数数库库支支持持多多种种常常用用的的音音效效、视视频频格格式式回回放放和和录录制制,同同时时支支持持静静态态影影像像文文件件。编编码码格格式式包包括括MPEG4、H.264、MP3、AAC、AMR、JPG以及以及PNG。lSurface
19、 Manager:显显示示子子系系统统的的管管理理,并并且且为为多多个个应应用用程程序序提供了提供了2D和和3D图层的无缝融合。图层的无缝融合。.1.1Android1.1Android体系结构介绍体系结构介绍p函数库(函数库(Libraries)lWebkit:提供提供Web浏览引擎的支持。浏览引擎的支持。lSGL:底层的底层的2D图形引擎。图形引擎。lOpenGL ES:基基于于OpenGL ES 1.0 APIs实实现现,该该函函数数库库可可以以使使用硬件用硬件3D加速(如果可用)或者使用高度优化的加速(如果可用)或者使用高度优化的3D软加速软加速lFreeType:位图(位图(bitm
20、ap)和向量()和向量(vector)字体显示。)字体显示。.1.1Android1.1Android体系结构介绍体系结构介绍p函数库(函数库(Libraries)lSQLite:一一个个对对于于所所有有应应用用程程序序可可用用、功功能能强强大大的的轻轻量量级级关关系型数据库引擎。系型数据库引擎。lSSL:安安全全套套接接层层(Secure Sockets Layer)是是为为网网络络通通信信提提供安全及数据完整性的一种安全协议。供安全及数据完整性的一种安全协议。.1.1Android1.1Android体系结构介绍体系结构介绍pLinux内核内核Android的的内内核核系系统统服服务务如如
21、安安全全管管理理、内内存存管管理理、进进程程管管理理、网网络络通通信信和和驱驱动动模模型型依依赖赖于于Linux内内核核,Linux内内核核也也同同时时作作为为硬硬件件和和软软件件堆堆栈栈之之间间的的抽抽象象层层。Android对对Linux内内核核的的修修改改,这里讲两个:这里讲两个:lBinder(IPC)Driver:提提供供高高效效率率的的进进程程间间通通信信(Inter-Process Communication)。)。.1.1Android1.1Android体系结构介绍体系结构介绍pLinux内核内核lBinder(IPC)Driver:提提供供高高效效率率的的进进程程间间通通信
22、信(Inter-Process Communication)。Android上上层层的的应应用用程程序序经经常常要要取取用用Android系系统统中中的的服服务务,Android几几乎乎重重新新制制作作了了一一套套自自己己的的IPC,称一般,称一般IPC会造成额外资源花费和安全问题。会造成额外资源花费和安全问题。.1.1Android1.1Android体系结构介绍体系结构介绍pLinux内核内核lPower Mangerment:与与台台式式计计算算机机或或笔笔记记本本电电脑脑不不同同,手手持持设设备备的的电电源源一一向向相相当当有有限限,必必须须想想尽尽一一切切办办法法省省电电,而而又又不
23、不能能影影响响顺顺畅畅的的使使用用体体验验。Android在在此此采采取取了了颇颇为为积积极极的的做做法法:如如果果不不使使用用,就就关关掉掉。如如播播放放MP3,如如果果与与此此同同时时没没有有执执行行其其他他程程序序,那那么么LCD显显示示器器就就可可能能被被关关闭闭,以以便便省电。省电。.p安装JDK环境变量的设置:配置三个系统变量CLASSPATHJAVA_HOMEPath1.2 1.2 搭建搭建搭建搭建WindowsWindows下开发环境下开发环境下开发环境下开发环境.p安装JDK环境变量的设置:配置三个系统变量CLASSPATH:java加载类的路径,设为.;%JAVA_HOME
24、lib;%JAVA_HOME%libtools.jar;JAVA_HOME:JAVA_HOME指明JDK的安装路径Path:使得系统可以在任何路径下识别java命令,设为%JAVA_HOME%bin;%JAVA_HOME%jrebin;1.2 1.2 搭建搭建搭建搭建WindowsWindows下开发环境下开发环境下开发环境下开发环境.p安装JDK1.2 1.2 搭建搭建搭建搭建WindowsWindows下开发环境下开发环境下开发环境下开发环境.p安装JDK环境变量的设置测试安装是否成功::在命令提示符中输入下列命令(开始运行cmd)java-versionjavajavac1.2 1.2
25、 搭建搭建搭建搭建WindowsWindows下开发环境下开发环境下开发环境下开发环境.p安装JDK1.2 1.2 搭建搭建搭建搭建WindowsWindows下开发环境下开发环境下开发环境下开发环境.p安装JDK1.2 1.2 搭建搭建搭建搭建WindowsWindows下开发环境下开发环境下开发环境下开发环境.p安装JDK1.2 1.2 搭建搭建搭建搭建WindowsWindows下开发环境下开发环境下开发环境下开发环境.p安装JDK1.2 1.2 搭建搭建搭建搭建WindowsWindows下开发环境下开发环境下开发环境下开发环境.p安装Eclipsep创建Android虚拟设备(AVD
26、Eclipse Window Android Virtual Devices1.2 1.2 搭建搭建搭建搭建WindowsWindows下开发环境下开发环境下开发环境下开发环境.p创建Android虚拟设备(AVD)1.2 1.2 搭建搭建搭建搭建WindowsWindows下开发环境下开发环境下开发环境下开发环境.p创建Android虚拟设备(AVD)1.2 1.2 搭建搭建搭建搭建WindowsWindows下开发环境下开发环境下开发环境下开发环境.p创建Android虚拟设备(AVD)其中,HVGA为屏幕的分辨率VGA:Video Graphics Array,即:显示绘图矩阵,相当于
27、640480 像素;HVGA:Half-size VGA,即:VGA的一半,分辨率为480320;QVGA:Quarter VGA,即:VGA的四分之一,分辨率为320240,一般用于小屏;1.2 1.2 搭建搭建搭建搭建WindowsWindows下开发环境下开发环境下开发环境下开发环境.p创建Android虚拟设备(AVD)WQVGA:Wide Quarter VGA,即:扩大的QVGA,分辨率比QVGA高,比VGA低,一般是:400240,480272;WVGA:Wide Video Graphics Array,即:扩大的VGA,分辨率为800480像素,像三星i9000就是使用这分辨
28、率;FWVGA:Full Wide VGA,数码产品屏幕材质的一种,VGA的另一种形式,比WVGA分辨率高,别名:Full Wide VGA,,其分辨 率为854480象素(16:9)。1.2 1.2 搭建搭建搭建搭建WindowsWindows下开发环境下开发环境下开发环境下开发环境.p创建Android虚拟设备(AVD)VM Heap是指的虚拟机最大占用内存,也就是单个应用的最大占用内存。Internal Storage:内部存储大小。内部存储就是将数据保存在设备的内部存储器中。1.2 1.2 搭建搭建搭建搭建WindowsWindows下开发环境下开发环境下开发环境下开发环境.p创建Android虚拟设备(AVD)1.2 1.2 搭建搭建搭建搭建WindowsWindows下开发环境下开发环境下开发环境下开发环境.p创建Android虚拟设备(AVD)1.2 1.2 搭建搭建搭建搭建WindowsWindows下开发环境下开发环境下开发环境下开发环境.






