android和linux有没有区别

15次阅读
没有评论

这篇文章主要为大家展示了“android 和 linux 有没有区别”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让丸趣 TV 小编带领大家一起研究并学习一下“android 和 linux 有没有区别”这篇文章吧。

android 和 linux 有区别:1、android 的应用程序使用 JAVA 开发,可以通过 JAVA 虚拟机运行在 Android 系统上;而 Linux 的应用程序使用“C/C++”开发,能以机器码的形式运行在内核系统上。2、两者的底层驱动软件有差异。

本教程操作环境:CentOS 6 系统、Dell G3 电脑。

Android 和 Linux 作为现行主流的操作系统,无论在消费类产品还是在工控领域,都有广泛的应用。都说 Android 系统是脱胎于 Linux 系统,那么是不是 Android 是不是属于 Linux 的一种。现在就来谈谈 Android 和 Linux 系统的异同点。
android 和 linux 有没有区别

1、两者的共同点

Android 是基于 Linux 内核的系统。Android 和 Linux 系统的核心系统服务都依赖于 Linux 内核, 如安全、内核管理、进程管理、网络堆栈、驱动模型等。Linux 内核也作为两者的硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层应用开发提供统一的服务

android 和 linux 有没有区别

2. 系统框架的差异

Linux 系统与 Android 表面上为两个不同的操作系统,但是 Android 本质上还是一个 Linux 系统,只不过 Google 对它进行了裁剪和定制。

另外,相较于 Linux 系统,android 在其 Linux 内核上面运行了一个叫 Dalvik(4.4 版本后改为 ART)的 Java 虚拟机 (JVM),因而使用 JAVA 开发的 android 的应用程序可以通过 JAVA 虚拟机运行在 Android 系统上。而 Linux 的应用程序使用的是 C /C++ 开发的,可以机器码的形式运行在内核系统上,两者的系统框架差异,如图。

android 和 linux 有没有区别

android 和 linux 有没有区别

3. Linux 与 android 底层驱动软件的差异

Android 除了 Linux 内核具备的常用核心驱动外,还增加了自己专有的内核驱动程序,如显示驱动、蓝牙驱动、相机驱动、内存卡驱动、Binder IPC 驱动等。

另外,Android 系统为了保护硬件厂商的知识产权,增加了 HAL 层,可将驱动具体的实现部分抽取发到 HAL 中去实现,从而规避了硬件驱动开源的风险,所以 android 的驱动程序是分为两部分,一部分写入内核中,一部分写入 HAL 层中。

Android 除要实现底层驱动的开发外,还需要根据 JNI 规则将驱动程序封装为 JNI 层接口,以达到应用程序(JAVA 程序)可通过 JNI 来调用内核驱动程序。以显示驱动程序 Framebuffer 为例,如图。

android 和 linux 有没有区别

Linux 系统的显示驱动模型

android 和 linux 有没有区别

Android 系统的显示驱动模型

(1)Linux 系统:Framebuffer 驱动只需要编译到 Linux 内核中,并留出相应的 read、write、ioctl 等接口,便可供上位机应用程序调用。
(2)Android 系统:Framebuffer 驱动先将简单的硬件寄存器读写操作的驱动编译进入内核中,再将具体的硬件实现方式的驱动写入 HAL 层中,并根据 JNI 规格封装为 JNI 接口,才可供上位机应用程序调用。

4. Linux 与 android 应用层软件的差异

但是 Android 应用程序是使用 java 语言写的,不能直接调用 C 语言实现的系统接口,而 Linux 系统中可以用 C 语言调用系统接口来与内核进行通信,于是 Android 系统中就有了一个叫做 JNI 的概念,用实现 java 与 C /C++ 程序之间的信息交互。

(1)Android 应用程序访问 Android 内核驱动程序的方式:

APP— JNI— Android 内核驱动程序

APP— 硬件访问服务— Android 内核驱动程序

(2)Linux 应用程序访问 linux 驱动程序的方式

APP— Linux 内核驱动程序

APP— C 库— Linux 内核驱动程序

以上是“android 和 linux 有没有区别”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!