当前位置: 首页 > news >正文

Hw亮度省电

1. 亮度控制策略

/decompile-hw/decompile/app/HwPowerGenieEngine3/src/main/res/xml/backlight_policy.xml

<?xml version="1.0" encoding="utf-8"?>
2 <backlight_policy xmlns:android="http://schemas.android.com/apk/res/android" version="1">
3     <mode id="0" />
4     <mode id="1">
5         <action name="browser front" id="203">
6             <item name="policy_auto"
7                 1 />
8             <item name="policy_ratio"
9                 70 />
10         </action>
11         <action name="special front" id="-1">
12             <item name="policy_auto"
13                 1 />
14             <item name="policy_ratio"
15                 95 />
16             <item name="package_name"
17                 com.huawei.appmarket />
18             <item name="package_name"
19                 com.android.email />
20             <item name="package_name"
21                 com.android.contacts />
22             <item name="package_name"
23                 com.huawei.hidisk />
24             <item name="package_name"
25                 com.qzone />
26             <item name="package_name"
27                 com.tencent.mm />
28         </action>
29         <action name="game2d front" id="233">
30             <item name="policy_auto"
31                 1 />
32         </action>
33         <action name="game3d front" id="204">
34             <item name="policy_auto"
35                 1 />
36         </action>
37         <action name="office front" id="225">
38             <item name="policy_auto"
39                 1 />
40             <item name="policy_ratio"
41                 65 />
42         </action>
43         <action name="video front" id="228">
44             <item name="policy_auto"
45                 1 />
46             <item name="policy_ratio"
47                 85 />
48         </action>
49         <action name="video start" id="246">
50             <item name="policy_auto"
51                 1 />
52             <item name="policy_ratio"
53                 85 />
54         </action>
55         <action name="video end" id="247" />
56         <action name="ebook front" id="205">
57             <item name="policy_auto"
58                 1 />
59             <item name="policy_ratio"
60                 65 />
61         </action>
62         <action name="mms front" id="235">
63             <item name="policy_auto"
64                 1 />
65             <item name="policy_ratio"
66                 80 />
67         </action>
68     </mode>
69     <mode id="2">
70         <action name="browser front" id="203">
71             <item name="policy_ratio"
72                 70 />
73             <item name="policy_auto"
74                 1 />
75         </action>
76         <action name="office front" id="225">
77             <item name="policy_ratio"
78                 70 />
79             <item name="policy_auto"
80                 1 />
81         </action>
82         <action name="mms front" id="235">
83             <item name="policy_ratio"
84                 85 />
85             <item name="policy_auto"
86                 1 />
87         </action>
88         <action name="ebook front" id="205">
89             <item name="policy_ratio"
90                 70 />
91             <item name="policy_auto"
92                 1 />
93         </action>
94         <action name="special front" id="-1">
95             <item name="policy_auto"
96                 1 />
97             <item name="policy_ratio"
98                 95 />
99             <item name="package_name"
100                 com.android.email />
101             <item name="package_name"
102                 com.google.android.gm />
103             <item name="package_name"
104                 com.huawei.hidisk />
105             <item name="package_name"
106                 com.qzone />
107             <item name="package_name"
108                 com.tencent.mm />
109             <item name="package_name"
110                 com.android.contacts />
111             <item name="package_name"
112                 com.taobao.taobao />
113             <item name="package_name"
114                 com.jingdong.app.mall />
115         </action>
116         <action name="special front" id="-1">
117             <item name="policy_auto"
118                 1 />
119             <item name="policy_ratio"
120                 70 />
121             <item name="package_name"
122                 com.huawei.android.webcustomize />
123         </action>
124         <action name="special front" id="-1">
125             <item name="policy_auto"
126                 1 />
127             <item name="policy_ratio"
128                 80 />
129             <item name="package_name"
130                 com.huawei.hwmwlauncher />
131         </action>
132         <action name="fuzzy front" id="-2">
133             <item name="policy_auto"
134                 1 />
135             <item name="policy_ratio"
136                 95 />
137             <item name="package_name"
138                 *blog />
139             <item name="package_name"
140                 *weibo />
141             <item name="package_name"
142                 *zaker />
143             <item name="package_name"
144                 *mobileqq />
145             <item name="package_name"
146                 *.news />
147         </action>
148     </mode>
149     <mode id="3" />
150     <mode id="4" />
151 </backlight_policy>

