例如在android手机上开启和关闭wifi时,android进行了哪些操作?Linux驱动层又是如何配合的?(注意,我说的是关闭/开启单个外设,而不是只linux的休眠)
在linux的驱动程序(device_driver)中有suspend和resum,上层是不是最终通过他们来实现的?
如果是,那么过程是怎样的?或者能不能告诉我如何去寻找这个答案(例如,用ADB能够看到android的调用过程?。。。)
求任何知情人士!!!!
Android?linux?驱动?电源 linux android 驱动 wifi
------解决方案--------------------
在linux的驱动程序(device_driver)中有suspend和resum,上层是不是最终通过他们来实现的?
肯定是的。
理论上android在内核里打了一个桩, 做了它想做的事情, 可以利用JNI 来调用驱动中的命令 , 类似ioctrl
------解决方案--------------------
正在学习中,楼上应该是对的。
------解决方案--------------------
搜索一下“android HAL”相关文章,就能基本理解java-->JNI-->HAL-->device driver的流程。
------解决方案--------------------
去研究framework的powermanager部分吧
我就提示下,具体自己去研究吧
powermanager 3个状态 wakeup notification sleep
要达到sleep状态,必须所有app释放睡眠LOCK 然后内核才能调用驱动的suspend
------解决方案--------------------
wap_supplicant 是通过SOCKET 和内核通讯。HAL层,你可以看hardware目录,里面有不同厂家WIFI芯片的驱动加载代码。