当前位置: 首页 > 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;服务端…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

MySQL JOIN 表过多的优化思路

当 MySQL 查询涉及大量表 JOIN 时&#xff0c;性能会显著下降。以下是优化思路和简易实现方法&#xff1a; 一、核心优化思路 减少 JOIN 数量 数据冗余&#xff1a;添加必要的冗余字段&#xff08;如订单表直接存储用户名&#xff09;合并表&#xff1a;将频繁关联的小表合并成…...

MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释

以Module Federation 插件详为例&#xff0c;Webpack.config.js它可能的配置和含义如下&#xff1a; 前言 Module Federation 的Webpack.config.js核心配置包括&#xff1a; name filename&#xff08;定义应用标识&#xff09; remotes&#xff08;引用远程模块&#xff0…...

消息队列系统设计与实践全解析

文章目录 &#x1f680; 消息队列系统设计与实践全解析&#x1f50d; 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡&#x1f4a1; 权衡决策框架 1.3 运维复杂度评估&#x1f527; 运维成本降低策略 &#x1f3d7;️ 二、典型架构设计2.1 分布式事务最终一致…...

C# winform教程(二)----checkbox

一、作用 提供一个用户选择或者不选的状态&#xff0c;这是一个可以多选的控件。 二、属性 其实功能大差不差&#xff0c;除了特殊的几个外&#xff0c;与button基本相同&#xff0c;所有说几个独有的 checkbox属性 名称内容含义appearance控件外观可以变成按钮形状checkali…...