Android学习之系统框架

android的系统构架基于Linux内核

安卓系统的组成包括应用程序层、应用程序框架层、函数库与运行时、Linux内核。

-应用程序层

应用程序层包括一系列系统核心程序,如Phone(电话)、Browser(浏览器)应用、联系人、短信。

-应用程序框架层

提供大量API,开发人员可以使用这些API框架来开发自己的应用程序,这样可以简化程序开发的架构设计。

Activity Manager活动管理器,用来管理程序生命周期,并提供常用的导航退回功能

Window Manager窗口管理器,管理所有的窗口程序

Content Providers内容提供器,它可以让一个应用访问另一个应用的数据,或共享它们自己的数据

View System视图管理器,用来构建应用程序,比如列表,表格,文本框,及按钮等

Notification Manager通知管理器,用来设置在状态栏中显示的提示信息

Package Manager包管理器,用来对Android系统内的程序进行管理

Telephoney Manager电话管理器,用来对联系人及通信记录等信息进行管理

Resource Manager资源管理器,用来提供非代码资源的访问,例如本地字符串,图形及布局文件等

Location Manager位置管理器,用来提供使用者的当前位置等信息

XMPP Service,Service服务

-函数库与运行时

函数库主要提供Android程序运行时需要的一些类库。这些类库一般是使用C/C++语言编写的。

libc: C语言标准库,系统最底层的库,C语言标准库通过Linux系统调用

Surface Manager: 对显示子系统的管理,并且为多个应用程序提 供了2D和3D图层的无缝融合。

SQLite: 关系数据库

OpenGL|ES: 3D效果的支持

Media Framework: 基于 PacketVideo OpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG

WebKit: Web浏览器引擎

SGL: 2D图形引擎库

SSL: 位于TCP/IP协议与各种应用层协议之间,为数据通信提供支持

Free Type: 位图及矢量图

Android Runtime 安卓运行时,5.0之前包括运行库和Dalvik虚拟机两部分(图片没有更新),5.0之后增加了ART,。核心库中提供了JAVA语言核心库中包含的大部分功能,虚拟机负责运行程序,Dalvik虚拟机(Just-In-Time模式,动态编译执行--程序运行时编译)专门针对移动设备进行编写,不仅效率更高,并且占用更少的内存。ART(Ahead-Of-Time模式,预编译执行,安装时预编译),将原本在程序运行时的编译提前到安装时编译,加快了程序运行速率,但使用这种方式的程序比较占用空间,因为带有一部分编译文件。

- Linux内核

Android的核心系统服务(比如安全性,内存管理,进程管理,网络协议栈和驱动模型等)基于Linux2.6内核

Linux内核同时也作为硬件和软件栈之间的抽象层,作为移动设备系统,Android更多的是需要一些与移动设备相关的驱动程序。

Display Driver:显示驱动,基于Linux的帧缓冲驱动

Camera Driver:照相机驱动,基于Linux的V412驱动

Bluetooth Driver:蓝牙驱动,基于IEEE 802.15.1标准的无线传输技术

Flash Memory Driver:Flash闪存驱动,基于MTD的Flash驱动程序

Binder(IPC) Driver:具有单独的设备节点,提供进程间通信的功能

USB Driver:USB接口驱动

Keypad Driver:键盘驱动,作为输入设备的键盘驱动

WiFi Driver:基于IEEE 802.11标准的驱动程序

Audio Drivers:音频驱动,基于ALSA的高级Linux声音体系驱动

Power Management:电源管理,比如电池电量等

时间: 2024-10-14 20:23:48

Android学习之系统框架的相关文章

Android学习总结——系统提示对话框(AlertDialog)

new AlertDialog.Builder(MainActivity.this).setTitle("退出")//设置对话框标题 .setMessage("官人可是要退出?")//设置显示的内容 .setPositiveButton("确定", new DialogInterface.OnClickListener() {//添加确定按钮 @Override public void onClick(DialogInterface dialog

Android动画学习(一)——Android动画系统框架简介

