转载! Init是linux kernel启动的第一个进程,理解init,对熟悉android系统非常重要。Android的每个目录下面都有一个非常重要的文件Android.mk,负责编译该目录下面的代码。 System/core/init/android.mk[cpp]view plaincopy...
分类:
移动开发 时间:
2015-02-06 18:46:02
阅读次数:
256
相对于linux来说,udev还是一个新事物。然而,尽管它03年才出现,尽管它很低调(J),但它无疑已经成为linux下不可或缺的组件了。udev是什么?它是如何实现的?最近研究Linux设备管理时,花了一些时间去研究udev的实现。 udev是什么?u 是指user space,dev是...
分类:
Web程序 时间:
2015-02-06 18:15:34
阅读次数:
304
uevent可以实现内核通知上层的一种机制,最常见的电池状态的变化就是kernel uevent通知的,每次百分比或者其他的变化通过power_supply_changed通知上层update;
每个device下面都有kobj,找到device就可以通过kobject_uevent_env 通知android了;
以拔出T卡为例,内核通知上层。这里的T卡是一种sdio设备,普通T...
分类:
移动开发 时间:
2015-01-20 22:18:00
阅读次数:
341
1.kobject, ktype, ksetkobject代表sysfs中的目录。ktype代表kobject的类型,主要包含release函数和attr的读写函数。比如,所有的bus都有同一个bus_type;所有的class都有同一个class_type。kset包含了subsystem概念,k...
分类:
系统相关 时间:
2014-09-27 10:59:39
阅读次数:
399
在前文Android—— 4.2 Vold挂载管理_NetlinkManager (四)中有解析到Vold 是从kernel中获取uevent事件,来获取device信息,其中是通过一个Netlink的套接字,目前整个Vold机制也分析完了,
上篇 Android—— 4.2 Vold挂载管理_MountService (六) 分析了机制中最上层的,这里分析一下最下层的kernel uevent事件的发送,以USB设备为例!...
分类:
移动开发 时间:
2014-09-02 19:59:35
阅读次数:
316
在前文Android—— 4.2 Vold挂载管理_主体构建main (一)中有结构图表示,Vold是kernel与用户层的一个交互管理模块,
Android—— 4.2 Vold挂载管理_VolumeManager (三) 简单介绍了核心VolumeManager的构建,这篇分析从kernel进程沟通到VolumeManager进程的关键:NetlinkManager...
分类:
移动开发 时间:
2014-08-16 09:44:20
阅读次数:
368
研究了一上午的Android监听底层事件的机制,总结如下:
内核驱动监听硬件设备的状态和行为,通过uevent机制发送事件给用户空间;
用户空间通过UeventObserver来监听来自内核的uevent,进行处理。
内核空间和用户空间的通信使用了netlink机制。
参考的文章有:
Android使用UeventObserver:
http://blog.csdn.n...
分类:
移动开发 时间:
2014-08-07 13:19:50
阅读次数:
205
Android4.2耳机插拔检测实现方法
目录
1. 耳机检测的硬件原理 2
1.1 两种机制的切换 2
1.2 Android耳机插拨检测流程 3
2 InputEvent 3
2.1 Framework层对InputEvent的处理机制 3
2.2 Kernel层的处理机制 4
3. UEvent 5
3.1 Switch 基本原理 5
3.1.1 Switch的实...
分类:
移动开发 时间:
2014-07-30 17:40:04
阅读次数:
664
操作系统: debian 7.4(linux 3.2.54)硬件: 一个无线鼠标、一个有线鼠标从淘宝上花了15块钱买了个无线鼠标,很好奇它的驱动程序是如何执行的。首先执行下面命令来捕获uevent事件:sudo udevadm monitor然后插入和移除再插入无线鼠标的nano接收器(为了完整的查...
分类:
系统相关 时间:
2014-06-18 14:54:40
阅读次数:
478