学习笔记| (六)Android系统架构

2019-03-13  本文已影响0人  yanerly
image.png image.png

一、系统架构

image.png
1.1 应用层:

主要是一些系统应用以及一些非系统应用,用于与用户直接进行交互的

1.2应用框架层:

对开发人员提供一些开发的API,包括一些系统应用;其中包括一些Managers:
Activity Manager、Location Manager、Package Manager、Notification Manager、Resource Manager 、Window Manager、Content Providers 、View System

1.3系统运行库层(Native)

①相比于 JVM,DVM(Dalvik 虚拟机)是专门为移动开发定制的,因为它允许在有限的内存内,同时允许多个 Dalvik虚拟机的实例,并且每一个Dalvik应用作为一个独立的Linux进程执行,而独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭;

②DVM中的应用每次运行的时候,都需要通过JIT(Just In Time)即时编译器,将字节码转换为机器码,这样使得运行的效率降低;

③ART中,系统在安装应用时会进行一次预编译AOT(Ahead of Time),将字节码预先编译成机器码存储在本地,这样每次运行的时候都不需要执行编译了,运行效率大大提高;

1.4硬件抽象层(HAL)

位于操作系统内核层和硬件电路层之间的接口层,目的在于将硬件抽象化,为了保护硬件厂商的知识产权,隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多个平台上进行移植;

1.5Linux内核层(Linux Kernel)

Android核心系统服务基于 Linux内核层,在此基础上又添加了部分Android专用的驱动。系统的安全性、内存管理、进行管理、网络协议栈、驱动模型等都依赖于该内核;

二、源码阅读:

1.在线阅读:

http://androidxref.com/

image.png

点击版本进入对应的页面,比如8.0:
比如在framework中搜索 MediaPlayer.java


image.png image.png
2.本地阅读:

下载源码到本地后,可以使用Android Studio、Eclipse、Sublime、Source Insight(推荐)

这里使用Source Insight
http://www.cnblogs.com/dakewei/p/7993613.html

下资源码:
https://pan.baidu.com/s/1ngsZs

image.png
上一篇 下一篇

猜你喜欢

热点阅读