1. Android 系统架构
Android 可以分为五层框架,从上到下分别为:应用层、应用框架层、系统运行层、硬件抽象层、Linux 内核层。
1.System APP
- Dialer
- Calendar
- Camera
- ……
2.Java API Framework
- Content Providers
- View System
- Managers
- Activity
- Location
- Package
- Notification
- Resource
- Telephony
- Window
-
- Native C/C++ Libraries & Android Runtime
-
- Hardware Abstraction Layer(HAL)
-
- Linux Kernel
2. Dalvik 和 ART
2.1 Dalvik 介绍
每次执行程序都要将程序语言编译为机器语言,依靠一个 JIT(just in time) 编译器去解释字节码
- 支持已转换为.dex(即Dalvik Executable)格式的Java应用程序的运行
- .dex格式是专为Dalvik应用设计的一种压缩格式,适合内存和处理器速度有限的系统
- 每一个Dalvik应用作为独立的Linux进程执行
- 独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭
2.2 ART 介绍
在应用安装的时候就预编译字节码到机器语言并存在本地,这一机制叫 AOT(Ahead Of Time) 编译机制
- (缺点)需要更大的存储空间,可能增加 10%-20%
- (缺点)需要更长的安装时间
- (优点)应用启动、运行更快更流畅
- (优点)电池续航更久
- (优点)支持更低的硬件