黄色大片在线免费观看_黄色大全下载_黄色的app下载_黄色的软件大全_亚洲国产不卡_亚洲国产成人91porn

信盈达—您身边的嵌入式&人工智能专家
全国免费咨询热线:400-8788-909

Android 和 Linux之间有什么联系呢?

时间:2018-08-02 00:00:00 来源:信盈达 作者:信盈达

很多学员学习Linux驱动方面的知识之后,因为工作的需要,又接触Android 底层的调试。在接触Android底层之后,曾一度陷在其中,理不清Android底层与Linux驱动之间的联系。


一、Android底层与Linux驱动有什么不同呢?

之前一直在学的都是Linux驱动方面的知识,当接触Android底层时,一时转不过来,怎么Android底层就变得辣么复杂呢?什么HAL?还有JNI?多了这两个货,一时转不过了,懵懵懂懂的学习了一段时间,感觉不对,总是连不成串。于是退出来,结合Linux系统捋一捋,终于有了发现,下面对比着来看。

1、通常所说的Android系统包括了Android源码和Linux内核两部分

2、而Linux系统也包含两部分 FileSystem 和 Linux内核两部分

这样对比着看起来一切就变得一目了然了,这样就可以把Android的源码部分想象成是Linux系统中的FileSystem部分。但是Android上层应用是使用java语言写的,不能直接调用C语言实现的系统接口,而Linux系统中可以用C语言调用系统接口来与内核进行通信,于是Android系统中就有了一个叫做JNI的概念,用实现java与C/C++程序之间的信息交互。

由于Android系统和Linux内核(GPL)采用的开源协议不同,Android系统为了保护硬件厂商的知识产权,将驱动发杂的实现部分抽取发到Android源码中去实现,因此就有了HAL的概念了(暂时是这么理解的)。


二、Android底层开发与Linux驱动开发的联系

Android 驱动可以看成是:Linux驱动+封装;Android APP不能直接访问Android驱动程序,因此需通过JNI这种方式来访问。例如一个Android应用程序要访问Android驱动程序有两种方式:

1:APP—>JNI—>Android驱动程序

2:APP—>硬件访问服务—>Android驱动程序

Android底层开发可以分为两部分:

1.JNI:无论是以哪种方式访问底层驱动程序,都要上层应用(APP:java程序)都要通过调用JNI来访问C/C++生成的库文件.so来达到访问底层驱动的目的(在Android 8 以后,Framework和HAL之间的通信方式发生了改变,通过HIDL的方式来实现)。

2.Linux内核驱动:Android系统是基于Linux内核的,因此需要在Linux内核中实现驱动开发。

3.Android驱动与Linux开发过程的联系:Android系统是基于Linux内核,因此Android系统源码是类似于Linux系统中的文件系统(注:Linux系统包含:内核、shell、文件系统、应用程序);在Linux系统中由系统提供一套系统调用接口(C语言实现),所以在Linux系统的驱动程序开发中应用程序可以直接的去与驱动程序通信(C语言应用程序);而在Android系统中,应用程序(APP)一般是采用java语言实现的,且java语言不能直接调用系统接口,因此需要通过一种中间技术来访问,而在Android中就采用JNI这种技术来实现。因此在Android驱动开发过程中结合Linux驱动程序的开发可以这样理解:

编写Linux内核驱动程序——>编写C语言应用程序(即jni程序)用于与内核驱动进行通信(可以理解为接收服务器端发来的消息,将处理过个消息发送给驱动层,并将驱动层返回的消息反馈给服务器,服务器将消息转发给APP)——>编写java应用程序(可以理解为APP通过socket方式建立了与C应用程序的通信)通过调用下层的C程序去与驱动程序建立通信。


总结

经过Linux系统与Android系统对比,理顺了Linux驱动和Android底层驱动的联系:

驱动实现方面:两者都是在Linux内核中实现的,不同的是Android系统将复杂的实现抽取出来放到用户空间去实现。

用户空间和内核空间交互方面:Linux系统可以直接用C语言调用系统接口,跟内核进行交互;而Android系统上层应用是java实现,因此就产生了一个叫JNI的中间桥梁,通过它去调用本地的C/C++实现的方法去与内核交互。

Android 和 Linux之间有什么联系呢?

信盈达2008年在深圳特区南山高新科技园成立。自成立至今近九年来专注为企业和个人提供高端方案设计、高端嵌入式/Android培训等服务。公司下设信盈达实训学院、信盈达研发中心、信盈达教学仪器三大业务板块。九年来公司坚持"技术领先、服务领先",以雄厚的实力和专业的品质成为国内唯一有实力从产品最底层研发到系统层开发的嵌入式实训、产品解决方案提供商。为中国IT行业提供最具价值的职业教育服务。专业培训i嵌入式、物联网、人工智能Java、单片机等课程,想了解更多信息点击立马咨询

主站蜘蛛池模板: 国产精品久久久久激情影院 | 久爱综合 | 成人a毛片久久免费播放 | 爱爱欧美 | 欧美在线一区二区三区欧美 | 国产在线精品一区二区高清不卡 | 国产视频综合 | 国产精品免费久久久久影院小说 | 欧美日韩一区二区综合在线视频 | 人人澡人人模人人爽手机版 | 精品久久久视频 | 成年人在线观看网站 | 韩国精品一区二区三区四区五区 | 精品1区2区3区 | 欧美亚洲春色系列 | a毛片免费看 | 精品一区二区三区视频 | 911色911色sss主站 | 国产精品黄页网站在线播放免费 | 成人h网站在线观看 | 国产一区二区不卡视频 | 欧美不卡一区二区三区免 | 欧美日韩亚洲综合在线一区二区 | 国产成人a毛片在线 | 国产一区二区三区久久精品小说 | 久久一区二区免费播放 | 欧美日韩激情一区二区三区 | 久久精品国产一区二区三区 | 久久国产片 | www.午夜精品 | a黄色片| 日韩美女视频在线观看 | 国产日产欧美精品一区二区三区 | 欧美极品第1页专区 | 99在线观看免费视频 | 国产成人精品视频一区二区不卡 | 可以直接看的毛片 | 99精品视频观看 | 7777奇米| 久久免费影院 | 久久成人亚洲 |