android的系统架构采用了分层架构的思想,作为android开发猿还是有必要大概了解一下的,先看一下系统架构图

20190626110750560.png

Linux 内核

Android 平台的基础是 Linux 内核。Android核心系统服务依赖于Linux内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型 ,驱动:显示驱动、摄像头驱动、键盘驱动、WiFi驱动、Audio驱动、flash内存驱动、Binder(IPC)驱动、电源管理等。并且允许设备制造商为其内核开发硬件驱动程序。

硬件抽象层 (HAL)

硬件抽象层 (HAL) 提供标准界面,向更高级别的 Java API 框架显示设备硬件功能。HAL 包含多个库模块,其中每个模块都为特定类型的硬件组件实现一个界面,例如相机或蓝牙模块。当框架 API 要求访问设备硬件时,Android 系统将为该硬件组件加载库模块。

Android Runtime

对于运行 Android 5.0(API 级别 21)或更高版本的设备,每个应用都在其自己的进程中运行,并且有其自己的 Android Runtime (ART) 实例。ART 编写为通过执行 DEX 文件在低内存设备上运行多个虚拟机,DEX 文件是一种专为 Android 设计的字节码格式,经过优化,使用的内存很少。编译工具链(例如 Jack)将 Java 源代码编译为 DEX 字节码,使其可在 Android 平台上运行。

ART 的部分主要功能包括:

预先 (AOT) 和即时 (JIT) 编译

优化的垃圾回收 (GC)

更好的调试支持,包括专用采样分析器、详细的诊断异常和崩溃报告,并且能够设置监视点以监控特定字段

在 Android 版本 5.0(API 级别 21)之前,Dalvik 是 Android Runtime。如果您的应用在 ART 上运行效果很好,那么它应该也可在 Dalvik 上运行,但反过来不一定。

也可以说是一种基于寄存器的java虚拟机,Dalvik虚拟机主要是完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。

Android 还包含一套核心运行时库,可提供 Java API 框架使用的 Java 编程语言大部分功能,包括一些 Java 8 语言功能。

原生 C/C++ 库

系统库包括九个子系统,分别是图层管理、媒体库、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。Android运行时包括核心库和Dalvik虚拟机,前者既兼容了大多数Java语言所需要调用的功能函数,又包括了Android的核心库,比如android.os、android.Net、android.media等等

Java API 框架

该层是Android应用开发的基础,开发人员大部分情况是在和她打交道。应用程序框架层包括活动管理器、窗口管理器、内容提供者、视图系统、包管理器、电话管理器、资源管理器、位置管理器、通知管理器和XMPP服务十个部分。在Android平台上,开发人员可以完全访问核心应用程序所使用的API框架。并且,任何一个应用程序都可以发布自身的功能模块,而其他应用程序则可以使用这些已发布的功能模块。基于这样的重用机制,用户就可以方便地替换平台本身的各种应用程序组件

应用程序层

该层提供一些核心应用程序包,例如电子邮件、短信、日历、地图、浏览器和联系人管理等。同时,开发者可以利用Java语言设计和编写属于自己的应用程序,而这些程序与那些核心应用程序彼此平等、友好共处。

Android系统提供给应用开发者的本身就是一个框架,所有的应用开发都必须遵守这个框架的原则。我们在开发应用时就是基于这个框架上进行扩展开发

