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.java  

2、java层代码

frameworks/base/core/java/android/os/UEventObserver.java  

3、JNI层代码

frameworks/base/core/jni/android_os_UEventObserver.cpp  

4、底层代码

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底层分析-Androiduevent 分析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

AndroidVold 分析(一)—system/vold/main.cpp——-mian函数分析http://blog.csdn.net/sustzombie/archive/2011/01/04/6116123.aspx

更多相关文章

  1. Android中两种设置全屏的方法
  2. Android基于基于布局嵌套的页面导航实现
  3. Button代码小写,运行时大写
  4. android 365手机秘书源代码
  5. Android(安卓)Activity界面切换添加动画特效
  6. Android(安卓)Wifi模块分析(二)
  7. Android核心分析(21)----Android应用框架之AndroidApplication
  8. android EditText设置不可写
  9. android 使用html5作布局文件: webview跟javascript交互

随机推荐

  1. Android使用XML全攻略(1)
  2. [安卓]Android(安卓)Developer Tools(Ecl
  3. Android 二维码开发功能实现(五)-----对z
  4. Android(安卓)AIDL基本步骤
  5. Socket Android手机客户端与PC服务端局域
  6. sscanf函数引起android 5.0卡死,C++中慎用
  7. Android 系统基础
  8. Android之Window类简介
  9. 强烈推荐Android新手的入门学习策略之一,A
  10. Android下添加新的自定义键值和按键处理