android系统体系架构

android体系架构


安卓底层是基于Linux内核的,上层还包括硬件抽象层。然后就是应用层模块包括Native层,Android运行时环境,JAVA API框架以及系统/用户app。
JAVA层通过JNI技术与native层通讯,而native通过syscall系统调用与内核层通讯

Linux内核

linux内核主要的任务就是进行基本的内存管理,进程管理,系统初始化等工作。

硬件抽象层(HAL)

硬件抽象层包含多个模块,框架API请求访问硬件时就会加载相应的模块,例如蓝牙/wifi等。

native层

native层其实就相当于windows中的应用层,so就等价于dll。

Android Runtime

Android runtime运行时主要包含android虚拟机(Dalvik/ART)和系统核心库。系统核心库是为java api frameword服务的,包含了对应的java API 的JNI接口函数的实现。

Java API Framework层

framework框架层主要包含了通过java语言编写的API接口。例如:android/util/Log中实现的是一些日志打印JAVA接口,app应用程序在使用java编写的时候可以通过导入这个类并调用对应的Log接口函数,实际这个接口函数是一个native方法,其会通过JNI调用对应的接口函数(在jni/android_util_Log.cpp中),然后此接口函数会通过syscall调用内核中对应的系统服务实现日志的相关操作。简言之,framework层相当于是一个第三方库,然后其对应接口JAVA API函数的实现都在native层(系统so库),当android 虚拟机在执行到对应接口 API方法时就会去对应的系统so库中寻找。

应用层

应用层包含用户应用和系统应用,这些应用都以apk的形式保存。

android系统系统启动过程

posted @ 2022-04-10 23:41  怎么可以吃突突  阅读(736)  评论(0编辑  收藏  举报