最近一直在弄离职的东西,有点烦,这里我们介绍下android framework中对backlight的处理,这里我们先介绍下framework中的native层。
首先我们要知道android中lightService对光的控制有很多,比如说提示灯,键盘背光,lcd背光,还有闪光灯等等各种光源设备,这边我们只关注lcd backlight,代码位置:
framework/base/services/jni/com_android_server_LightsService.cpp
之前介绍过很多jni中的东西,不了解的可以先去参考:
http://blog.csdn.net/zhangjie201412/article/details/7296966
http://blog.csdn.net/zhangjie201412/article/details/7238202
咱还是先来研究研究jni代码吧,首先是注册函数:
只要之前看过framework中jni的应该都很熟悉这个代码,在onLoad这个native code的时候首先就会去执行register_android_service_xxxxxxxx,就是把一些native method注册进系统供framework中java代码调用,我们来看下我们这边注册进去的function
有3个方法,init_native, finalize_nbative, setLight_native看名字大家应该就知道是做什么用的了吧,首先来看看init_native的代码
so easy,一看就知道中间那么一大串我们只要关系backlight相关的就可以了,因为这边我们只有backlight,别的啥都没有,首先这里调用了
hw_get_module函数去获得HAL层中的模块,这里应该是default.goldfish.light.so文件,然后就可以使用这个动态库中的方法了。调用相应的get_device函数:
这个更简单就是调用了methods中的open函数,在上篇中的HAL中有定义,咱还是来分析下,
这里还是做了一些初始化的动作,把brightness的路径保存下来,把HAL中的方法的回调函数都挂起来,别的也没做什么。
然后是我们的第二个方法finalize_native函数,这里就是调用了close函数就不多说了,最后是set_light函数
简单来说就是调用了HAL中的set_light函数,这里面逻辑其实很简单,我们要知道和了解的就是一个流程,如果想自己模仿着写代码的话,最重要的还是要熟悉里面的一些结构体,还有就是java中是如何调用的,jni和hal我个人认为其实都是起承上启下的作用,所以写代码的时候不要孤立的去写,多看看上层和下层。
---------------------------------------------------------------------
下面我们会介绍到framework中的LightService是如何管理的。
分享到:
相关推荐
资源分类:Python库 所属语言:Python 资源全名:rpi_backlight-1.5.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
/dev/backlight-1wire>控制,该设备提供了write方法,根据用户传入的亮度值(0 ~ 127)来设置背光。 程序由操作函数<backlight_ctl.c> ,头文件<backlight_ctl.h>,测试程序<test.c>组成。
这是Raspberry Pi 7“ LCD的仿真器,用于测试和开发而无需在Pi上连接甚至不运行物理显示器。 要求 需要Python 3.5+,以及 , 和软件包(请参见下文)。 安装 PyPI上提供了用于x86 / x64的PySide2轮子,因此您可以...
如果不带任何参数调用该命令,则scrlk和numlk将打开。 如果传递任何参数,例如“ off”。 除了麻木以外的所有东西都被关闭了。 首先下载二进制文件(或通过克隆此存储库进行编译)。 一旦打开scrlk,将启用背光。 ...
艾为背光16步线性调光参考代码_MTK平台
detailed informations about the lcd backlight driver inplementation to a mediatek platform. (mt6573)
安卓Android源码——backlight.zip
android backlight源码.zip
20240606更新Toybrick的TB-RK3588开发板在Android12下的内核-调试EDP屏幕.7z 首先刷机update.img,然后再更新EDP的内核:boot配置EDP.img 即可测试EDP屏幕的效果了! 20240607给Toybrick的TB-RK3588开发板在...
intel-edison-lcd-rgb-backlight-display-helper Grove-LCD RGB 背光 (I2c) 的显示助手。 这适用于英特尔爱迪生。例子 var display = require('intel-edison-lcd-rgb-backlight-display-helper');// Set display ...
backlight.zip项目安卓应用源码下载backlight.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
仅在“打开”和“关闭”工作时才需要显示板V1.0(需要验证) 确保执行以下命令,以便能够以普通用户身份访问配置文件: sudo su -c 'echo SUBSYSTEM==\"backlight\", RUN+=\"/bin/chmod 0666 /sys/class/backlight/...
$ backlight-cli --decrease monitor monitor brightness has been set to 12000 $ backlight-cli --increase keyboard keyboard brightness has been set to 25 $ backlight-cli --help usage: backlight-cli [-h] ...
Android的LCD和键盘 背光亮度设置 /sys/class/leds/lcd-backlight/brightness /sys/class/leds/keyboard-backlight/brightness
LCD module 16 X 2 backlight.STEP LCD12232.STEP LCD12864.SLDPRT MT-16S2D.STEP MT6116.STEP RF12232F.STEP SEETRON GLO-216Y-G.STEP WEG010016D.STEP WG12864A with PLS and mounting.STEP WG12864A-1.STEP
在 Asus Zenbook UX31A 和类似型号中调整键盘背光亮度的助手。 基于由 majewsky 创作的原始资料 这些文件旨在与 Ubuntu Linux 一起使用,尽管它可能适用于其他系统。 (原始脚本是为 Arch Linux 编写的。) 在运行...
背光控制 控制背光亮度。 与专有的nvidia驱动程序结合使用xbacklight ,我遇到了一些问题,所以我写了一个替换书。 建造 make 安装 sudo make install 卸载 ... backlight_control n将亮度设置为n%
20240607给Toybrick的TB-RK3588开发板在Buildroot下适配瑞芯微7.86寸QXGATFT-LCD EDP屏幕1536x2048.7z 20240607给Toybrick的TB-RK3588开发板在Buildroot下适配瑞芯微7.86寸QXGATFT-LCD EDP屏幕1536x2048 2024/6/7 ...
完成时间:2017/7/7 18:11 版本:V1.0 SDK:Android6.0.1 开发板:SC3817R 1、干掉设置中的BT蓝牙选项: R:\wyb\rtl8188eu_sina33m_sc3817\android\device\softwinner\astar-d7\overlay\frameworks\base\core\res...
完成时间:2017/7/7 18:11 版本:V1.0 SDK:Android6.0.1 开发板:SC3817R 1、关闭“设置”中的“蓝牙”选项: R:\wyb\ap6181_sina33m_sc3817r\android\device\softwinner\astar-d7\overlay\frameworks\base\...