安卓linux层,Android 系统架构各层介绍相关推荐

  1. 安卓进阶之android系统架构

    安卓进阶之android架构 安卓进阶躲不开阅读源码和深入了解安卓的底层,这是一篇入门级别的文章,可以对安卓架构有个大体的认识. AOSP与Android系统架构 首先要理解andriod和AOSP的 ...

  2. 安卓学习日记(一):了解安卓架构(linux内核层、系统运行库层、应用框架层、应用层)

    首先为了理解安卓系统是怎么工作的,就先来看一下android的系统架构,其架构大至可以分为四层:linux内核层.系统运行库层.应用框架层和应用层,那就先说说这几层. 1.linux内核层: Andr ...

  3. linux与安卓系统目录,android系统架构及源码目录结构

    1. android系统架构: android系统架构采用了分层架构的思想,如下图所示,从上到下共4层,分别为:应用程序层.应用程序框架层.系统库和android运行时层.linux内核层. 每层功能 ...

  4. android系统架构图及各层介绍

    此技术文档主要是从基础了解Android系统架构,便于对以后开发形成一些基本应用架构. Android的系统架构采用了分层架构的思想,如图1所示.从上层到底层共包括四层,分别是应用程序程序层.应用框架 ...

  5. Android系统的系统运行库层,Android系统框架

    Android主要可以分为四层架构:Linux内核层,系统运行层,应用框架层和应用层. 1.Linux内核层 Android系统是基于Linux内核开发的,为Android设备的各种硬件提供底层驱动, ...

  6. Android系统架构及生态链

    目录 一.Android系统架构 二.Android生态链 一.Android系统架构 最底层是 Linux Kernel 层.Android OS 的基石是 Linux Kernel Android ...

  7. Android系统架构-----Android的系统体系架构

    一.Android的系统体系结构 Android其本质就是在标准的Linux系统上增加了Java虚拟机Dalvik,并在Dalvik虚拟机上搭建了一个JAVA的application framewor ...

  8. Android零基础入门第2节:Android 系统架构和应用组件那些事

    继上一期浅谈了Android的前世今生,这一期一起来大致回顾一下Android 系统架构和应用组件. 一.Android 系统架构 Android系统的底层建立在Linux系统之上,该平台由操作系统. ...

  9. Android系统架构-[Android取经之路]

    摘要:本节主要来讲解Android的系统架构 阅读本文大约需要花费10分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Android的平台设计,欢迎关注我,谢谢! 欢 ...

最新文章

  1. ios Develop mark
  2. MySQL锁表解决方法
  3. 前端:根据类型获取正则表达式字符串​
  4. 性能优化之页面缓存(以Javascript方式缓存页面部件)
  5. 服务高可用利器——限流算法介绍与示例
  6. html中如何设置ttf,CSS怎么引用外部ttf字体?
  7. java中的math pow,Java Math.pow(a,b)时间复杂度
  8. cs透视源码c语言,CS--GO透视自瞄C++源码 CSGO C++源代码 参考学习!!!(CSGO C++ source code) - 下载 - 搜珍网...
  9. 关于单片机程序设计的几点
  10. Spigot 算法之一 计算调和级数的和
  11. 初入科研领域,如何正确做科研?丨智源论坛·青年学者研讨会
  12. 秦始皇修路(最小生成树+LCA)
  13. 长尾分布,重尾分布(Heavy-tailed Distribution)
  14. 容器云平台使用体验:时速云
  15. Windows配置ThingsBoard,并实现简单Demo(未完待续)
  16. sts会自带maven吗_STS中Maven配置
  17. 【重磅】阿里巴巴创新中心一周内迎两位省委书记视察指导
  18. iOS及Mac开源项目和学习资料(一)
  19. php sg11加密方式,SG11加密使用、安装配置说明(11.4)
  20. 【100个 Unity实用技能】☀️ | 修改Unity UI控件中默认字体配置

热门文章

  1. 如何让veil uVision5显示行
  2. thingsboard-部件库开发 之 rpc-部件开发
  3. 【泛微ecology sql】待办、已办、办结流程查询语句
  4. jodd发送http请求(util)
  5. C++ map / multimap容器
  6. C语言:求n的阶乘和n的阶乘和
  7. Big Mart Sales:预测销售结果 |Python
  8. node js fcoin api 出现 api key check fail : {status:1090,msg:Illegal API signature}
  9. python3代码编程规范(命名、空格、注释、代码布局、编程建议等)
  10. 双重否定表肯定,所以死鬼是活人吗?