- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android培训:Pro Android学习笔记之Android平台
Android培训:Pro Android学习笔记之Android平台
华迪教育/
华迪信息/
由于智能手机引入AP(应用处理器),Android在某种意义上是个人计算机,具有桌面计算机的完整架构,采用Linux-based OS stack来管理设备、内存和进程。Android的Java库覆盖电话,视频、连接、图形、UI编程等多个方面。Android SDK支持几乎全部的J2SE,除去UI的AWT和Swing部分,而用Android UI framework取而代之。
应用开发者的Android架构视图
从应用开发者角度看Android软件stack。
LinuxKernel处理设备驱动、资源访问、电源管理以及其他的OS工作。(Wei:我觉得这不准确,因为Android有改动,特别是HAL,且Linux社区没有接纳Android的贡献。)
绝大部分的应用框架是通过DalvikVM来访问核心库。Dalvik VM运行多个VM实例。当Java应用访问核心库时,每个应用获得它自己的VM instance。(Wiki:Dalvik虚拟机器可以有多个实例,每个Android应用程序都用一个自属的Dalvik虚拟机器来执行,让系统在执行程序时可达到优化。Dalvik虚拟机器并非执行Java字节码,而是执行一种称为.dex格式的档案)
通过Android SDK开发应用
Android模拟器。Android模拟器能支持90%的应用开发,但在USB连接、摄影和视频捕获,电池模拟,蓝牙,耳机,Wi-Fi,NFC和OpenGL ES上有限制。Android采用QEMU技术,是开源的“处理器模拟器”,允许一个OS模拟器在另一个OS上运行。(Wei:MeeGo的模拟器也是采用QEMU,此外还需要KVM,最大的问题是KVM虚拟化需要硬件的支持,即CPU必须支持VT,但不是所有桌面机的CPU都能支持,特别手提的CPU)
基础组件。Android 的UI框架引入新概念intent。Intent是一个进程内和进程间唤醒组件的机制。作为组件就是一段有明确生命周期的代码,如activity、 service,由事件唤起的receiver,都是组件。要调起组件,intent具有窗口消息,action,发布和订购模式,以及进程间通信。
Android对资源支持很直观,支持 string,bitmaps以及XML-basedView定义。自动生成文件R.java就是对资源的描述,每个自动生成的ID都对应在XML文件中 元素或整个XML文件。开发者可通过这些ID使用这些XML定义。这对于处理本地语言环境、设备大小适配等非常有帮助。
另一个新概念是content provider,数据源的抽象。
先进UI概念。Android 引入很多先进的UI概念。包括采用XML方式来描述layout和menu,异步dialog(注意,不是Windows中MFC的同步方式的modal dialog),对动画的支持,包括frame-by-frame动画,视觉转换的渐变方式(放大、缩小,位移,旋转、角度)。Android通过 OpenGL ES支持3D图形。OpenGL ES是C库,Android沿用了J2ME中对Open ES定义的API,具体可以参考ProAndroid 3。
在HomeUI方面。Android支持live floder(是一种小型的应用层插件。它本身体现为桌面出现的图标,通过点击这些图标,将出现一个列表框,列表框中将显示数据信息。通过活动目录可以在不打开应用程序的情况下,在桌面就能查看其中的数据信息。)。但是随着对home screen widget的支持,livefloder的作用渐微。Android还提供Integrated Search,可以搜索设备和网络的信息,提供searchAPI。
此外还有自定义的手势、传感器控制、动态配置(如根据横竖屏进行的排版),平板的actionbar,Drag-and-drop(Android 4.0中可用于phone和pad)等。
上面的这一些大都会在《Pro Android 4》后面章节中详细描述。
其他。此 外还有Service组件,Media组件、Telephony组件,具体可以详细阅读Android SDK reference对package的说明。 Android通过应用的AndroidManifest.xml文件来体现这些概念,包括 activities的定义、service和contentprovider的注册,许可声明等等。
目前Andriod有超过50个包和过千个 class。除了andriod.*外,还包括java.*,javax.*,以及其他
文档评论(0)