Android uevent
Android很多事件都是通過uevent跟kernel來異步通信的。其中類UEventObserver是核心。 UEventObserver接收kernel的uevent信息的抽象類。
1、server層代碼 1)battery server:
frameworks/base/services/java/com/android/server/SystemServer.java frameworks/base/services/java/com/android/server/BatteryService.java2、java層代碼
frameworks/base/core/java/android/os/UEventObserver.java3、JNI層代碼
frameworks/base/core/jni/android_os_UEventObserver.cpp4、底層代碼
hardware/libhardware_legacy/uevent/uevent.c 讀寫kernel的接口socket(PF_NETLINK, SOCK_DGRAM, NETLINK_KOBJECT_UEVENT); 原理:通過kobject_uevent的方式通知應用層,往一個socket廣播一個消息。應用層打開socket監聽NETLINK_KOBJECT_UEVENT組的消息,就可以收到了。插入耳機相關的代碼:
hardware/libhardware_legacy/uevent frameworks/base/core/jni/android_os_UEventObserver.cpp frameworks/base/core/java/android/os/UEventObserver.java frameworks/base/services/java/com/android/server/SystemServer.java frameworks/base/services/java/com/android/server/HeadsetObserver.java這個應該是最簡單的,添加新的uevent事件,可以參考這個。
高通HDMI在 frameworks的修改:
http://gitorious.org/pandroid/frameworks-base/commit/651e286bb32264b650e6adaf84b91b9719043b9a/diffs
refer
Android?的用戶層 uevent處理機制?http://blog.csdn.net/linphusen/archive/2010/06/12/5667647.aspx
001-Android底層分析-Android?uevent 分析?http://blog.chinaunix.net/space.php?uid=24605155&do=blog&cuid=2363481
Android中的BatteryService及相關組件?http://www.mcuol.com/Tech/265/34518.htm
ANDROID中的VOLD分析?http://blog.csdn.net/datangsoc/archive/2010/10/08/5928132.aspx
Android?Vold 分析(一)—system/vold/main.cpp——-mian函數分析http://blog.csdn.net/sustzombie/archive/2011/01/04/6116123.aspx
總結
以上是生活随笔為你收集整理的Android uevent的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 解压dat,电脑微信dat文件怎
- 下一篇: android studio导入ecli