2. 策略加载,存放到数据库中

xref: /decompile-hw/decompile/app/HwPowerGenieEngine3/src/main/java/com/huawei/powergenie/core/policy/PolicyInitialization.java

public final class PolicyInitialization {
24      private static String CUSTDIR_BACKLIGHT_POLICY = "/product/etc/hwpg/backlight_policy.xml";07      public Uri addBacklightPolicy(int actionId, int powerMode, int policy, int value, String pkg) {
108          ContentValues values = new ContentValues(5);
109          values.put("action_id", Integer.valueOf(actionId));
110          values.put("power_mode", Integer.valueOf(powerMode));
111          values.put("policy_type", Integer.valueOf(policy));
112          values.put("policy_value", Integer.valueOf(value));
113          if (pkg != null) {
114              values.put("pkg_name", pkg);
115          }
116          return this.mResolver.insert(PolicyProvider.BACKLIGHT_URI, values);
117      }

3.从数据库中读取策略

/decompile-hw/decompile/app/HwPowerGenieEngine3/src/main/java/com/huawei/powergenie/modules/displaypower/BacklightControl.java (revision f5955e2b)

      private boolean loadPolicy(int mode) {
271          Policy item;
272          this.mActionMapPolicy.clear();
273          this.mPkgMapPolicy.clear();
274          this.mFuzzyMatchPkgList.clear();
275          Cursor cursor = this.mContext.getContentResolver().query(PolicyProvider.BACKLIGHT_URI, null, "power_mode=? OR power_mode=? ", new String[]{Integer.toString(mode), "0"}, null);
276          if (cursor == null) {
277              Log.w("BacklightControl", "backlight table is not exist. ");
278              return false;
279          }
280          int idCol = cursor.getColumnIndex("action_id");
281          int typeCol = cursor.getColumnIndex("policy_type");
282          int valueCol = cursor.getColumnIndex("policy_value");
283          int pkgCol = cursor.getColumnIndex("pkg_name");

4.控制亮度的接口

/decompile-hw/decompile/framework/services/com/android/server/pg/PGManagerService.java (revision f5955e2b)

207      public void setLcdRatio(int ratio, boolean autoAdjust) {
208          if (!this.mSystemReady) {
209              Log.w(TAG, "not ready for setLcdRatio");
210          } else if (1000 != Binder.getCallingUid()) {
211              Log.e(TAG, "setLcdRatio permission not allowed. uid = " + Binder.getCallingUid());
212          } else {
213              this.mPms.setLcdRatio(ratio, autoAdjust);
214          }
215      }/decompile-hw/decompile/framework/hwServices/com/android/server/power/HwPowerManagerService.java (revision f5955e2b)public void setLcdRatio(int ratio, boolean autoAdjust) {
644          this.mLightsManager.getLight(0).setLcdRatio(ratio, autoAdjust);
645      }xref: /decompile-hw/decompile/framework/services/com/android/server/lights/LightsService.java (revision f5955e2b)94          public void setLcdRatio(int ratio, boolean autoAdjust) {
95              LightsService.mIsAutoAdjust = autoAdjust;
96              if (ratio > 100 || ratio < 1) {
97                  LightsService.mRatio = 1.0d;
98              } else {
99                  LightsService.mRatio = ((double) ratio) / 100.0d;
100              }
101              Slog.i(LightsService.TAG, "setLcdRatio ratio:" + ratio + " autoAdjust:" + autoAdjust);
102              setLightGradualChange(LightsService.mLcdBrightness, 0, true);
103          }

相关文章:

Hw亮度省电

1. 亮度控制策略 /decompile-hw/decompile/app/HwPowerGenieEngine3/src/main/res/xml/backlight_policy.xml <?xml version"1.0" encoding"utf-8"?> 2 <backlight_policy xmlns:android"http://schemas.android.com/apk/res/android&qu…...

【信息系统项目管理师-论文真题】2015下半年论文详解

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 论题一:大项目或多项目的成本管理解题思路写作要点论题二:项目的采购管理解题思路写作要点论题一:大项目或多项目的成本管理 随着移动互联网、物联网、云计算、大数据等新一代信息技术的广泛应用,我国目前…...

django的model中定义【记录修改次数】的这个字段该用什么类型

django中定义对于某个文章应用的数据库中使用到记录修改次数的这个字段 如models.py中的配置 from django.db import models from django.utils import timezone from django.contrib.postgres.fields import ArrayFieldclass Article(models.Model):# Titlestitle_cn model…...

windows openssl编译x64版libssl.lib,编译x64版本libcurl.lib,支持https,vs2015编译器

不要纠结&#xff0c;直接选择用perl编译&#xff01; 告诫想要用弄成vs编译版的&#xff0c;暂时先别给自己增加麻烦 告诫&#xff0c;以下执行的每一步&#xff0c;都不要纠结 先安装环境 nasm 64位版本 https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/win64/nasm-…...

搭建 Elasticsearch 集群:完整教程

本文将详细介绍如何在 Linux 环境下搭建一个 Elasticsearch 集群&#xff0c;涵盖环境准备、配置优化、服务启动等多个环节。 一、环境准备 创建安装目录 mkdir /es cd /es解压 Elasticsearch 安装包 tar -xzf elasticsearch-7.10.1-linux-x86_64.tar.gz -C /es配置环境变量 编…...

如何实现序列化和反序列化?如何处理对象的生命周期管理?

序列化和反序列化 实现思路&#xff1a; 序列化&#xff1a;将对象的状态信息转换为可以存储或传输的格式&#xff0c;通常是字节流。 确定要序列化的对象的数据成员。将这些数据成员按照一定的规则&#xff08;如二进制、文本、JSON、XML 等&#xff09;编码为字节序列。将生…...

WPF+MVVM案例实战与特效(三十八)- 封装一个自定义的数字滚动显示控件

文章目录 1、运行效果2、案例实现1、功能设计2、页面布局3、控件使用4、运行效果3、拓展:多数字自定义控件1、控件应用4、总结1、运行效果 在Windows Presentation Foundation (WPF)应用程序中,自定义控件允许开发者创建具有特定功能和外观的独特UI元素。本博客将介绍一个名…...

docker安装Redis、docker使用Redis、docker离线安装redis、Redis离线安装

服务器到期了&#xff0c;换了一个新的环境要重搭&#xff0c;就记录一下好了&#xff1a; -----docker在线安装Redis 拉取 Redis 镜像 docker pull redis:6.2 运行 Redis 容器 docker run --name redis -d redis docker run --name redis -d redis:6.2 映射端口 docker run -…...

单目动态新视角合成

目录 单目动态新视角合成 Generative Camera Dolly:Extreme Monocular Dynamic Novel View Synthesis 单目动态新视角合成 Generative Camera Dolly: Extreme Monocular Dynamic Novel View Synthesis Generative Camera Dolly: Extreme Monocular Dynamic Novel View Synth…...

STM32--IO引脚复用

IO引脚复用...

Python字符串及正则表达式(十):字符串常用操作、字符串编码转换

前言&#xff1a;在编程的世界里&#xff0c;字符串无处不在。它们是构建用户界面、存储数据、进行通信的基础元素。无论是财务系统的总账报表、电子游戏的比赛结果&#xff0c;还是火车站的列车时刻表&#xff0c;这些信息最终都需要以文本的形式呈现给用户。这些文本的背后&a…...

前端的Python入门指南(完):错误和异常处理策略及最佳实践

《前端的 Python 入门指南》系列文章&#xff1a; &#xff08;一&#xff09;&#xff1a;常用语法和关键字对比&#xff08;二&#xff09;&#xff1a;函数的定义、参数、作用域对比&#xff08;三&#xff09;&#xff1a;数据类型对比 - 彻底的一切皆对象实现和包装对象异…...

LeetCode 2475 数组中不等三元组的数目

问题描述: 给定一个下标从 0 开始的正整数数组 nums&#xff0c;我们的目标是找出并统计满足下述条件的三元组 (i, j, k) 的数目&#xff1a; 0 < i < j < k < nums.length&#xff0c;这确保了三元组索引的顺序性。nums[i]、nums[j] 和 nums[k] 两…...

【和春笋一起学C++】字符串比较

目录 C语言字符串比较 C语言字符比较 C字符串比较 C语言字符串比较 在C语言中用于比较字符串的函数为strcmp函数&#xff0c;该函数定义在头文件<string.h>中&#xff0c;是一个标准库函数。strcmp函数的工作原理是逐字符比较两个字符串&#xff0c;直到找到不同的字符…...

HTTP 协议报文结构 | 返回状态码详解

注&#xff1a;本文为 “HTTP 历史 | 协议报文结构 | 返回状态码” 相关文章合辑。 未整理去重。 HTTP 历史 wangjunliang 最后更新: 2024/3/16 上午10:29 超文本传输协议(英语:HyperTextTransferProtocol,缩写:HTTP)是 万维网(World Wide Web)的基础协议&#xff61;自 蒂姆…...

.net winform 实现CSS3.0 泼墨画效果

效果图 代码 private unsafe void BlendImages1(Bitmap img1, Bitmap img2) {// 确定两个图像的重叠区域Rectangle rect new Rectangle(0, 0,Math.Min(img1.Width, img2.Width),Math.Min(img1.Height, img2.Height));// 创建输出图像&#xff0c;尺寸为重叠区域大小Bitmap b…...

LearnOpenGL学习(高级OpenGL - - 实例化,抗锯齿)

实例化 对于在同一场景中使用相同顶点数据的对象&#xff08;如草地中的草&#xff09;&#xff0c;可以使用实例化&#xff08;Instancing&#xff09;技术&#xff0c;用一个绘制函数让OpenGL绘制多个物体&#xff0c;而非循环&#xff08;Drawcall: N->1&#xff09;。 …...

大数据与AI:从分析到预测的跃迁

引言&#xff1a;数据时代的新纪元 从每天的社交分享到企业的运营决策&#xff0c;数据早已成为现代社会不可或缺的资源。我们正置身于一个数据爆炸的时代&#xff0c;数以亿计的信息流实时生成&#xff0c;为人类带来了前所未有的洞察能力。然而&#xff0c;数据的价值并不仅限…...

【CC2530开发基础篇】继电器模块使用

一、前言 1.1 开发背景 本实验通过使用CC2530单片机控制继电器的吸合与断开&#xff0c;深入了解单片机GPIO的配置与应用。继电器作为一种常见的电气控制元件&#xff0c;广泛用于自动化系统中&#xff0c;用于控制大功率负载的开关操作。在本实验中&#xff0c;将通过GPIO口…...

C05S07-Tomcat服务架设

一、Tomcat 1. Tomcat概述 Tomcat也是一个Web应用程序&#xff0c;具有三大核心功能。 Java Servlet&#xff1a;Tomcat是一个Servlet容器&#xff0c;负责管理和执行Java Servlet、服务端的Java程序&#xff0c;处理客户端的HTTP请求和响应。Java Server&#xff1a;服务端…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要&#xff1a; 近期&#xff0c;在使用较新版本的OpenSSH客户端连接老旧SSH服务器时&#xff0c;会遇到 "no matching key exchange method found"​, "n…...

MFC 抛体运动模拟:常见问题解决与界面美化

在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...