[TOC]
Android系统
Android是谷歌开源的移动操作系统,到目前为止已经发行到9.0版本。并占据了移动系统的半壁江山。
Android的系统架构
Android系统架构分为四层,从上到下依次是应用层(system app)
、应用框架层(Framework)
、系统运行库层
和Linux内核层
。

应用层
系统内置的应用程序以及非系统级的应用程序都是属于应用层。负责与用户进行直接交互,通常都是用Java进行开发的。
应用框架层
提供构建APP使用到的各种API,开发者可以使用这些API来开发应用。使用java语言编写,也可以称为JavaFramework
系统运行支持库层
通过C/C++库来为Android提供主要的特性支持,比如Sqlite提供数据库支持,OpenGL|ES提供3D绘图的支持,webkit提供浏览器内核支持。
同时还提供了Android运行库,提供一些核心库,能够允许开发者使用Java语言编写Android应用。
包含了Dalvik虚拟机(5.0之后改为了ART运行环境),使每个Android程序运行在单独的进程。Dalvik为Android专门定制,比java虚拟机更适合移动设备。
Liunx内核层
Android系统基于liunx内核,这里提供了底层的驱动,比如显示驱动,音频驱动,相机驱动,蓝牙驱动,电池管理,Wifi驱动等等。
Dalvik虚拟机和ART运行环境
什么是Dalvik?
- Dalvik是Google公司自己设计用于Android平台的虚拟机。
- Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一。
- 它可以支持已转换为** .dex格式**的Java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。
- Dalvik 经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik 应用作为一个独立的Linux 进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。
- 很长时间以来,Dalvik虚拟机一直被用户指责为拖慢安卓系统运行速度不如IOS的根源。
- 2014年6月25日,Android L 正式亮相于召开的谷歌I/O大会,Android L(5.0) 改动幅度较大,谷歌将直接删除Dalvik,代替它的是传闻已久的ART。
什么是ART?
即Android Runtime
ART 的机制与 Dalvik 不同。在Dalvik下,应用每次运行的时候,字节码都需要通过即时编译器(just in time ,JIT)转换为机器码,这会拖慢应用的运行效率,而在ART 环境中,应用在第一次安装的时候,字节码就会预先编译成机器码,使其成为真正的本地应用。这个过程叫做预编译(AOT,Ahead-Of-Time)。这样的话,应用的启动(首次)和执行都会变得更加快速。
优点:
- 系统性能的显著提升。
- 应用启动更快、运行更快、体验更流畅、触感反馈更及时。
- 更长的电池续航能力。
- 支持更低的硬件。
缺点:
- 机器码占用的存储空间更大,字节码变为机器码之后,可能会增加10%-20%(不过在应用包中,可执行的代码常常只是一部分。比如最新的 Google+ APK 是 28.3 MB,但是代码只有 6.9 MB。)
- 应用的安装时间会变长。
Anroid已发布的版本以及各个版本的特点
截止目前Android以及发布到Android P版本,也就是Android9.0。由于9.0在国内基本没上,现在只需要了解到8.0即可。同样的,一般我们只会要求兼容到4.4以上。
下面文章仔细列出了所有变化:点击相关原文
简略的总结主要核心的变化:
Android P:减少使用非 SDK 接口,提升系统稳定性
Android 8.0 :
- 通知渠道细分操作 Notification Channels
- 画中画模式 PIP
- 自适应图标 Adaptive Icons
- 固定快捷方式和小部件 — Pinning shortcuts
- Background Execution Limits- 后台任务限制,包括服务和广播限制
Android 7.0 :
- 在应用间文件共享权限控制
- 多窗口支持
- 通知栏快捷回复
- 支持VR
- 画中画
- App快捷菜单
Android 6.0
- 运行时请求权限
- 取消支持 Apache HTTP 客户端
- 支持文本选择
Android 5.0
- Android Runtime (ART)默认运行平台设置
通知 - Material Design 样式
- 声音和振动
- 锁定屏幕可见性
- 媒体播放
- 浮动通知
- 引入Material Design设计
- RecyclerView组件以取代ListView
- 支持Android NDK中的64位
- 只能显示绑定到服务,取消隐藏绑定服务
网友评论