Android系统结构

从上图中可以看出,Android系统架构为四层结构,从上层到下层分别是应用程序层、应用程序框架层、系统运行库层以及Linux内核层,分别介绍如下:

(1)Appliacation

Android平台不仅仅是操作系统,也包含了许多应用程序,诸如SMS短信客户端程序、电话拨号程序、图片浏览器、Web浏览器等应用程序。这些应用程序都是用Java语言编写的,并且这些应用程序都是可以被开发人员开发的其他应用程序所替换,这点不同于其他手机操作系统固化在系统内部的系统软件,更加灵活和个性化。

(2)Application Framework

应用程序框架层是我们从事Android开发的基础,很多核心应用程序也是通过这一层来实现其核心功能的,该层简化了组件的重用,开发人员可以直接使用其提供的组件来进行快速的应用程序开发,也可以通过继承而实现个性化的拓展。

A: Activity Manager

管理各个应用程序生命周期以及通常的导航回退功能

B: Window Manager

管理所有的窗口程序

C: Content Provider

使得不同应用程序之间存取或者分享数据

D: View System

构建应用程序的基本组件

E: Notification Manager

使得应用程序可以在状态栏中显示自定义的提示信息

F:Package Manager

Android系统内的程序管理

G: Telephony Manager

管理所有的移动设备功能

H:Resource Manager

提供应用程序使用的各种非代码资源,如本地化字符串、图片、布局文件、颜色文件等

I: Location Manager

提供位置服务

J:XMPP Service

提供Google Talk服务

(3)系统运行库层

从图中可以看出,系统运行库层可以分成两部分,分别是系统库和Android运行时,分别介绍如下:

A:系统库

系统库是应用程序框架的支撑,是连接应用程序框架层与Linux内核层的重要纽带。其主要分为如下几个:

  • Surface Manager

执行多个应用程序时候,负责管理显示与存取操作间的互动,另外也负责2D绘图与3D绘图进行显示合成。

  • Media Framework

多媒体库,基于PacketVideo OpenCore;支持多种常用的音频、视频格式录制和回放,编码格式包括MPEG4、MP3、H.264、AAC、ARM。

  • SQLite

小型的关系型数据库引擎

  • OpenGL|ES

根据OpenGL ES 1.0API标准实现的3D绘图函数库

  • FreeType

提供点阵字与向量字的描绘与显示

  • WebKit

一套网页浏览器的软件引擎

  • SGL

底层的2D图形渲染引擎

  • SSL

在Andorid上通信过程中实现握手

  • Libc

从BSD继承来的标准C系统函数库,专门为基于embedded linux的设备定制

B:Android运行时

Android应用程序时采用Java语言编写,程序在Android运行时中执行,其运行时分为核心库和Dalvik虚拟机两部分。

  • 核心库

核心库提供了Java语言API中的大多数功能,同时也包含了Android的一些核心API,如android.os、android.net、android.media等等。

  • Dalvik虚拟机

Android程序不同于J2me程序,每个Android应用程序都有一个专有的进程,并且不是多个程序运行在一个虚拟机中,而是每个Android程序都有一个Dalivik虚拟机的实例,并在该 实例中执行。Dalvik虚拟机是一种基于寄存器的Java虚拟机,而不是传统的基于栈的虚拟机,并进行了内存资源使用的优化以及支持多个虚拟机的特点。需要注意的是,不同于J2me,Android程序在虚拟机中执行的并非编译后的字节码,而是通过转换工具dx将Java字节码转成dex格式的中间码。

 (4)Linux内核层

Android是基于Linux2.6内核,其核心系统服务如安全性、内存管理、进程管理、网路协议以及驱动模型都依赖于Linux内核。

时间: 2024-12-20 14:22:04

Android系统结构的相关文章

从CM刷机过程和原理分析Android系统结构

