Android 系统及framework 概述
程序员文章站
2024-01-05 22:58:40
...
初次接触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 程序员都知道。
多媒体库
SurFace Manager:显示子系统的管理器
LibWebCore:web 浏览器引擎,支持android 浏览器
SGL:skia 图形库,底层的2D 图形引擎
3D 库:OpenGL
FreeType:字体显示
Android 的运行环境,这个也应该属于这个框架里面的,android 的虚拟机叫做
Dalvik,运行环境就是由这个虚拟机和基础的java 类库组成。
3)、android 应用框架
提供一系列的服务和系统,包括视图、内容提供器、资源管理器、通知管理器、活
动管理器。
视图非常丰富:list、grid、text box、button 等。
内容提供器是使得应用程序可以访问另一个程序的数据。
资源管理器是提供访问非代码的资源访问,如布局文件。
通知管理器,使得程序可以在状态栏中显示自定义的提示信息。
活动管理器,用来管理程序生命周期。
4)、android 应用程序
Android 所有的应用程序都是用java 写的,当然现在好像也支持一些脚本语言,如
ruby,但是不支持C 开发,所谓支持C 开发是指jni 的形式。
一、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 程序员都知道。
多媒体库
SurFace Manager:显示子系统的管理器
LibWebCore:web 浏览器引擎,支持android 浏览器
SGL:skia 图形库,底层的2D 图形引擎
3D 库:OpenGL
FreeType:字体显示
Android 的运行环境,这个也应该属于这个框架里面的,android 的虚拟机叫做
Dalvik,运行环境就是由这个虚拟机和基础的java 类库组成。
3)、android 应用框架
提供一系列的服务和系统,包括视图、内容提供器、资源管理器、通知管理器、活
动管理器。
视图非常丰富:list、grid、text box、button 等。
内容提供器是使得应用程序可以访问另一个程序的数据。
资源管理器是提供访问非代码的资源访问,如布局文件。
通知管理器,使得程序可以在状态栏中显示自定义的提示信息。
活动管理器,用来管理程序生命周期。
4)、android 应用程序
Android 所有的应用程序都是用java 写的,当然现在好像也支持一些脚本语言,如
ruby,但是不支持C 开发,所谓支持C 开发是指jni 的形式。
推荐阅读
-
Android 系统及framework 概述
-
Android 入门第十讲02-广播(广播概述,使用方法(系统广播,自定义广播,两个activity之间的交互和传值),EventBus使用方法,数据传递,线程切换,Android的系统广播大全)
-
Android编程实现获取系统内存、CPU使用率及状态栏高度的方法示例
-
Android实现调用系统图库与相机设置头像并保存在本地及服务器
-
Android文本框搜索和清空效果实现代码及简要概述
-
Android系统开发中log的使用方法及简单的原理
-
Android编程实现获取系统内存、CPU使用率及状态栏高度的方法示例
-
Android实现调用系统图库与相机设置头像并保存在本地及服务器
-
Android文本框搜索和清空效果实现代码及简要概述
-
Android系统开发中log的使用方法及简单的原理