黄色大片在线免费观看_黄色大全下载_黄色的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级成人毛片久久 | 成人免费在线播放视频 | 成年在线观看视频 | 国产一级高清视频在线 | a成人在线 | 欧美在线成人免费国产 | 99久久精品国产一区二区小说 | 爱爱视频免费看 | 国产精品福利一区二区 | 国产精品爱久久久久久久小 | 黄页网站免费在线观看 | 91青青草视频在线观看 | 国产精品不卡 | 久久精品亚洲欧美日韩久久 | jizz成人| 欧美一区二区三区国产精品 | 国产成人啪精品视频免费软件 | 欧美狠狠入鲁的视频极速 | 激情综合网站 | 日韩精品一区二区三区在线观看 | 国产美女久久久 | 精品日韩在线 | 91三级在线 | 国产精品一在线观看 | 日韩欧美国产亚洲 | 国产伦精品一区二区三区高清 | 精品第一页| 精品国产日韩亚洲一区二区 | 国产成人a v在线影院 | 青青草莓视频 | 欧美精品亚洲二区 | 国产免费小视频在线观看 |