Android基础|Android系统结构

Android有四层体系结构,有上到下分别是应用层,应用框架层,开源库层,linux内核层。android运行时是由上往下调用,一层调用一层。

应用层:自己写的代码是放在应用层,我的理解是在应用层显示你写好的app。

应用框架层:用由谷歌公司封装的api组成,将好用的api再次分封装,这些api的用法将是我们应该学习的东西。

运行时开源库层:是由c或c++写的库,这一层封装了调用linux内核的api,还包括安卓运行的虚拟机。

安卓虚拟机dvm:安卓是用java写的,为什么不用jvm虚拟机呢?是因为安卓是谷歌公司的,而jvm的版权属于sun公司,sun公司要求付款使用,谷歌公司没有答应,就自己研发了dvm虚拟机。
在这里插入图片描述
jvm和dvm的区别:
在这里插入图片描述
JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

SDK:(software development kit)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。因此,Android SDK 指的是Android专属的软件开发工具包。并不包含虚拟机,android的虚拟机在手机设备上。

jdk和sdk区别:https://blog.csdn.net/qq_37893505/article/details/89047709

jvm虚拟机:在Java SE程序中,Java类会被编译成一个或多个.class文件,打包成jar文件,而后JVM会通过相应的.class文件和jar文件获取相应的字节码。执行顺序为: .java文件 -> .class文件 -> .jar文件

dvm虚拟机:而DVM会用dx工具将所有的.class文件转换为一个.dex文件,然后DVM会从该.dex文件读取指令和数据。执行顺序为: .java文件 –>.class文件-> .dex文件

dvm边翻译边执行,在安卓4.4后开始可选用art模式虚拟机,5.0后都换成了art虚拟机。art把翻译工作提前,安装app的时候就把字节码翻译成机器码。所以安装时间变长,体积变大。

在这里插入图片描述
在这里插入图片描述
linux内核层:底层的应用驱动,如相机驱动,WiFi驱动,电源驱动等。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44280408/article/details/106980892