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

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

Robots.txt 文件

什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

服务器--宝塔命令

一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行&#xff01; sudo su - 1. CentOS 系统&#xff1a; yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南&#xff1a;计算机基础与源码原理深度解析 第一轮提问&#xff1a;基础概念问题 1. 请解释什么是进程和线程的区别&#xff1f; 面试官&#xff1a;进程是程序的一次执行过程&#xff0c;是系统进行资源分配和调度的基本单位&#xff1b;而线程是进程中的…...

多模态图像修复系统:基于深度学习的图片修复实现

多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...

为什么要创建 Vue 实例

核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...