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          }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/889899.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言入门(一):A + B _ 基础输入输出

前言 本专栏记录C语言入门100例&#xff0c;这是第&#xff08;一&#xff09;例。 目录 一、【例题1】 1、题目描述 2、代码详解 二、【例题2】 1、题目描述 2、代码详解 三、【例题3】 1、题目描述 2、代码详解 四、【例题4】 1、题目描述 2、代码详解 一、【例…

【21天学习AI底层概念】day8 什么是类意识?

类意识&#xff08;Quasi-Consciousness&#xff09; 是一个用来描述人工智能或复杂系统表现出的类似意识的行为或特性的概念。虽然这种系统不具备真正的意识&#xff08;即主观体验、情感和自我觉知&#xff09;&#xff0c;但在外部表现上&#xff0c;它们可能表现出与有意识…

Docker 镜像源 阿里镜像源限制后其他镜像源

要在Docker中修改镜像源&#xff0c;你需要编辑或创建Docker的配置文件来指定新的镜像源地址。以下是如何为Docker配置中国镜像源的步骤&#xff1a; 找到或创建Docker的配置文件daemon.json。 在Linux系统中&#xff0c;该文件通常位于/etc/docker/目录下。 编辑daemon.jso…

渗透测试学习笔记(五)网络

一.IP地址 1. IP地址详解 ip地址是唯一标识&#xff0c;一段网络编码局域网&#xff08;内网&#xff09;&#xff1a;交换机-网线-pcx.x.x.x 32位置2进制&#xff08;0-255&#xff09; IP地址五大类 IP类型IP范围A类0.0.0.0 到 127.255.255.255B类128.0.0.0 到191.255.25…

《自制编译器》--青木峰郎 -读书笔记 编译hello

在该书刚开始编译hello.cb时就遇到了问题。 本人用的是wsl&#xff0c;环境如下&#xff0c; 由于是64位&#xff0c;因此根据书中的提示&#xff0c;从git上下载了64位的cb编译器 cbc-64bit 问题一: 通过如下命令编译时,总是报错。 cbc -Wa,"--32" -Wl,"-…

LruCache(本地cache)生产环境中遇到的问题及改进

问题&#xff1a;单机qps增加时请求摘要后端&#xff0c;耗时也会增加&#xff0c;因为超过了后端处理能力&#xff08;最大qps&#xff0c;存在任务堆积&#xff09;。 版本一 引入LruCache。为了避免数据失效&#xff0c;cache数据的时效性要小于摘要后端物料的更新时间&…

jedis使用及注意事项

Jedis Jedis 是一个 Java 客户端&#xff0c;用于与 Redis 数据库进行交互。它提供了一系列简单易用的 API&#xff0c;使得在 Java 应用程序中使用 Redis 变得非常方便。以下是 Jedis 的使用方法及一些注意事项。 Jedis的优势 Lettuce客户端及Jedis客户端比较如下&#xff1a;…

CSDN博客:如何使用Python的`datasets`库转换音频采样率

CSDN博客&#xff1a;如何使用Python的datasets库转换音频采样率 什么是采样率&#xff1f;代码用途&#xff1a;调整音频数据的采样率完整代码示例代码详解运行结果&#xff08;示例&#xff09;总结 在这篇文章中&#xff0c;我们将学习如何使用Python的datasets库对音频数据…

浏览器执行机制

主线程 任务1&#xff0c;任务2 微队列微队列任务1&#xff0c; 微队列任务2延时队列延时队列任务1&#xff0c; 延时队列任务2交互队列.... 事件循环的工作原理 主线程执行同步任务&#xff1a; 主线程首先执行所有同步任务&#xff08;即栈中的任务&#xff09;。这些任务会…

Java 基础知识——part 4

8.成员方法&#xff1a;Java中必须通过方法才能对类和对象的属性操作&#xff1b;成员方法只在类的内部声明并加以实现。一般声明成员变量后再声明方法。 9.方法定义 方法的返回值是向外界输出的信息&#xff0c;方法类型和返回值类型同&#xff1b;返回值通过return返回&…

