•教材:•胡文,宁世勇.Android嵌入式系统程序开发(基于Cortex-A8)•主要参考书:•[1]李善平等.Linux与嵌入式系统[M].北京:清华大学出版社,2008.•[2]马忠梅,徐英慧.ARM嵌入式处理器结构与应用基础[M].北京:北京航空航天大学出版社,2007.参考资料什么是嵌入式系统嵌入式系统是以应用为中心,以计算机技术为基础,且软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。一般由以下几部分组成:嵌入式微处理器外围硬件设备嵌入式操作系统特定的应用程序嵌入式系统基本概念嵌入式系统的特点应用的特定性和广泛性技术、知识、资金的密集型高效性较长的生命周期高可靠性软硬一体,软件为主嵌入式系统基本概念嵌入式系统的应用领域嵌入式系统基本概念嵌入式系统的应用领域嵌入式系统基本概念嵌入式系统的产品网络设备:交换机、路由器;消费电子:手机、MP4、电视机顶盒、数字电视、数码照相机;办公设备:打印机、传真机、扫描仪;汽车电子:ABS(防死锁刹车系统)、车载GPS工业控制:各种自动控制设备嵌入式系统基本概念嵌入式系统的应用领域嵌入式系统基本概念几种主流的嵌入式操作系统VxworksWindowsEmbeddedPalmOS嵌入式Linux:层次结构及内核完全开放;强大的网络支持功能;具备一整套工具链;广泛的硬件支持特性。嵌入式系统基本概念嵌入式系统的开发流程嵌入式系统基本概念ARM的产品嵌入式系统基本概念ARM的产品ARM公司在经典处理器ARM11以后的产品改用Cortex命名,并分成A、R和M三类,为各种不同的市场提供服务。由于应用领域不同,基于v7架构的Cortex处理器系列所采用的技术也不相同,基于v7A的称为Cortex-A系列,基于v7R的称为Cortex-R系列,基于v7M的称为Cortex-M系列。嵌入式系统基本概念ARM的产品ARMCortex™-A系列应用型处理器可向托管丰富OS平台和用户应用程序的设备提供全方位的解决方案,从超低成本手机、智能手机、移动计算平台、数字电视和机顶盒到企业网络、打印机和服务器解决方案。Cortex-A系列专用于具有复杂软件操作系统(需使用虚拟内存管理)的面向用户的应用。嵌入式系统基本概念ARM的产品•ARMCortex-R实时处理器为要求可靠性、高可用性、容错功能、可维护性和实时响应的嵌入式系统提供高性能计算解决方案。•ARMCortex™-M处理器系列是一系列可向上兼容的高能效、易于使用的处理器,Cortex-M系列针对成本和功耗敏感的MCU和终端应用(如智能测量、人机接口设备、汽车和工业控制系统、大型家用电器、消费性产品和医疗器械)的混合信号设备进行过优化。嵌入式系统基本概念1.1Android体系结构介绍1.1纵览智能设备系统昨日皇者——Symbian(塞班)对硬件的水平低,操作简单,省电,软件资源多是Symbian系统手机的重要特点。高贵华丽——iOSiOS作为苹果移动设备iPhone和iPad的操作系统,在AppStore的推动之下,成为了世界上引领潮流的操作系统之一。WindowsPhone昔日诺基亚高端商务——BlackberryOS(黑莓)Blackberry是加拿大ResearchInMotion(简称RIM)公司推出的一种无线手持邮件解决终端设备的操作系统,由RIM自主开发。Android2007年,Google公司推出了一款无与伦比的移动智能设备系统——Android,这是一种建立在Linux基础之上的为手机、平板等移动设备提供的软件解决方案。1.1分析Android成功的秘诀强有力的业界支持Android系统基于Linux内核,是一款开源的手机操作系统。正是因为如此,在Android刚刚崭露头角,各大手机厂商和电信部门纷纷加入到了Android联盟当中。研发阵容强大包括摩托罗拉、Google、HTC(宏达电子)、PHILIPS、T-Mobile、高通、魅族、三星、LG以及中国移动在内的34家企业。为开发人员“精心定制”(1)保证开发人员可以迅速转型为Android应用开发。(2)定期召开奖金丰厚的Android大赛。(3)开发人员可以利用自己的作品赚钱。开源开源意味着对开发人员和手机厂商来说是完全无偿免费使用的,所以吸引了全世界各地无数程序员的热情。于是很多手机厂商都纷纷采用Android作为自己产品的系统,这当然也包括包括很多山寨厂商。因为免费,所以降低了成本,提高了利润。1.1智能设备凶猛来袭常见的Android智能设备(1)智能电视(2)机顶盒(3)游戏机(4)智能手表(5)智能家居新兴热点——可穿戴设备可穿戴设备的发展前景分析(1)智能手机推动力(2)跨国公司推动力(3)用户推动力Android对穿戴设备的支持——AndroidWear北京时间2014年3月19日早间消息,谷歌在官方博客中公布了可穿戴设备操作系统AndroidWear的细节。1.1Android体系结构介绍1.1Android体系结构介绍1.1Android体系结构介绍主屏幕联系人电话浏览器……应用程序活动管理器窗口管理器内容提供器视图系统通知管理器包管理器本地管理器电话管理器资源管理器XMPP服务应用程序框架接口管理器界面管理工具OpenGLES包管理器位图及矢量浏览器引擎2D图形引擎中间协议libc函数库库持久层库Dalvik虚拟机器Android运行环境显示驱动相机驱动蓝牙驱动Flash内存驱动BinderIPC驱动USB驱动键盘驱动WiFi驱动音频驱动能源管理Linux内核层1.1Android体系结构介绍1.1Android体系结构介绍应用程序(Application)应用程序框架(ApplicationFramework)函数库(Libraries)和Android运行时(AndroidRuntime)Linux内核(LinuxKernel)1.1Android体系结构介绍应用程序(Application)Android应用程序是基于Java语言编写的,为使用者提供操作接口。使用者直接操作应用程序,实现一定的功能。Android系统提供了计算器、联系人(Contacts)、电话(Phone)、浏览器(Browser)、E-mail客户端、SMS短消息程序、日历、地图等内核应用程序。1.1Android体系结构介绍应用程序(Application)开发者还可以使用Android提供的组件编写满足特定功能的应用程序。由用户开发的Android应用程序和Android内核应用程序是统一层次的,它们都是基于Android系统的API构建的。API(ApplicationProgrammingInterface)应用程序编程接口,是一些预先定义的函数。1.1Android体系结构介绍应用程序框架(ApplicationFramework)开发人员可以访问内核应用程序所使用的API框架。应用程序体系结构设计简化了组件的重用,任何一个应用程序都可以发布其功能块,并且任何其他的应用程序都可以使用应用程序体系结构所发布的功能块(不过要遵循框架的安全性限制)。同样,应用程序重组机制也使使用者可以方便地替换程序组件。1.1Android体系结构介绍应用程序框架(ApplicationFramework)隐藏在每个应用后面的是一系列的系统的服务,这些系统服务包括:丰富且扩展的视图(ViewSystem),可以用来构建应用程序,这些视图包括列表(List)、网格(Grid)、文本块(TextBox)、按钮(Button),甚至可嵌入Web浏览器。1.1Android体系结构介绍应用程序框架(ApplicationFramework)内容提供器(ContentProvider)使应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。资源管理器(ResourceManager)提供非程序代码资源的访问,如本地字符串、图形和布局文件(LayoutFile)。1.1Android体系结构介绍应用程序框架(ApplicationFramework)通知管理器(NotificationManager)使得应用程序可以在状态列中显示自定义的提示信息。活动管理器(ActivityManager)用来管理应用程序生命周期并提供常用的导航回退功能。窗口管理器(WindowManager)管理所有窗口程序。1.1Android体系结构介绍应用程序框架(ApplicationFramework)包管理器(PackageManager)管理Android系统内的程序通信管理器(TelephonyManager)管理Android系统的通信功能。定位管理器(LocationManager)提供Android系统的定位等相关服务。1.1Android体系结构介绍函数库(Libraries)Android包括含一些C/C++函数库,这些函数库能被Android系统中不同的组件使用。它们通过Android应用程序框架为开发者提供服务。这些内核函数库包括:Libc:标准C系统函数库,它是专门为基于EmbeddedLinux的设备定制的。1.1Android体系结构介绍函数库(Libraries)MediaFramework:基于PacketVideoOpenCORE,该函数库支持多种常用的音效、视频格式回放和录制,同时支持静态影像文件。编码格式包括MPEG4、H.264、MP3、AAC、AMR、JPG以及PNG。SurfaceManager:显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合。1.1Android体系结构介绍函数库(Libraries)Webkit:提供Web浏览引擎的支持。SGL:底层的2D图形引擎。OpenGLES:基于OpenGLES1.0APIs实现,该函数库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速FreeType:位图(bitmap)和向量(vector)字体显示。1.1Android体系结构介绍函数库(Libraries)SQLite:一个对于所有应用程序可用、功能强大的轻量级关系型数据库引擎。SSL:安全套接层(SecureSocketsLayer)是为网络通信提供安全及数据完整性的一种安全协议。1.1Android体系结构介绍Linux内核Android的内核系统服务如安全管理、内存管理、进程管理、网络通信和驱动模型依赖于Linux内核,Linux内核也同时作为硬件和软件堆栈之间的抽象层。Android对Linux内核的修改,这里讲两个:Binder(IPC)Driver:提供高效率的进程间通信(Inter-ProcessCommunication)。1.1Android体系结构介绍Linux内核Binder(IPC)Driver:提供高效率的进程间通信(Inter-ProcessCommunication)。Android上层的应用程序经常要取用Android系统中的服务,Android几乎重新制作了一套自己的IPC,称一般IPC会造成额外资源花费和安全问题。1.1Android体系结构介绍Linux内核PowerMangerment:与台式计算机或笔记本电脑不同,手持设备的电源一向相当有限,必须想尽一切办法省电,而又不能影响顺畅的使用体验。Android在此采取了颇为积极的做法:如果不使用,就关掉。如播放MP3,如果与此同时没有执行其他程序,那么LCD显示器就可能被关闭,以便省电。安装JDK环境变量的设置:•配置三个系统变量CLASSPATHJAVA_HOMEPath1.2搭建Windows下开发环境安装JDK环境变量的设置:•配置三个系统变量CLASSPATH:java加载类的路径,设为.;%JA