Android系统架构简介
Android采⽤分层的架构,分为四层,从⾼层到底层分为应⽤程序层(app+System apps),应⽤程序框架层(Java API Framework),系统运⾏库和运⾏环境层(Libraries + android Runtime)和Linux核⼼层(HAL+ Linux Kernel),如下图所⽰:
Android平台⽰意图
还有⼀张中⽂简化版的分层图如下:
Android分层图
1. Linux核⼼层
linux内核(L inux K e r ne l)
Android平台的基础,直接和硬件打交道。硬件驱动、进程管理、内存管理、⽹络管理的功能在这⾥实现。
原生安卓app开发硬件抽象层(Har d war e A b s tr action L aye r)
为上层的Java API Framework提供相关硬件的界⾯显⽰,Audio,Bluetooth等是组成硬件抽象层的库模块,实现每个硬件的界⾯显⽰功能。
2. 系统运⾏库和运⾏环境层
A nd r oid 运⾏环境(A nd r oid Runtim e)
Android 5.0(API 21)之前使⽤的是Dalvik虚拟机,之后被ART所取代。
ART是Android操作系统的运⾏环境,通过运⾏虚拟机来执⾏dex⽂件。其中,dex⽂件是专为安卓设计的的字节码格式,好处多多,不再赘述。Android toolchain(⼀种编译⼯具)可以将Java代码编译为dex字节码格式,过程如下图,jack是⼀种编译⼯具链(tool chain)
Java代码编译为dex代码
为了便于理解,做个类⽐,我们都知道,java程序的运⾏需要java的核⼼包的⽀持,然后通过JVM虚拟机来运⾏我们的应⽤程序。在Android 中,Android程序的运⾏需要core Libararies的⽀持,然后通过ART或者Dalvik来运⾏该程序。
++ Libr a
原⽣C/C++ 库(N a tive c/c++ Libra ries)
上⾯提到的ART就依赖于C/C++库。开发者可以通过调⽤Java API Framework来使⽤原⽣库的功能,也可以⽤Android NDK直接调⽤原⽣库。
3. 应⽤程序框架层
java API Framework
我们最常⽤的组件和服务都在这⼀层,也是每⼀个安卓开发者必须要熟悉的⼀层,
4. Application层
Application层
4.
系统应⽤(system apps)
可以理解为内置在Android系统的app,我们可以像调⽤Java API Framework层⼀样直接调⽤系统app。
因此,app开发主要研究Java API Framework层和应⽤程序层即可,如果有⽤到JNI,还需要研究⼀下Native c/c++ Libraries。但是Android 运⾏库和Android运⾏时主要是从事系统开发的⼈员需要研究的。把握全局的同时,也要搞清楚重点,毕竟,术业有专攻。·
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论