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编译器
不要纠结,直接选择用perl编译! 告诫想要用弄成vs编译版的,暂时先别给自己增加麻烦 告诫,以下执行的每一步,都不要纠结 先安装环境 nasm 64位版本 https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/win64/nasm-…...

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

如何实现序列化和反序列化?如何处理对象的生命周期管理?
序列化和反序列化 实现思路: 序列化:将对象的状态信息转换为可以存储或传输的格式,通常是字节流。 确定要序列化的对象的数据成员。将这些数据成员按照一定的规则(如二进制、文本、JSON、XML 等)编码为字节序列。将生…...

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

docker安装Redis、docker使用Redis、docker离线安装redis、Redis离线安装
服务器到期了,换了一个新的环境要重搭,就记录一下好了: -----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字符串及正则表达式(十):字符串常用操作、字符串编码转换
前言:在编程的世界里,字符串无处不在。它们是构建用户界面、存储数据、进行通信的基础元素。无论是财务系统的总账报表、电子游戏的比赛结果,还是火车站的列车时刻表,这些信息最终都需要以文本的形式呈现给用户。这些文本的背后&a…...

前端的Python入门指南(完):错误和异常处理策略及最佳实践
《前端的 Python 入门指南》系列文章: (一):常用语法和关键字对比(二):函数的定义、参数、作用域对比(三):数据类型对比 - 彻底的一切皆对象实现和包装对象异…...
LeetCode 2475 数组中不等三元组的数目
问题描述: 给定一个下标从 0 开始的正整数数组 nums,我们的目标是找出并统计满足下述条件的三元组 (i, j, k) 的数目: 0 < i < j < k < nums.length,这确保了三元组索引的顺序性。nums[i]、nums[j] 和 nums[k] 两…...

【和春笋一起学C++】字符串比较
目录 C语言字符串比较 C语言字符比较 C字符串比较 C语言字符串比较 在C语言中用于比较字符串的函数为strcmp函数,该函数定义在头文件<string.h>中,是一个标准库函数。strcmp函数的工作原理是逐字符比较两个字符串,直到找到不同的字符…...

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

.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));// 创建输出图像,尺寸为重叠区域大小Bitmap b…...

LearnOpenGL学习(高级OpenGL - - 实例化,抗锯齿)
实例化 对于在同一场景中使用相同顶点数据的对象(如草地中的草),可以使用实例化(Instancing)技术,用一个绘制函数让OpenGL绘制多个物体,而非循环(Drawcall: N->1)。 …...

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

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

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

Java stream groupingBy sorted 实现多条件排序与分组的最佳实践
1. 数据初始化 这一部分代码用于创建 Product 对象并将它们添加到 result 列表中。 // 初始化数据 List<Product> result new ArrayList<>(); List<Product> resp new ArrayList<>();// 添加产品数据 result.add(new Product("手机A", 1…...

JAVA:代理模式(Proxy Pattern)的技术指南
1、简述 代理模式(Proxy Pattern)是一种结构型设计模式,用于为其他对象提供一种代理,以控制对这个对象的访问。通过代理模式,我们可以在不修改目标对象代码的情况下扩展功能,满足特定的需求。 设计模式样例:https://gitee.com/lhdxhl/design-pattern-example.git 2、什…...

爬取Q房二手房房源信息
文章目录 1. 实战概述2. 网站页面分析3. 编写代码爬取Q房二手房房源信息3.1 创建项目与程序3.2 运行程序,查看结果 4. 实战小结 1. 实战概述 本次实战项目旨在通过编写Python爬虫程序,抓取深圳Q房网上的二手房房源信息。我们将分析网页结构,…...

Ansible自动化运维(五) 运维实战
Ansible自动化运维这部分我将会分为五个部分来为大家讲解 (一)介绍、无密钥登录、安装部署、设置主机清单 (二)Ansible 中的 ad-hoc 模式 模块详解(15)个 (三)Playbook 模式详解 …...

K-means算法的python实现
K-means算法步骤 初始化质心:输入初始的质心位置。分配样本:将每个数据点分配到离它最近的质心对应的簇中。更新质心:对每个簇中的所有数据点,计算它们的均值,并将均值更新为新的质心。重复步骤2和3,直到质…...

客户端(浏览器)vue3本地预览txt,doc,docx,pptx,pdf,xlsx,csv,
预览文件 1、入口文件preview/index.vue2、预览txt3、预览doc4、预览pdf5、预览pptx6、预览xlsx7、预览csv 1、入口文件preview/index.vue 预览样式,如pdf 文件目录如图所示: 代码如下 <template><div class"preview-wrap" ref&…...

[SZ901]JTAG高速下载设置(53Mhz)
SZ901最高支持JTAG 53MHz的时钟频率,下载bit文件和固化程序的速度提升非常明显。 首先设置参数 1,将JTAG0 分频系数修改为3 2,设置参数,更新参数。(完成) 打开VIVADO VIVADO 正常识别FPGA,速…...

docker springboot 运维部署详细实例
环境安装 [rootiZbp1dcnzq7pzpg9607m6pZ ~]# docker -v Docker version 26.1.4, build 5650f9b镜像构建 Dockerfile 文件内容 FROM openjdk:8 # Author Info 创建人信息 MAINTAINER ratelcloudfoxmail.com ENV PORT20001 EXPOSE 20001 RUN mkdir /usr/local/ratel-boot-serv…...

Linux 查看目录命令 ls 详细介绍
Linux 和 Unix 系统中 ls 命令是用于列出目录内容。用户可以查看指定目录下的文件和子目录,还可以获取有关这些文件和子目录的详细信息。 基本语法: ls [选项] [目录]如果不指定目录,ls 将列出当前工作目录下的内容。 01、-a 或 --all ls…...

React Native状态管理器Redux、MobX、Context API、useState
Redux、MobX、Context API、useState都是React中用于状态管理的工具,但它们各自有不同的特点和使用场景。 Redux 介绍: Redux是一个JavaScript状态管理库,最初由Dan Abramov和Andrew Clark于2015年开发。它基于Flux架构,强调状态…...