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

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)
  • C/C++程序库
    能被Android 系统中的不同组件所使用,并通过应用程序框架为开发提供服务
    Sqlite

  • Android 运行时库
    又分为核心库ART(Android Runtime,Android5.0后取代了Dalvik虚拟机)
    ART > DVM >JVM

①相比于 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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 两姐妹,姐姐经营拔罐减肥,性格泼辣,就像刘爽歌里唱得那样:姐姐不好惹,把姐惹恼了吃不了全兜着。妹妹经营美容美甲,妹...
    三石育儿阅读 471评论 3 11
  • 好吧,小编承认,昨天有些搏了,但在最后也提醒大家投注风险的事情了,那么今天的单子就稳一点咯。 复盘表: 周二竞彩0...
    球秘阅读 231评论 0 0
  • 打开终端执行 然后重启command + option + esc 重启 Finder 或者使用「Shift + ...
    Smallwolf_JS阅读 197评论 0 0