首页 > 其他分享 >Android 13.0 系统framework修改低电量关机值为2%

Android 13.0 系统framework修改低电量关机值为2%

时间:2024-10-24 18:49:05浏览次数:12  
标签:关机 2% BatteryService 值为 framework 低电量

1.前言

在13.0的系统rom产品定制化开发中,在系统关于低电量关机的值,每个平台都不同,根据实际开发底层硬件的要求看实际情况来调整这个值,
所以需要分析相关的电量变化执行的代码流程,来实现这个功能,接下来看具体怎么实现

2.系统framework修改低电量关机值为2%的核心类

frameworks\base\services\core\java\com\android\server\BatteryService.java

3.系统framework修改低电量关机值为2%的核心功能分析和实现

在系统的核心服务中,SystemServer在启动BatteryService时,一次会调用它的构造函数,onStart,onBootPhase方法,
BatteryService 作为电池及充电相关的服务: 监听 Uevent、读取sysfs 里中的状态 、广播Intent.ACTION_BATTERY_CHANGED。
BatteryService实现了一个UevenObserver mUEventObserver。uevent是Linux 内核用来向用户空间主动上报事件的机制,
对于JAVA程序来说,只实现 UEventObserver的虚函数 onUEvent,然后注册即可。
BatteryService只关注 power_supply 的事件,主要是通过在驱动层上报的电池相关的信息处理ÿ

标签:关机,2%,BatteryService,值为,framework,低电量
From: https://blog.csdn.net/baidu_41666295/article/details/143169674

相关文章

  • Unity 5.6 Basic shader framework
    UnityShader参考入口VertexandfragmentshaderShader"Unlit/NewUnlitShader"{Properties{_MainTex("Texture",2D)="white"{}}SubShader{Tags{"RenderType"="Opaque&quo......
  • Android Framework: 增加trace点
    参考systrace/perfetto中需要actrace打tag相关方法-车载车机framework系统开发实战示例:+#defineATRACE_TAGATRACE_TAG_ALWAYS+#include<dlfcn.h>#include<iostream>+#include<utils/Trace.h>@@-55,6+58,7@@voidLogdStub::initLogLevel(){}boolLogd......
  • .netframework3.5安装被拒绝。Win1011系统Windows Update无法启动拒绝访问怎么办?【解
    原文链接:https://blog.csdn.net/qq_44905692/article/details/140434164安装.netframework3.5的时候,提示拒绝。查了下,windows更新服务是需要启动的,根本就找不到启动两个字,设置为自动也提示拒绝。用以下办法,显示了启动两个字,点击又显示1053报错,目前还没解决。打开注册表:1、通......
  • Linux DMA Engine framework(2)_功能介绍及解接口分析
    1.前言从我们的直观感受来说,DMA并不是一个复杂的东西,要做的事情也很单纯直白。因此Linuxkernel对它的抽象和实现,也应该简洁、易懂才是。不过现实却不甚乐观(个人感觉),Linuxkerneldmaengineframework的实现,真有点晦涩的感觉。为什么会这样呢?如果一个软件模块比较复杂、晦涩,要......
  • Linux DMA Engine framework(3)_dma controller驱动
    1.前言本文将从provider的角度,介绍怎样在linuxkerneldmaengine的框架下,编写dmacontroller驱动。2.dmacontroller驱动的软件框架设备驱动的本质是描述并抽象硬件,然后为consumer提供操作硬件的友好接口。dmacontroller驱动也不例外,它要做的事情无外乎是:1)抽象并控制DMA控......
  • 为什么需要Multi-agent framework?
    为什么需要Multi-agentframework?Multi-agentframework(多智能体框架)之所以被需要,主要基于以下几个方面的原因:一、突破单智能体的限制上下文窗口大小限制:在处理长上下文(LongContext)时,单一的智能体可能会受到上下文窗口大小的限制,导致无法有效地处理和生成回复。通过拆分......
  • Linux DMA Engine framework(1)_概述
    1.前言前面文章介绍“LinuxMMCframework”的时候,涉及到了MMC数据传输,进而不可避免地遭遇了DMA(DirectMemoryAccess)。因而,择日不如撞日,就开几篇文章介绍Linux的DMAEngineframework吧。本文是DMAEngineframework分析文章的第一篇,主要介绍DMAcontroller的概念、术语(从硬......
  • 第36篇 linux服务器上启动framework应用程序流程
    framework开发的应用程序,一般是不会在linux服务器上运行的,但是我们可以通过mono进行应用部署1.查看linux服务上是否已经安装mono-core方式1:rpm命令查看rpm-qa|grepmono-core有结果返回,说明已经安装方式2:使用yumlistinstalledyumlistinstalled|grepmono-core......
  • Android Framework AMS(08)service组件分析-2(startService和StopService关键流程分析)
    该系列文章总纲链接:专题总纲目录AndroidFramework总纲本章关键点总结&说明:说明:上一章节主要解读应用层service组件启动的2种方式startService和bindService,以及从APP层到AMS调用之间的打通。本章节主要关注service组件启动方式的一种:startService启动方式,分析关键API......
  • Android Framework AMS(09)service组件分析-3(bindService和unbindService关键流程分析)
    该系列文章总纲链接:专题总纲目录AndroidFramework总纲本章关键点总结&说明:说明:上上一章节主要解读应用层service组件启动的2种方式startService和bindService,以及从APP层到AMS调用之间的打通。上一章节我们关注了service组件启动方式的一种:startService启动方式。本章......