《Android群英传》笔记1——Android系统架构
来源:互联网 发布:nginx 图片服务器配置 编辑:程序博客网 时间:2024/05/22 00:39
Android 系统架构
本文是读了《Android 群英传》第一章--Android体系和系统架构调用栈--之后的读书笔记,感谢作者,在此特别推荐此书。
Android作为一个移动操作系统,研发初期即被Google收购。靠着Google这棵大树,加上其开源的特性,因而发展十分迅速。
这是一张常见的Android系统机构图,由此可见Android的系统架构一共有四层,分别是Linux内核层、库和运行时层、应用框架层以及应用层。
1、Linux内核层
Linux内核层是Android系统里最底最核心的层,我们的手机或者平板里点击设置就可以看到其系统的内核版本。它是用C语言编写,主要包含Android设备的硬件驱动、安全系统和进程管理等。
2、库和运行时层
库指的是标准库,是一个C/C++的库的集合,供Android系统各个组件使用,Android开发者可以通过应用框架层使用的其功能。
运行时包含了核心库、DVM和ART。
核心库是提供基本的Java类库的功能,让Android的应用程序可以采用Java语言进行编写;
DVM全称是Dalvik Virtual Machine,即Dalvik虚拟机,它包含了一整套Android运行环境,所有安卓程序都运行在安卓系统进程里,每个进程对应着一个Dalvik虚拟机实例。它们都提供了对象生命周期管理、堆栈管理、线程管理、安全和异常管理以及垃圾回收等重要功能,各自拥有一套完整的指令系统。DVM和JVM类似,但是它的可执行文件更小;
ART全称是Android runtime,在Android 4.4版本首次发布,并在Android 5.0版本之后取代了DVM。其采用了AOT(Ahead Of Time)预编译技术,即在编译时候就将程序编译成机器码,运行时候直接执行本地机器码,比起DVM少了一步再编译,效率更高,启动更快,当然所需存储空间也更大。
一个形象的比喻就是一个程序就是一堆自行车零件,DVM在编译时候是将零件组装成一辆折叠自行车,组装时间较短,占用空间较小,但是运行时候就得先将自行车打开才能骑;而ART则是直接将零件组装成一辆正常的自行车,组装时间较长,占用空间较大,但是运行时候可以直接骑走。
3、应用框架层
应用框架层是将Android里的库发布成一个个的功能块,比如视图(View System)、内容提供器(Content Provider)、资源管理器(Resource Manager)、活动管理器(Activity Manager)等,可以供开发者直接使用,并且能在不同的程序里进行复用。
4、应用层
应用层就是包含了Android系统里的各个应用程序,这些程序都是开发者用sdk或者ndk等开发工具包,用Java语言进行编写的,最直接的通过设备和用户进行联系。
总的来说Android的系统架构是用应用框架层起到一个承上启下的作用,让应用的各个组件之间解耦,并通过框架来进行统一的管理、调度。
- 《Android群英传》笔记1——Android系统架构
- 阅读徐宜生《Android群英传》的笔记——第1章 Android系统与系统架构
- 【1】Android体系与系统架构——Android群英传开发笔记
- Android群英传笔记—第1章 Android体系与系统架构
- 《Android群英传》学习笔记 ---Android系统架构
- Android群英传学习笔记(1)--Android体系与系统架构
- Android群英传笔记——第一章:Android体系与系统架构
- Android群英传——第一章Android体系和系统架构
- 《Android群英传》笔记2——Android组件架构
- 《Android群英传》笔记3——Android控件架构
- Android群英传第一章笔记·Android体系与系统架构
- <Android群英传> 笔记1 安卓 系统架构和开发工具
- Android群英传 第一章-体系与系统架构
- Android群英传知识点回顾——第一章:Android体系与系统架构
- Android群英传学习——第一章、Android体系与系统架构
- Android群英传笔记——第三章:Android控件架构与自定义控件讲解
- Android群英传笔记——第三章:Android控件架构与自定义控件讲解
- 《Android群英传》阅读笔记——第三章:Android控件架构与自定义控件详解
- 字符数组循环右移:1道面试题的流水解法
- 贪吃蛇系列终章----贪吃蛇专家智能bug修复版
- 5月4日,ArrayTranspose,每日20行。
- 带你分析字节码-深入理解class(二)
- (一)U-Boot启动过程--详细版的完全分析
- 《Android群英传》笔记1——Android系统架构
- 在代码中使用stroyboard中的ViewController
- 使用MySQL数据库
- 文件基本操作(matlab)
- 5.4
- perl文件句柄的理解(tell、seek)以及文本多行匹配的一种算法
- KNN原理+python实现
- 练习
- 使用 CAS 在 Tomcat 中实现单点登录