2。1。2意图接收器
应用能够对一个外部的事件做出响应,当电话呼入时,数据网络可用时等等,例如手机接收短信显示消息内容时,这是通过意图接收器读取短信的内容,并且转到手机上端最后显示出来,因此这样需要在手机Xml文件里声明一下,又或者用户自定义来完成以上动作。当一个intent receiver被触发时,应用不必请求调用意图接收器,因为系统会在需要的时候启动应用。
2。1。3服务
手机后台运行着很多很小的服务,但是用户在前面的界面是看不到这些服务的,它是在背后运行的的程序,这些服务对于用户来说是看不到摸不着的。举例来说,在正在从播放列表中播放歌曲的媒体播放器的应用中,会有多个activity,以便让使用者可以选择并播放歌曲。然而,音乐重放这个功能并没有对应的activity,在导航到其它屏幕时音乐却还在播放着。媒体播放器这个activity会使用Context。startService()来启动一个service,从而可以在后台保持播放音乐,直到这个service运行结束。还有当接收电话的时候,需要监听电话来电端口,因为这样,手机才会调用铃声或是震动来提醒用户,这些都是需要调用服务才能完成的基本功能。
2。1。4内容提供者
应用程序将数据保存到文件中、SQL数据库中以及设备中。当你想将你的应用数据与其它的应用共享的时候,Content Provider将会帮助你。一个Content Provider类实现了一组标准的方法,从而可以让其它的应用读取或保存各种数据类型[1]。论文网
2。2Android架构功能解析
2。2。1 Linux内核层
Linux内核层是Android 所基于的核心。Linux 内核是硬件和软件层之间的抽象层,这一层包括了一个 Android 设备的各种硬件组件的所有低层设备驱动程序[5]。
2。2。2 中间层
中间件由两部分组成:核心库和运行时。SQlite 数据库,功能强大的轻量级嵌入式关系数据库;Media Framework媒体库,支持图像、多种视频和音频的回放和录制;WebKit浏览器引擎等。每一个Android应用程序是Dalvik虚拟机中的实例,并且运行在进程之中。大多数的虚拟机包括JVM在内都是基于栈的,而Dalvik虚拟机却是基于寄存器的。两种架构各有优缺点,一般来说,基于栈的机器需要更多的指令,然而基于寄存器的机器指令更大。dx 是一套可以将Java 。class 转换成 。dex 格式的工具。Dalvik虚拟机可执行文件是。dex格式,dex格式是专门为Dalvik设计的一种压缩格式,适合用在内存和处理器速度有限的系统[6]。
2。2。3 应用程序框架层
应用程序的体系结构目的是用来使各方面元件更加便捷的使用,任何应用程序都可以被用来体现自身的功能,与此同时,其他程序也可以来使用这些功能,从而简化了很多操作,使用户用起来更加便捷,这一机制还可以让用户删除不需要的组件。所有的应用程序其实都是一系列的组件和服务,其中有:
丰富且具有可扩展性的视图(Views),可以用于构建应用程序, 包括文本框,列表,按钮,网格,甚至是内嵌的网页浏览器[3]。
内容提供者(Content Providers),使得应用程序能访问其他应用程序的数据(如通讯录数据库),或者共享它们的数据[7]。
资源管理器(Resource Manager),提供非代码资源访问。
通知管理器(Notification Manager),使应用程序能够在状态栏中显示自定义警告。
活动管理器(Activity Manager),管理程序生命周期。
2。2。4 应用程序层
Android 系统会装配一些应用程序包,包括客户端,日历,地图,联系人管理程序,浏览器等等,并且所有的应用程序均是使用JAVA语言来编写的。