Android 系统及framework 概述

初次接触android的朋友,首先需要对android系统有一个整体的认识,下面就分别对安卓的不同设计层次做一个描述:

一、Android的开发分为三个类型:移植开发移动设备系统;android系统级开发和应用程序

开发。

1、移植开发移动设备系统

2、Android系统级开发,指的是扩展android的框架或者是修改bug,这方面比较少,

除非有些开发移动设备的厂商,比如做gps,可以往里面加入一些自己的特定系统东西,这

可能导致一些不兼容。当然也可能是简单的修复bug。

3、开发应用程序,这应该是比较主流的开发,也就是给android系统写应用程序。

总结一下,我们可以把android分为四个层次,从底层往上依次为:linux内核、C/C++

库、java框架和java应用程序。移植开发移动设备涉及到linux内核(包括其驱动);android

系统级开发涉及到C/C++库的开发及给上层java框架;android应用程序开发就是调用java

的框架写应用程序。

简单的从上到下,android应用程序需要有java框架支持,比如它要发送短信,就需要java

框架,java框架其实就是将C/C++库包装成为了一个JNI,而实现具体的功能是C/C++库,

最后驱动硬件完成功能,这也就是linux内核部分。

二、开发工作入门

根据上面所述,android开发就分为居于sdk开发和源代码开发。

1、SDK开发,主要是应用程序开发。

2、源代码的开发,涉及到的知识有linux操作系统基础知识、android底层库等知识。

三、android系统级开发概述

所谓framework,也就是系统级开发,虽然android的framework开发比较少,

但是对其了解后更有利于整体开发的进行,当然很多设备厂商还是非常需要这

些的。

1、android系统架构

Linux内核及驱动、C/C++框架、java框架、java应用程序。

1)、Linux内核及驱动

其中linux内核及驱动是内核层的,系统总是需要操作系统的支持的,比如内存管理、进程管理、网

络协议栈等。

2)、android的C/C++框架

系统C库:用的是libc,没什么好说的,C程序员都知道。

多媒体库

SurFaceManager:显示子系统的管理器

LibWebCore:web浏览器引擎,支持android浏览器

SGL:skia图形库,底层的2D图形引擎

3D库:OpenGL

FreeType:字体显示

Android的运行环境,这个也应该属于这个框架里面的,android的虚拟机叫做

Dalvik,运行环境就是由这个虚拟机和基础的java类库组成。

3)、android应用框架

提供一系列的服务和系统,包括视图、内容提供器、资源管理器、通知管理器、活

动管理器。

视图非常丰富:list、grid、textbox、button等。

内容提供器是使得应用程序可以访问另一个程序的数据。

资源管理器是提供访问非代码的资源访问,如布局文件。

通知管理器,使得程序可以在状态栏中显示自定义的提示信息。

活动管理器,用来管理程序生命周期。

4)、android应用程序

Android所有的应用程序都是用java写的,当然现在好像也支持一些脚本语言,如

ruby,但是不支持C开发,所谓支持C开发是指jni的形式。

相关推荐