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.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底层分析-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相关推荐
- Android uevent进程源码分析
在Android Init进程源码分析中讲到init进程会依次执行被加入到待执行队列action_queue中的Action,在init.rc中我们有这么一段配置: 11 on early-init1 ...
- android uevent机制,android Linux uevent机制
Linux uevent机制 Uevent是内核通知android有状态变化的一种方法,比如USB线插入.拔出,电池电量变化等等.其本质是内核发送(可以通过socket)一个字符串,应用层(andro ...
- android uevent创建设备文件
linux kernel启动过程中创建VFS,为各驱动设备在sys/class, sys/devices, sys/block创建目录和文件,分配kset和kobject,uevent文件, 然后发送 ...
- android uevent机制,安卓linux uevent内核上报机制实例
uevent可以实现内核通知上层的一种机制,最常见的电池状态的变化就是kernel uevent通知的,每次百分比或者其他的变化通过power_supply_changed通知上层update: 每个 ...
- Android uevent 电池电量上报机制
Android input epoll/inotify机制 power supply是如何上报电池信息的 Android :kernel uevent发送(热插拔)事件到用户空间 源码分析 Kerne ...
- android uevent原理
system/core/init/ueventd.c 关键函数: uevent_open_socket(),创建netlink套接字 uevent_kernel_multicast_recv:监听ue ...
- Android之内核学习笔记
0.Android系统启动 <Android系统启动流程 -- bootloader> <The Android boot process from power on> < ...
- Android内核学习笔记
0.android系统启动 <Android系统启动流程 -- bootloader> <The Android boot process from power on> < ...
- Android Qcom USB Driver学习(九)
该系列文章总目录链接与各部分简介: Android Qcom USB Driver学习(零) 高通的某些平台将电源管理移植到了ADSP Subsystem, 分析一下其中比较关心的部分 Archite ...
最新文章
- 实例分割最新最全面综述:从Mask R-CNN到BlendMask
- reddit android app,reddit安卓版app
- 互联网公司IT系统架构进化之路
- python列表不包含哪个内置函数_python 列表的推导器和内置函数
- 服务器中文名图片上传后 显示不,更换服务器后无法显示上传得图片
- 升级到 Tomcat 8 后 Cookie 可能出现的问题
- 【机器学习】 - 数据预处理之数据归一化(标准化)与实战分析,正则化
- ROS笔记(36) 避障运动规划
- oracle19c配置scott创建,oracle 19c创建sample schema-HR,OE,SH等等
- 微信小程序——极点日历使用方法
- 优学院java架构52破解_2021年优学院Java程序设计(山西工程职业学院)课后习题答案...
- 硬件学习博客和资源汇总
- android 切换语言不起作用,Android 语言切换实例及踩坑
- 第九届蓝桥杯题解(部分)
- dns服务器优化 360,360超级dns解析速度提升10倍
- 面向开发者的网站,真的是认真设计过的吗?
- 小提琴机器人拉法_小提琴的弓怎么拉 有什么技巧
- 谷歌:科技让世界更美好
- 北京工程测量乙级资质申请流程
- 数据结构和算法——kd树
热门文章
- 一个简单的Makefile模板
- Samsung原版44B0X的Bootloader分析
- 远程连接server问题
- Python 第三方模块之 pdfkit
- wpf使用webbrowser时提示当前页面脚本发生错误_win7系统internet脚本错误的应对办法...
- Django,Ajax,Vue实现文章评论功能
- 字符设备驱动基础篇4——字符设备驱动读写接口的操作实践
- springboot创建parent_理解spring-boot-starter-parent
- PHP+Mysql查询上一篇和下一篇文章实例
- 深入理解计算机系统 第十二章 并发编程