前面101篇文章都是分析Android系统源代码,似乎不够接地气. 假设能让Android系统源代码在真实设备上跑跑看效果,那该多好.这不就是传说中的刷ROM吗?刷ROM这个话题是老罗曾经一直避免谈的,由于认为没有全面了解Android系统前就谈ROM是不完整的.写完了101篇文章后.老罗认为第102篇文章该谈谈这个话题了,而且选择CM这个有代表性的ROM来谈.目标是加深大家对Android系统的了解. 老罗的新浪微博:http://weibo.com/shengyangluo,欢迎关注! <A

Android的系统结构简述

(该图片来自网络) Android系统结构主要分为四层,从上到下依次为,Application层,Application Framework层,lib层,Linux kernel层,下面对这四层进行简单概述 Linux kernel: 实现操作系统必不可少的功能以及驱动 libraries,android runtime层:各种功能的支的类库,大部分是第三方开发的,虚拟机和虚拟机运行时的一些类库(主要为C++) Application Framework层:用JAVA编写的一些使用类库功能的AP

Android面试题

1.加密 对称加密:加密和解密数据都是使用同一个key,如DES 非对称加密:加密和解密使用不同的key.发送数据之前要先和服务器约定生成公钥和私钥,使用公钥加密的数据可以用私钥解密,反之不行.如RSA.ssh.ssl. 2.android的安全问题 ①错误导出组件 ②参数校验不严 ③WebView引入各种安全问题(JS注入) ④不混淆.不妨二次打包 ⑤明文存储关键信息 ⑥错误使用HTTPS ⑦山寨加密方法 ⑧滥用权限.内存泄漏.使用debug签名 3.设备横竖屏切换的时候,生命周期 ①不设置a

Android 应用框架 —— 组件

本文内容根据个人自学整理记录,理解不当之处,希望大家批评指正,大家相互学习,写学习归纳,写博客是个好习惯,希望能够坚持下去. 在前一篇文章当中介绍了Android 的系统框架,主要是为了让大家对Android 系统的内部层次结构有个清晰的认识,是开发 Android 程序开发的基础.对 Android 系统结构了解之后,要开发一个安卓应用程序需要哪些东西呢,这篇文章主要就是介绍 Android 程序开发的基本组件系统. Android 应用框架的核心: 由于 Android 应用也是采用 MVC

Android ROM 制作教程

本文来自: 起点手机论坛 具体文章參考:http://www.qdppc.com/forum.php?mod=viewthread&tid=43751&fromuid=1 1.Android系统是什么? Android是Google公司于2007年公布的基于Linux的移动终端系统平台. 之所以说是移动终端,是由于现现在手机.MID.Tablet等之间的差距越来越小,而不再存在不可逾越的鸿沟. 凭借Google服务的优势.各移动设备制造商的配合以及Android系统本身对于开发人员良好的亲

Android上sshd的使用

1. 介绍 因为某些原因, 笔者需要在android上开发,  使用adb比较麻烦, 于是想使用sshd. 推荐的软件是openssh, 其他选择有dropbear, mosh.当然还有其他选择, 如termux, 这里不予讨论 2. 编译配置 在Android中已经有openssh包, 位于external/openssh默认openssh没有编译进Android系统, 需要进行配置 2.1 openssh模块 首先我们要了解Android中程序都是以模块(PACKAGES)的形式唯一存在的我

Android框架简要介绍

1.      Android架构直观图 下图展示了Android系统的主要组成部分: 整体上而言,Android系统结构由5个部分组成,从上到下,别人是Applications (Android应用层).ApplicationFramework (Android应用程序框架层).Libraries.Android Runtime (Anroid运行时).Linux Kernel (Linux内核).其中,Libraries和Android Runtime处于Android框架的同一层.下面简要

将linux和uboot集成到Android编译框架中

span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }.cm-searchi

2014 CSDN博文大赛初赛晋级名单公布

博文大赛第一阶段(2014年6月10日-2014年7月15日)已经结束,初赛的晋级名单已在7月15日出炉. 现将晋级名单公布: 移动开发 start530              Cocos2dx 小技巧(十五)话说ScrollView的delegate实现过程 wwj_748             Cocos2d-x-Lua示例项目HelloLua Chillax_li             暴走漫画系列之高仿淘宝收货地址(附demo) wwmusic            iOS7 -