
4.4Lighting system
4.4Lighting system
qq_34738528
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
framework 灯光系统 -- 电池灯源码分析
Android5.0 & 5.1分析Android系统中,灯光系统如何调用灯光服务、JNI、HAL等从而操控底层Linux驱动控制的led电池灯去闪烁或者亮不同颜色的灯来通知用户。详细调用过程:1. 首先Android系统加载后会执行init进程,然后加载SystemService.java系统服务SystemService.javaprivate void startCoreServices() { // Manages LEDs and display b...原创 2020-11-17 16:17:44 · 275 阅读 · 0 评论 -
补充led子系统
前言:什么叫做驱动框架?内核中驱动部分维护者针对每个种类的驱动设计一套成熟的、标准的、典型的驱动实现,并把不同厂家的同类硬件驱动中相同的部分抽出来自己实现好,再把不同部分留出接口给具体的驱动开发工程师来实现,这就叫驱动框架。即标准化的驱动实现,统一管理系统资源,维护系统稳定。概述:led子系统驱动框架:所有led共性: 有和用户通信的设备节点 亮和灭...原创 2019-11-13 11:17:58 · 150 阅读 · 0 评论 -
4.6Android灯光系统-背光灯
上小节我们实现了对通知灯控制,该小节我们讲解怎么实现对背光灯的控制,一般来说,操作是比较简单的,我们只需要往数据库中写入亮度就可以了,那么为什么会这么简单,当然是有其他的程序(ContentObserber)在监视数据库,当数据改变的时候,检测的程序,就会相应的去改变backlight的亮度。那么我们先来分析一下源码是怎么实现的源码分析倒序分析还是根据lights.h文件中的...原创 2019-11-11 20:52:00 · 242 阅读 · 0 评论 -
4.5Android灯光系统-通知灯
上小节我们分析了电池灯的源码,这小节我们将编写通知灯的使用过程。我们知道,当手机接收到短信的时候,他会发出声音,并且这个通知灯会亮起,那么我们怎么实现呢?一般步骤如下:1. getSystemService("NOTIFICATION_SERVICE")2. 构造notfification (1)类别:该次实现类别为通知等 (2)其他:颜色,OnMS,OffMS。...原创 2019-11-11 20:26:04 · 343 阅读 · 0 评论 -
4.4Android灯光系统-电池灯
通过前面几个小节,我们编写了灯光系统的驱动程序以及Hal文件,并且实现了我们想要的功能。 下面我们将对源码中的电池灯进行分析,然后编写我们的APP程序。当然在这之前我们先分析一下电池灯的使用过程:我们知道驱动程序是不会主动做任何事情的,所以肯定有一个应用程序去访问驱动程序,那么这个程序当然是我们的APP程序,他会通过open或者read获得电池状态。在我们使用手机的时候,如果电量...原创 2019-11-11 16:59:04 · 185 阅读 · 0 评论 -
4.3Android灯光系统-编写HAL
回顾在编写HAL代码之前,我们先回顾一下之前的硬件访问服务,安卓的应用程序是用java语音写的,如果想访问硬件,必须调用C函数,他怎么调用C函数呢?1.loadLibrary( 加载C库),在C库中,他会存在一个JNI_onLoad函数,在加载C库时,该函数会被调用。在该函数内会通过jniRegisterNativeMethods注册本地方法(把C函数转化为java方法),我们把...原创 2019-11-10 20:58:40 · 181 阅读 · 0 评论 -
4.2Android灯光系统-led_class驱动
分析在我们的安卓手机中,有多种灯光,在SDK/hardware/libhardware/include/hardware文件中,可以看到如下定义#define LIGHT_ID_BACKLIGHT "backlight"#define LIGHT_ID_KEYBOARD "keyboard"#define LIGHT_ID_BUTTONS ...原创 2019-11-10 19:24:08 · 310 阅读 · 0 评论 -
4.1Android灯光系统-总体框架
目录系统框架JNI需求分析小节结语通过前面的学习,我们知道 Android系统框架大致如下图所示总的来说可以分为四个层次系统框架1. app应用层:(主要由java语言编写)2. Framework层:该层主要是实现的是JNI,让APP具有调用C语言的能力(涉及java,c++,c语言)3. 硬件操控层:一般都是操作硬件的封装库,其实就是相当于llinu...原创 2019-11-10 17:18:55 · 284 阅读 · 0 评论