Android框架简要介绍
1. Android架构直观图
下图展示了Android系统的主要组成部分:
总体上而言,Android系统结构由5个部分组成。从上到下,别人是Applications (Android应用层)、ApplicationFramework (Android应用程序框架层)、Libraries、Android Runtime (Anroid执行时)、Linux Kernel (Linux内核)。
当中,Libraries和Android Runtime处于Android框架的同一层。
以下简要介绍这5个部分。
2. Applications层
Android装配的一个核心应用程序集合,包含电子邮件client、SMS应用程序、日历、地图、浏览器、联系人和其它设置。全部应用程序。无论是用户开发的,还是系统内置的应用程序都在该层。
3. Application Framework层
Android应用程序的框架层,全部的应用程序都是在该框架的基础上开发出来的。
该框架通过提供开放的开发平台,使开发人员能够编制出极其丰富和新颖的应用程序。
比如,开发人员能够自由地利用设备硬件优势、訪问位置信息、执行后台服务、设置闹钟、向状态栏中加入通知等。同一时候,开发人员能够利用核心应用程序所使用的框架APIs。此外。因为应用程序的体系结构旨在简化组件的重用,不论什么应用程序都能公布它的功能且不论什么其它的应用程序都能使用这些功能。同一时候这一机制还同意用户替换Android的组件。
实际上,全部应用程序是一组服务和系统。它们包含:
● 视图(View): 丰富的、可扩展的视图集合,用于构建一个应用程序,包含列表、网络、文本框、button,以及内嵌的网页浏览器。
● 内容提供者(ContentProviders): 使应用程序可以訪问其它应用程序的数据,或者共享自己的数据。
● 资源管理器(Resource Manager): 使应用程序可以訪问非代码资源。
如本地化字符串、图形图像,以及界面布局文件。
● 通知管理器(Notification Manager): 使全部的应用程序可以在状态栏显示自己定义的警告。
● 活动管理器(Activity Manager): 管理应用程序的生命周期。提供通用的导航回退功能。
4. Libraries层
Android包括一个C/C++库的集合。供Android系统的各个组件使用。
这些功能通过Android的应用程序框架(application framework)暴露给开发人员。以下列出一些核心库:
● 系统C库: 标准C系统库(libc)的BSD衍生,调整为基于嵌入式Linux设备
● 媒体库: 基于PacketVideo的OpenCORE。这些库支持播放和录制很多流行的音频和视频格式,以及静态图像文件,包含MPEG4、 H.264、 MP3、 AAC、 AMR、JPG、 PNG
● 界面管理: 管理訪问显示子系统和无缝组合多个应用程序的二维和三维图形层
● LibWebCore: 新式的Web浏览器引擎,驱动Android 浏览器和内嵌的web视图
● SGL: 主要的2D图形引擎
● 3D库: 基于OpenGL ES 1.0 APIs的实现。库使用硬件3D加速或包括高度优化的3D软件光栅
● FreeType: 位图和矢量字体渲染
● SQLite: 全部应用程序都能够使用的强大而轻量级的关系数据库引擎
5. Android Runtime 层
Android 包括一个核心库的集合。提供大部分在Java编程语言核心类库中可用的功能。每个Android应用程序是Dalvik虚拟机中的实例,执行在他们自己的进程中。
Dalvik虚拟机设计成,在一个设备中能够高效地执行多个虚拟机。Dalvik虚拟机可执行文件格式是.dex。dex格式是专为Dalvik 设计的一种压缩格式,适合内存和处理器速度有限的系统。
大多数虚拟机包含JVM都是基于栈的。而Dalvik虚拟机则是基于寄存器的。两种架构各有优劣。一般而言。基于栈的机器须要很多其它指令,而基于寄存器的机器指令更大。dx 是一套工具,能够將Java.class 转换成 .dex 格式。一个dex文件一般会有多个.class。
Dalvik虚拟机依赖于Linux内核提供基本功能。如线程和底层内存管理。
6.Linux Kernel层
Android基于Linux 2.6提供核心系统服务。比如:安全、内存管理、进程管理、网络堆栈、驱动模型。Linux Kernel也作为硬件和软件之间的抽象层,它隐藏详细硬件细节而为上层提供统一的服务。
假设你学过计算机网络知道OSI/RM,就会知道分层的优点就是使用下层提供的服务而为上层提供统一的服务,屏蔽本层及下面层的差异。当本层及下面层发生了变化不会影响到上层。也就是说各层各司其职,各层提供固定的SAP(Service Access Point)。专业点能够说是高内聚、低耦合。
Android框架简要介绍的更多相关文章
- Android Debuggerd 简要介绍和源码分析(转载)
转载: http://dylangao.com/2014/05/16/android-debuggerd-%E7%AE%80%E8%A6%81%E4%BB%8B%E7%BB%8D%E5%92%8C%E ...
- Android应用程序窗口(Activity)实现框架简要介绍和学习计划
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8170307 前面我们学习了SurfaceFli ...
- Android编译系统简要介绍【转】
本文转载自:http://blog.csdn.net/luoshengyang/article/details/18466779 在Android源码环境中,我们开发好一个模块后,再写一个Androi ...
- Android窗口管理服务WindowManagerService的简要介绍和学习计划
在前一个系列文章中,我们从个体的角度来分析了Android应用程序窗口的实现框架.事实上,如果我们从整体的角度来看,Android应用程序窗口的 实现要更复杂,因为它们的类型和作用不同,且会相互影响. ...
- [转] Android资源管理框架(Asset Manager)简要介绍和学习计划
转自:http://blog.csdn.net/luoshengyang/article/details/8738877 Android应用程序主要由两部分内容组成:代码和资源.资源主要就是指那些与U ...
- Android应用程序的Activity启动过程简要介绍和学习计划
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6685853 在Android系统中,Activ ...
- Android资源管理框架(Asset Manager)简要介绍和学习计划
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8738877 Android应用程序主要由两部分 ...
- [转]Android系统Surface机制的SurfaceFlinger服务简要介绍和学习计划
转自:Android系统Surface机制的SurfaceFlinger服务简要介绍和学习计划 前面我们从Android应用程序与SurfaceFlinger服务的关系出发,从侧面简单学习了Surfa ...
- Android应用程序组件Content Provider简要介绍和学习计划
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6946067 在Android系统中,Conte ...
随机推荐
- nginx 限制ip/限制访问路径
一.多站点统一限IP vim nginx.conf allow 127.0.0.1; deny all; # 以上代码解释: # deny all; 限制所有的ip # allow ip; 除了 这个 ...
- BZOJ1096: [ZJOI2007]仓库建设(dp+斜率优化)
Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 5790 Solved: 2597[Submit][Status][Discuss] Descript ...
- JavaScript定时器的开启关闭
<html> <head> <meta charset="utf-8"> <title>无标题文档</title> &l ...
- okhttp3 ExceptionInInitializerError 异常处理
okhttp3 在Android4.4上出现下面异常 java.lang.ExceptionInInitializerError at okhttp3.OkHttpClient.newSslSocke ...
- Online ML那点事>-
一:译自wiki: KeyWord:标签反馈; Survey: online machine learning is a model of induction that learns one i ...
- 深度学习:又一次推动AI梦想(Marr理论、语义鸿沟、视觉神经网络、神经形态学)
几乎每一次神经网络的再流行,都会出现:推进人工智能的梦想之说. 前言: Marr视觉分层理论 Marr视觉分层理论(百度百科):理论框架主要由视觉所建立.保持.并予以解释的三级表象结构组成,这就是: ...
- java必备技能
Android应用程序开发是以Java语言为基础的,所以需要有扎实的Java基础知识.首先熟悉java基本语法,然后熟悉设计模式等. a) Java基础语法:看下面的<Java知识点列表> ...
- MongoDB 学习笔记(四):索引
一.索引的基本使用 1.建立索引 在shell中为某个key建立索引的方法为:db.集合名.ensureIndex({key:1}),其中的key表示为哪个key建立索引,1表示升序建立索引,而-1表 ...
- codeforces 789 A. Anastasia and pebbles
链接 A. Anastasia and pebbles 题意 这个人有两个口袋,有n种类型的鹅卵石,每种鹅卵石有wi个,每次可以放同一种最多k个,每次不能把不同类型的鹅卵石放进同一个口袋,但是她可以同 ...
- hibernate一对多和多对一配置
public class Dept { private int deptId; private String deptName; // [一对多] 部门对应的多个员工 private Set<E ...