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 @   怎么可以吃突突  阅读(907)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
点击右上角即可分享
微信分享提示
主题色彩