黄色大片在线免费观看_黄色大全下载_黄色的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、单片机等课程,想了解更多信息点击立马咨询

主站蜘蛛池模板: 日韩欧美中文字幕在线播放 | 国产精品高清一区二区不卡 | 欧美日韩性视频一区二区三区 | 国产成人久久精品区一区二区 | 福利在线看片 | 成人亚洲网 | 奇米影视狠狠狠天天777 | 91亚洲精品国产第一区 | 欧美激情一级毛片在 | 成人午夜在线 | 国产成人免费全部网站 | 精品无码久久久久国产 | 黄色a一级片| 成人久久网 | 91久久亚洲精品一区二区 | 国产一区二区影视 | 欧美一级毛片美99毛片 | 99在线观看免费视频 | 国产日韩欧美一区二区三区在线 | 99久久免费费视频在线观看 | 欧美一区二区在线播放 | 国产在线观看精品香蕉v区 国产在线激情视频 | 精品日本亚洲一区二区三区 | 国产成人综合亚洲欧美天堂 | 国产精品一区二区三区免费视频 | www.免费观看 | 日本一级在线观看视频播放 | 爱操成人网 | 久久亚洲综合中文字幕 | 日韩欧美一区二区三区不卡 | 国产99久久久久久免费看 | 97av麻豆蜜桃一区二区 | 国产欧美日韩精品综合 | 4388全国最大成网站在线 | 黄页网站视频在线观看 | 激情欧美日韩一区二区 | 国产亚洲精品色一区 | 欧美视频一区二区三区精品 | 精品国产欧美精品v | 国产成人在线视频 | 日韩黄色免费 |