aiku给你们最真心地学习建议--转

 aiku给你们最真心地学习建议:

以前我最开始的就搞驱动,后来发现要熟悉hal层,接着就硬着看hal代码,第一次看,很剧痛,慢慢的,看习惯了,就好了,后来发现,搞驱动的人,不懂hal,很多时候就定位不了问题在哪里,所以那个时候,自己就会又一层那就是hal,很多时候,应用叫你添加接口的时候,你发现单单会hal和kernel,远远不够,因为上层给你的接口是到jni层,那么你这时候,就会逼自己去学jni,其实jni层,就是java native interface缩写,这个时候,学了这层又上一层了。从这样驱动开发人员,就一层层网上趴。虽然辛苦,但是总比上层往下钻容易。我可以负责任地说,如果同样2个人,同样有点c++的基础,我相信学驱动的人总比搞应用的人,打通整个流程要快。你们觉得呢?

特别是比如做sensor.触摸屏,音频,wifi,蓝牙的同学,一般建议从驱动层,打通到hal层,再打通到jni,然后到系统,最后到应用。只要打通了,所有问题你都可以很清楚定位,到底是哪一层出问题。

当然,我们的vip群就有vip样!!我只针对本群的学习提出意见或建议,每个人刚开始学习驱动就不可能一下子,把所有的模块往上层打通,但至少要打通到jni层。因为很多模块只需要驱动开发人员只要修改代码到hal层就ok了,剩下问题就丢给系统开发的同学,说实在的jni层也就是一个.cpp文件,说白了,里面干的事情主要java虚拟机起来,去寻找对应的hal层的.so库,还有就是上层的字符串对hal层的函数指针映射关系,简单说就是告诉我们,上层如何调用底层hal的函数或者open函数的。


在这里非常感谢大家听我一胡扯一下,如果觉得大家想跟我交流,都可以加我微信号:aiku868
或者可以加我的公众平台:aiku嵌入式
也可以加我的安卓开发交流群:欢迎加群号码:318016558

一起交流安卓驱动和系统开发 
原文地址:https://www.cnblogs.com/tao560532/p/4979570.html