摘要:
分析hardware/akm/AK8975_FS 大致有4类文件,有着不同的分工 1:hardware\akm\ak8975_fs\libsensors\Sensors.cpp hal中一般支持多类设备,起框架作用,主要关注poll方法 2:AkmSensor.cpp 具体sensor的驱动代码 3 阅读全文
摘要:
因为一个硬件可能会被多个app使用,所以必须使用硬件访问服务来保证硬件资源的有序使用。 总体而言,访问硬件资源的程序有且只有一个,即SystemServer,其它要访问这个硬件资源的APP必须给Server发请求,由Server间接的操作硬件,从而实现资源的访问 以vibrator为例分析代码 HA 阅读全文
摘要:
1. 源码: android 5.0.2\linux 3.0.86\drivers\char\Misc.c 2. 功能: 调用misc_register则注册misc设备 3. 源码分析: 先看注册字符设备部分,init中字符设备只注册了一部分,另一部分需要misc_register实现 所有主设备 阅读全文
摘要:
1. proc/devices下创建设备 创建字符设备大致有两种方式,但是归根结底只有一种方式 方式1:使用register_chrdev来注册,但这种方式弊端非常明显,会将次设备号为0 255的设备全部占用,即该主设备号的所有字符设备只能对应一个fops 方式2:主设备号为major,指定次设备号 阅读全文
摘要:
该篇分析通用的input handler:evdev.c 源码: android-5.0.2\linux-3.0.86\drivers\input\Evdev.c功能: 创建/dev/input/eventx的字符设备供上层使用 源码分析: 往input子系统注册input_handler 事件上报 阅读全文
摘要:
源码: android-5.0.2\linux-3.0.86\drivers\input\touchscreen\Ft5x06_ts.c 功能: input device驱动code,该篇只阐述input device驱动框架,其他文章将描述input子系统 1:注册input_device 2:上 阅读全文
摘要:
以背光调节为例: PowerManagerService 使用ContentObserver对Settings.System.SCREEN_BRIGHTNESS进行观测,数据变动则启动一次背光调节 DisplayPowerController 使用animateScreenBrightness算法( 阅读全文
摘要:
源码: base\services\core\java\com\android\server\power\PowerManagerService.java 功能: 注册了ContentObserver来监测背光值,数据变动将启动背光调节 源码分析: 注册ContentObserver观察用户是否调节 阅读全文
摘要:
源码: base\services\core\java\com\android\server\display\DisplayPowerController.java 功能: 对上:提供requestPowerState方法供调用 对下:调用mProperty.setValue进行调节(参见Displ 阅读全文
摘要:
源码: base\services\core\java\com\android\server\display\DisplayPowerState.java 功能: 对LightsService封装了一层 对上:提供mProperty.setValue方法 对下:调用LightsService.set 阅读全文