本博客是 第二行代码 的学习笔记,大部分内容全部摘自第二行代码。
(一) 安卓系统架构
大致分为:Linux 内核层,系统运行库层,应用框架层和应用层。
1. Linux内核层
android系统是基于Linux内核的,为设备各种硬件提供底层驱动,如显示驱动,音频驱动,照相机驱动,蓝牙驱动,Wi-Fi驱动,电源管理等。
2.系统运行库层
通过C/C++库为安卓提供只要的特性支持。如SQLite提供数据库支持,OpenGL|ES库提供了3D绘图支持,Webkit提供浏览器内核支持。同样在这一层,还有安卓运行时库,它主要提供了一些核心库,能够允许开发者使用Java语言来编写安卓应用。Android运行时库还包含了Dalvik虚拟机(5.0系统之后改为ART运行环境),它是的每个安卓应用都能运行在独立的进程中,并拥有自己Dalvik虚拟机实力。相较于Java虚拟机,Dalvik是专门为移动设别定制的,它针对手机内存CPU性能有限等情况做出来优化处理。
(ART 的机制与 Dalvik 不同。在Dalvik下,应用每次运行的时候,字节码都需要通过即时编译器转换为机器码,这会拖慢应用的运行效率,而在ART 环境中,应用在第一次安装的时候,字节码就会预先编译成机器码,使其成为真正的本地应用。这个过程叫做预编译(AOT,Ahead-Of-Time)。这样的话,应用的启动(首次)和执行都会变得更加快速。)
3.应用框架层
提供了构建应用程序时可能用到的各种API,Android自带的一些核心应用就是使用这些API完成的,开发者也可以通过使用这些API来构建自己的应用程序。
4.应用层
app属于这一层。
(二)版本
2014 Google I/O 大会,Android5.0,使用ART运行环境代替了Dalvik虚拟机。提出了material design的概念来优化应用的界面设计。除此之外还推出了,Android Wear,Android Auto,Android TV。从而进军可穿戴设备,汽车,电视等。
2015 Google I/O Android 6.0,加入运行时权限功能
2016 Google I/O Android 7.0,加入多窗口模式功能。
现在已经有8.0