这几天在找工作,面试的时候被问到了Android动画,之前完全没接触过这部分,直接给懵了,当然其它不会的还有很多.回来之后就开始查Android动画方面的资料,边查边学,把自己不会的东西全部记录下来,同时也把废弃了半年的博客重新维护起来.希望自己以后看问题能更深入一点,努力成为一个大牛! 尽量拒绝三手技术!尽量拒绝三手技术!尽量拒绝三手技术!重要的事情说三遍~所以我不百度了~ 在Android 3.0之前,Android提供了两类动画.一类是Tween Animation,即补间动画,它提供了淡

Android学习系列(39)--Android主题和样式之系统篇(上)

Android学习系列(39)--Android主题和样式之系统篇(上) [基于最新的Android4.4的源码分析] 每家公司或者每个移动团队无不想开发出一套自己的UI框架,融入自己的设计和特性,这必然会去修改android的ui.所以,学习和理解android的UI设计是最基础和非常有必要的.android ui设计最重要的就是主题和样式. 1.位置在Android的frameworks/base/core/res/res/values目录下有一下几个文件: 1 2 3 4 themes.x

【ios】系统框架学习

iOS的系统架构分为四个层次:核心操作系统层(Core OS layer).核心服务层(Core Services layer).媒体层(Media layer)和可触摸层(Cocoa Touch layer). Core OS : 位于iOS系统架构最下面的一层是核心操作系统层,它包括内存管理.文件系统.电源管理以及一些其他的操作系统任务.它可以直接和硬件设备进行交互. Core Services : 第二层是核心服务层,我们可以通过它来访问iOS的一些服务. Media : 第三层是媒体层,

Android 系统框架简介

从整体系统框架而言,Android系统分成内核层.硬件抽象层.系统运行层.应用程序框架层以及应用程序层. ·内核层 基于Linux操作系统,开发的系统驱动层. ·硬件抽象层 进一步降低Android系统与硬件的耦合度 ·系统运行库层 包含了支撑整个系统正常运行的基础库.多数是由C/C++实现. ·应用程序框架层 一方面为上层应用程序提供了API接口:另一方面也囊括了不少系统级服务进程的实现,是与Android应用开发者关系最直接的一层. 一般都是JAVA语言编写. ·应用程序层 ...

2、android系统框架的介绍

android系统框架介绍 src目录:主要完成java代码编写 assets目录:资源目录 res目录:存放图片.布局文件.字符串.菜单等文件 bin目录:输出文件夹,如生成apk文件 project.properties:工程属性文件配置 gen目录:系统自动生成的源代码目录 R.java文件:系统自动生成的文件,默认有attr.drawable.layout.string4个静态内部类,每个类对应一种资源 AndroidManifest.xml:描述package中暴露的组件(activi

Android的系统框架的深入认识

Android采用层次化系统架构,官方公布的标准架构如下图所示.Android由底层往上分为4个主要功能层,分别是linux内核层(Linux Kernel),系统运行时库层(Libraries和Android Runtime),应用程序架构层(Application Framework)和应用程序层(Applications). Linux内核层 Android以Linux操作系统内核为基础,借助Linux内核服务实现硬件设备驱动,进程和内存管理,网络协议栈,电源管理,无线通信等核心功能.An

Android学习之——自己搭建Http框架

一.前言 最近学习http框架. 目前写的这个框架暂时只适用于学习之用,实际用于项目之中还需要不断的优化. 要从服务器或者网络获取数据,显示到UI上面,网络请求的操作不能放在UI线程中进行,android为我们封装了AsyncTask类来进行异步的请求操作,所以这个Http框架基于AsyncTask. 二.框架主要类 定义Request类,定义url,服务器返回数据,post的请求params,下载进度等参数. 定义HttpUtil类来封装http请求代码.在里面定义execute()方法,该方

Android学习之——自己搭建Http框架(2)——框架扩展

· 本文主要讲解的是Json指定转化成对象返回,下载进度更新,随时取消Request请求 一.Json指定转化成对象返回 上篇文章主要讲基础的框架搭建起来了,这次需要做一些些的扩展,这里Json转化用到了google的Gson. 上篇文章,我们直接返回了String的字符串,那么如果是请求返回回来的是Json格式的,我们能否在数据返回的时候将数据转化成需要的对象呢.答案当然是可以的. 我们可以在UI线程中创建Callback的时候将预处理的对象放入进去,还是直接代码描述比较清楚: