一.android系统架构图及各层介绍
1. 应用层:应用是用java语言编写的运行在虚拟机上的程序,比如Email客户端,SMS短消息程序,日历等。
2. 应用框架层:这一层是编写Google发布的核心应用时所使用的API框架,开发人员同样可以使用这些框架来开发自己的应用,这样便简化了程序开发的结构设计,但是必须要遵守其框架的开发原则。
3. 系统运行库(C/C++库以及Android运行库)层:当使用Android应用框架时,Android系统会通过一些C/C++库来支持我们使用的各个组件,使其更好的为我们服务,比如其中的SQLite(关系数据库),Webkit(Web浏览器引擎)。
4. Linux内核层:Android的核心系统服务给予Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型等都依赖于该内核,比如Binder IPC驱动,android的一个特殊驱动程序,具有单独的设备节点,提供进程间通信的功能。
一.框架提供的功能
Android系统提供给应用开发者的本身就是一个框架,所有的应用开发都必须遵守这个框架的原则。我们在开发应用时就是在这个框架上进行扩展,下面是Android框架提供给我们可用的功能。
1、android.app:提供高层的程序模型和基本的运行环境。
2、 android.content:包括各种设备上的数据进行访问和发布。
3、 android.database:通过内容提供者浏览和操作数据库。
4、 android.graphics:底层的图形库,包括画布、颜色过滤、点、矩阵,可以将他们直接绘制到屏幕上。
5、 android.location:定位和相关服务的类。
6、 android.media:提供一些类管理多种音频、视频的媒体接口。
7、 android.net:提供帮助网络访问的类,超过通常的java.net.*。
8、 android.os:提供了系统服务、消息传输和IPC机制。
9、 android.opengl:提供OpenGL的工具。
10、 android.provider:提供访问Android内容提供者的类。
11、 android.telephony:提供与拨打电话相关的API交互。
12、 android.view提供基础的用户界面接口框架。
13、 android.util:设计工具性的方法,例如时间日期的操作。
14、 android.webkit:默认浏览器操作接口。
15、 android.widget:包含各种UI元素(大部分是可见的)在应用程序的布局中使用。
二.相关技术说明
关于进程间通信的几种方式
1、 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。
2、 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。
3、 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。
4、 消息队列( message queue ) : 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。
5、 信号 ( sinal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。
6、 共享内存( shared memory ) :共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信。
7、 套接字( socket ) : 套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及其间的进程通信。
关于LINUX内核及操作系统加载过程
由于在Linux系统的启动过程中会出现非常多的提示系统的启动过程中会出现非常多的提示信息,而且很多启动信息都是在屏幕上一闪而过, 息,而且很多启动信息都是在屏幕上一闪而过,所以对于LINUX系统的初学者来说,可能会觉得Linux的启动过程非常神秘和复杂。其实 系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段。
1.BIOS加电自检
2.加载主引导加载程序(MBR)
3.加载次引导加载程序(GRUB)
4.Linux内核映像
5.init进程
分享到:
相关推荐
而A ndroid 系统之所以能够获得 大多程 序 开发 者 的欢迎 , 与 其具 有 开放、 平等和无界限的系统架构有着 直接 的关 系。 基 于这 种 认识 ,本 文 对 And ro id 系统 架 构 与应 用问题展 开 了研 究, 从 而 ...
全书将Android系统从架构上依次分为应用层、应用框架层、系统运行库层、硬件抽象层和Linux内核层5个层次,旨在通过对Android系统源代码的全面分析来帮助开发者对Android系统架构设计和实现原理的认识,从而解决...
而A ndroid 系统之所以能够获得 大多程 序 开发 者 的欢迎 , 与 其具 有 开放、 平等和无界限的系统架构有着 直接 的关 系。 基 于这 种 认识 ,本 文 对 And ro id 系统 架 构 与应 用问题展 开 了研 究, 从 而 ...
全书将Android系统从构架上依次分为应用层、应用框架层、系统运行库层、硬件抽象层和Linux内核层等5个层次,旨在通过对Android系统源代码的全面分析来帮助开发者加深对Android系统架构设计和实现原理的认识,从而...
全书将Android系统从构架上依次分为应用层、应用框架层、系统运行库层、硬件抽象层和Linux内核层等5个层次,旨在通过对Android系统源代码的全面分析来帮助开发者加深对Android系统架构设计和实现原理的认识,从而...
全书将Android系统从构架上依次分为应用层、应用框架层、系统运行库层、硬件抽象层和Linux内核层等5个层次,旨在通过对Android系统源代码的全面分析来帮助开发者加深对Android系统架构设计和实现原理的认识,从而...
全书将Android系统从构架上依次分为应用层、应用框架层、系统运行库层、硬件抽象层和Linux内核层等5个层次,旨在通过对Android系统源代码的全面分析来帮助开发者加深对Android系统架构设计和实现原理的认识,从而...
本PPT文档带你全面认识安卓系统 Contents 一、Android架构层次介绍 Java Framework重要模块介绍 Native Framework重要模块介绍 二、 Android OS is“Micro-kernel” Micro-kernel introduction Why Android OS...
Android应用开发的哲学是把一切...这一节讲Android组件化设计的背景、理念、原则,以及Android在OS级别上提供的组件化支持,其中还会包含一个实验来验证这种组件化设计思想,可以对Android系统有一个高层次的抽象理解。
全书将Android系统从构架上依次分为应用层、应用框架层、系统运行库层、硬件抽象层和Linux内核层等5个层次,旨在通过对Android系统源代码的全面分析来帮助开发者加深对Android系统架构设计和实现原理的认识,从而...
全书将Android系统从构架上依次分为应用层、应用框架层、系统运行库层、硬件抽象层和Linux内核层等5个层次,旨在通过对Android系统源代码的全面分析来帮助开发者加深对Android系统架构设计和实现原理的认识,从而...
全书共10章,第1章介绍了阅读本书所需要做的准备工作,主要包括对android系统架构和源码阅读方法的介绍;第2章通过对android系统中的mediascanner进行分析,详细讲解了 android中十分重要的jni技术;第3章分析了...
1.1 认识Android 1.2 Android的背景 1.2.1 Android的历史 1.2.2 Android的发展 1.3 我的Android我做主 1.3.1 开发基于Android平台的应用 1.3.2 参加Android开发者大赛 1.3.3 个人英雄主义再现——得到更多人的认可和...
3.3.2 为Android构建 Linux的操作系统 63 3.4 内核空间和用户空间接口是一个媒介 64 3.4.1 内核空间和用户空间的相互作用 64 3.4.2 系统和硬件之间的交互 64 3.4.3 使用relay实现内核到用户空间的...
3.3.2 为Android构建 Linux的操作系统 63 3.4 内核空间和用户空间接口是一个媒介 64 3.4.1 内核空间和用户空间的相互作用 64 3.4.2 系统和硬件之间的交互 64 3.4.3 使用relay实现内核到用户空间的...
1.1 认识android 1 1.2 android的背景 2 1.2.1 android的历史 2 1.2.2 android的发展 2 1.3 我的android我做主 2 1.3.1 开发基于android平台的应用 3 1.3.2 参加android开发者大赛 3 1.3.3 ...
摘要: 首先介绍并分析Android 系统的层次架构,并在此基础上介绍Android 应用程序开发的相关技术和基本的开发流程。接下来介绍Android 提供的多媒体开发组件。最后用具体的应用程序---播放器简要说明Android 多媒体...