首页文章浅谈Android与Linux系统的差异android手机驱动「浅谈Android与Linux系统的差异」

浅谈Android与Linux系统的差异android手机驱动「浅谈Android与Linux系统的差异」

时间2025-01-16 10:22:58发布yu分类文章浏览129
导读:最近忙于查找Linux和android平台的资料,今天将其整理整理,根据本人拙见分享给大家。 Android和Linux作为现行主流的操作系统,无论在消费类产品还是在工控领域,都有广泛的应用。都说Android系统是脱胎于Linux系统,那么是不...

最近忙于查找Linux和android平台的资料,今天将其整理整理,根据本人拙见分享给大家。

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

在这里插入图片描述

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

在这里插入图片描述

2. 系统框架的差异
Linux系统与Android表面上为两个不同的操作系统,但是Android本质上还是一个Linux系统,只不过Google对它进行了裁剪和定制。
另外,相较于Linux系统,android在其Linux内核上面运行了一个叫Dalvik(4.4版本后改为ART)的Java虚拟机(JVM),因而使用JAVA开发的android的应用程序可以通过JAVA虚拟机运行在Android系统上。而Linux的应用程序使用的是C/C++开发的,可以机器码的形式运行在内核系统上,两者的系统框架差异,如图。

在这里插入图片描述

在这里插入图片描述

3. Linux与android底层驱动软件的差异
Android除了Linux内核具备的常用核心驱动外,还增加了自己专有的内核驱动程序,如显示驱动、蓝牙驱动、相机驱动、内存卡驱动、Binder IPC驱动等。
另外,Android系统为了保护硬件厂商的知识产权,增加了HAL层,可将驱动具体的实现部分抽取发到HAL中去实现,从而规避了硬件驱动开源的风险,所以android的驱动程序是分为两部分,一部分写入内核中,一部分写入HAL层中。
Android除要实现底层驱动的开发外,还需要根据JNI规则将驱动程序封装为JNI层接口,以达到应用程序(JAVA程序) 可通过JNI来调用内核驱动程序。以显示驱动程序Framebuffer为例,如图。

在这里插入图片描述

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驱动程序的方式

巴音郭楞蒙古版权声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com

展开全文READ MORE
系统浅谈差异驱动手机
阿尔卡特V770试用手记! Playboy手机阿尔卡特手机「阿尔卡特V770试用手记! Playboy手机」 手机如何关闭飞行模式手机飞行模式「手机如何关闭飞行模式」