设计模式12:抽象工厂模式

系列总链接&#xff1a;《大话设计模式》学习记录_net 大话设计-CSDN博客 参考&#xff1a; C设计模式&#xff1a;抽象工厂模式&#xff08;风格切换案例&#xff09;_c 抽象工厂-CSDN博客 1.概念 抽象工厂模式&#xff08;Abstract Factory Pattern&#xff09;是软件设计…

【YashanDB知识库】kettle同步大表提示java内存溢出

【问题分类】数据导入导出 【关键字】数据同步&#xff0c;kettle&#xff0c;数据迁移&#xff0c;java内存溢出 【问题描述】kettle同步大表提示ERROR&#xff1a;could not create the java virtual machine! 【问题原因分析】java内存溢出 【解决/规避方法】 ①增加JV…

适配体技术在新药发现中的应用

适配体筛选技术在新药发现中的具体应用 适配体筛选技术&#xff0c;特别是SELEX&#xff08;Systematic Evolution of Ligands by Exponential Enrichment&#xff0c;指数富集的配体系统进化技术&#xff09;&#xff0c;在新药发现中扮演着至关重要的角色。这种技术能够从庞…

C/S软件授权注册系统(Winform+WebApi+.NET8+EFCore版)

适用软件&#xff1a;C/S系统、Winform桌面应用软件。 运行平台&#xff1a;Windows .NETCore&#xff0c;.NET8 开发工具&#xff1a;Visual Studio 2022&#xff0c;C#语言 数据库&#xff1a;Microsoft SQLServer 2012&#xff0c;Oracle 21c&#xff0c;MySQL8&#xf…

go语言使用websocket发送一条消息A,持续接收返回的消息

在Go语言中实现一个WebSocket客户端&#xff0c;可以使用gorilla/websocket这个非常流行的库来处理WebSocket连接。下面是一个简单的示例&#xff0c;展示了如何创建一个WebSocket客户端&#xff0c;向服务器发送消息"A"&#xff0c;并持续接收来自服务器的响应。 首…

监控易 IDC 数据中心一体化智能运维平台:新质生产力的典范

一、引言 在当今数字化飞速发展的时代&#xff0c;IDC 数据中心作为信息产业的核心基础设施&#xff0c;其稳定、高效运行对于企业和社会的重要性不言而喻。随着数据量的爆炸式增长和业务复杂度的提升&#xff0c;传统的运维模式已难以满足需求&#xff0c;数据中心面临着诸多挑…

活着就好20241218

亲爱的朋友们&#xff0c;大家早上好&#xff01;&#x1f31e; 今天是18号&#xff0c;星期三&#xff0c;2024年12月的第十八天&#xff0c;同时也是第50周的第九天&#xff0c;农历甲辰[龙]年十一月初十四日。在这晨光初照的美丽时刻&#xff0c;愿那温柔而灿烂的阳光轻轻洒…

busybox学习——简单介绍

文章目录 简介官网源码目录结构构建 简介 BusyBox 将许多具有共性的小版本的UNIX工具结合到一个单一的可执行文件。这样的集合可以替代大部分常用工具比如的GNU fileutils &#xff0c; shellutils等工具&#xff0c;BusyBox提供了一个比较完善的环境&#xff0c;可以适用于任…

C++常见面试题-初级2

1. C和C有什么区别&#xff1f; C是面向对象的语言&#xff0c;而C是面向过程的语言&#xff1b;C引入new/delete运算符&#xff0c;取代了C中的malloc/free库函数&#xff1b;C引入引用的概念&#xff0c;而C中没有&#xff1b;C引入类的概念&#xff0c;而C中没有&#xff1…

Unity UI Button 事件优先级调整技术方案

Unity UI Button 事件优先级调整技术方案 在 Unity 项目开发过程中&#xff0c;针对 UI Button 的事件执行顺序控制是一个常见需求。本文详细阐述两种将新添加事件置于第一个执行位置的方法&#xff0c;旨在为开发者提供全面且专业的技术参考。 一、基于反射机制的事件插入方…