在android上开启和关闭一个外设,linux底层需要做什么工作,这又是如何联系起来的?

写一个很难解的BUG 2013-03-06 11:03:12
例如在android手机上开启和关闭wifi时,android进行了哪些操作?Linux驱动层又是如何配合的?(注意,我说的是关闭/开启单个外设,而不是只linux的休眠)

在linux的驱动程序(device_driver)中有suspend和resum,上层是不是最终通过他们来实现的?
如果是,那么过程是怎样的?或者能不能告诉我如何去寻找这个答案(例如,用ADB能够看到android的调用过程?。。。)

求任何知情人士!!!!
...全文
239 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
DDR2013 2013-03-16
  • 打赏
  • 举报
回复
引用 8 楼 by674868212 的回复:
引用 5 楼 DDR2013 的回复:看错问题了。wifi是通过wpa_supplicanta守护进程和内核通讯的,wifi 这部分比较复杂,要慢慢研究。其他驱动基本都是通过调研调用HAL层 ,,学习android有2个关键技术要掌握 JNI 和BINDER IPC. 恩,是通过wap_supplicanta的,只是不太熟悉,我主要想知道HAL和kernel在w……
wap_supplicant 是通过SOCKET 和内核通讯。HAL层,你可以看hardware目录,里面有不同厂家WIFI芯片的驱动加载代码。
  • 打赏
  • 举报
回复
引用 5 楼 DDR2013 的回复:
看错问题了。wifi是通过wpa_supplicanta守护进程和内核通讯的,wifi 这部分比较复杂,要慢慢研究。其他驱动基本都是通过调研调用HAL层 ,,学习android有2个关键技术要掌握 JNI 和BINDER IPC.
恩,是通过wap_supplicanta的,只是不太熟悉,我主要想知道HAL和kernel在wifi这个地方是如何通信的 我也不是学android吧,主要还是linux驱动,只是需要对android底层了解多一些,不知道是HAL还是JNI~~
  • 打赏
  • 举报
回复
引用 3 楼 sonach 的回复:
搜索一下“android HAL”相关文章,就能基本理解java-->JNI-->HAL-->device driver的流程。
来不及系统学习,马上要用!
  • 打赏
  • 举报
回复
引用 1 楼 ketao_78 的回复:
在linux的驱动程序(device_driver)中有suspend和resum,上层是不是最终通过他们来实现的? 肯定是的。 理论上android在内核里打了一个桩, 做了它想做的事情, 可以利用JNI 来调用驱动中的命令 , 类似ioctrl
但是我在suspend和resume中添加了打印,似乎没有被调用!Android对wifi的处理似乎是直接卸载了wifi的驱动模块(文件),那么remove成员函数就被调用了。 这个过程很纠结啊,wifi完全关闭了之后又需要重新probe这个SDIO card了吧,是不是又涉及到hotpulg呢?纠结,能不能麻烦你说得稍微再详细一点,我是一头雾水~~
DDR2013 2013-03-13
  • 打赏
  • 举报
回复
看错问题了。wifi是通过wpa_supplicanta守护进程和内核通讯的,wifi 这部分比较复杂,要慢慢研究。其他驱动基本都是通过调研调用HAL层 ,,学习android有2个关键技术要掌握 JNI 和BINDER IPC.
DDR2013 2013-03-13
  • 打赏
  • 举报
回复
去研究framework的powermanager部分吧 我就提示下,具体自己去研究吧 powermanager 3个状态 wakeup notification sleep 要达到sleep状态,必须所有app释放睡眠LOCK 然后内核才能调用驱动的suspend
sonach 2013-03-10
  • 打赏
  • 举报
回复
搜索一下“android HAL”相关文章,就能基本理解java-->JNI-->HAL-->device driver的流程。
wesley 2013-03-08
  • 打赏
  • 举报
回复
正在学习中,楼上应该是对的。
ketao_78 2013-03-07
  • 打赏
  • 举报
回复
在linux的驱动程序(device_driver)中有suspend和resum,上层是不是最终通过他们来实现的? 肯定是的。 理论上android在内核里打了一个桩, 做了它想做的事情, 可以利用JNI 来调用驱动中的命令 , 类似ioctrl

21,595

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