一、Android的电源管理部分文件路径如下:
frameworks/base/core/java/android/os/PowerManager.java
PowerManager类被APP调用,控制电源设备状态切换等
frameworks/base/services/java/com/android/server/PowerManagerService.java
PowerManagerService属于PowerManager的核心
frameworks/base/core/java/android/os/Power.java
Power与jni接口交互
frameworks/base/core/jni/android_os_power.cpp
此文件是PowerManager的jni接口实现
hardware/libhardware/power/power.c
PowerManager的HAL代码,与电源管理的kernel交互
二、android.os.PowerManager类主要接口:
Android
提供了现成
android.os.PowerManager
类
,
该类用于控制设备的电源状态的切换
.
该类对外有三个接口函数
:
1、void goToSleep(long time); //
强制设备进入
Sleep
状态
Note:
尝试在应用层调用该函数
,
却不能成功
,
出现的错误好象是权限不够
,
但在
Framework
下面的
Service
里调用是可以的
.
2、newWakeLock(int flags, String tag);//
取得相应层次的锁
flags
参数说明
:
PARTIAL_WAKE_LOCK: Screen off, keyboard light off
SCREEN_DIM_WAKE_LOCK: screen dim, keyboard light off
SCREEN_BRIGHT_WAKE_LOCK: screen bright, keyboard light off
FULL_WAKE_LOCK: screen bright, keyboard bright
ACQUIRE_CAUSES_WAKEUP:
一旦有请求锁时强制打开
Screen
和
keyboard light
ON_AFTER_RELEASE:
在释放锁时
reset activity timer
Note:
如果申请了
partial wakelock,
那么即使按
Power
键
,
系统也不会进
Sleep,
如
Music
播放时
如果申请了其它的
wakelocks,
按
Power
键
,
系统还是会进
Sleep
3、void userActivity(long when, boolean noChangeLights);//User activity
事件发生
,
设备会被切换到
Full on
的状态
,
同时Reset Screen off timer.
Sample code:
PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock (PowerManager.SCREEN_DIM_WAKE_LOCK, “My Tag”);
wl.acquire();
…….
wl.release();
Note:
1.
在使用以上函数的应用程序中
,
必须在其
Manifest.xml
文件中加入下面的权限
:
<uses-permission android:name="android.permission.WAKE_LOCK"
/>
<uses-permission android:name="android.permission.DEVICE_POWER"
/>
2.
所有的锁必须成对的使用
,
如果申请了而没有及时释放会造成系统故障
.
如申请了
partial wakelock,
而没有及时释放
,
那系统就永远进不了
Sleep
模式
.
分享到:
相关推荐
Android Power Manager Android Power Manager 是 Android 系统下的电源管理框架,主要通过锁和定时器来切换系统的状态,降低系统的功耗。 Android 提供了现成的 android.os.PowerManager 类,用于控制设备的电源...
Android Power Management Framework是Android操作系统中的关键组件,它专注于优化移动设备的电源消耗,以确保电池寿命和用户体验。在移动设备上,尤其是智能手机,电源管理至关重要,因为电池容量有限。如果电源...
android-log power 各包电量分析
gnome-power-manager是GNOME桌面环境中的一个关键组件,它专为Linux系统设计,用于管理和优化用户的电源使用。这个程序提供了对笔记本电脑、台式机以及其他支持电源管理设备的控制,帮助用户节省电力并延长电池寿命...
Android Power Management主要目标是通过有效的策略和机制降低系统功耗,确保设备在不同使用场景下都能达到最佳能效。以下是对Android电源管理从应用层、框架层到内核层的详细解析。 在**应用层**,开发者可以利用`...
PowerManagerService.java
我们将以"PowerDemo"为例,介绍如何创建一个简单的Android应用来实现这一功能,但需要注意的是,由于涉及到系统级操作,这个demo可能需要设备具有root权限才能正常工作。 首先,理解Power事件。在Android中,Power...
另一方面,"Binder_B"线程(tid=85)在调用`toString()`方法时也处于等待状态,它需要`<0x41a7e420>`(即`PowerManagerService$DisplayBlankerImpl`)的锁,而这把锁当前由"PowerManagerService"线程持有。...
Power Manager是一款能够帮助大家管理电脑电源,降低Mac电脑的能源成本的软件。使用这款软件大家可以更加便捷有效的控制好Mac自动启动、关机或睡眠,从而达到有效节省电源的目的。
### Android在Power架构上的移植与应用 #### 一、Android简介及特性 **Android** 是一个基于Linux内核的操作系统,由Google开发并维护。它不仅包括操作系统内核,还包括中间件以及关键的移动应用程序。Android的...
戴尔笔记本自带的电源管家,可以控制电池最大充电量,例如将电池充电到80%即停止充电,电池电量低于70%开始充电等,可以从一定程度上保护电池
- `frameworks/base/services/java/com/android/server/PowerManagerService.java` - `frameworks/base/core/java/android/os/Power.java` - `frameworks/base/core/jni/android_os_power.cpp` - `hardware/...
【鸿蒙电源管理服务——Power Manager for LiteOS详解】 在华为的鸿蒙系统(HarmonyOS)中,电源管理是一项至关重要的服务,特别是在其轻量级版本——LiteOS上。Power Manager for LiteOS是专门为LiteOS设计的电源...
结合这篇文章的图 http://blog.csdn.net/android_huber/article/details/7399476
「PowerBI 商业数据分析」教学大纲 本课程教学大纲旨在帮助学生快速掌握 Power BI 的相关知识,从基础的架构和操作界面开始,到数据处理的流程和难易程度,涵盖了 Power BI 的各模块知识,包括数据准备模块 Power...
Intel Intelligent Power Node Manager 3.0 External Interface Specification Using IPMI Contents 1 Introduction 2 Intel Management Engine (Intel ME) IPMI Interface 3 Intel ME Intel NM IPMI Interface 4 ...
在Android开发中,有时我们需要对用户的操作进行监听,比如用户按下Home键、电源键或音量键等。本文将详细讲解如何使用BroadcastReceiver来监听这些关键事件,并介绍相关的Android基础知识。 首先,...
"PowerBI数据分析与数据可视化教案.pdf" 本资源是Power BI数据分析与数据可视化的教案,旨在让学生掌握Power BI的数据分析和可视化方法。课程共分为9章,分别介绍了Power BI的基础知识、数据连接、数据分析、报表...
TinkPad Power Management是一款专为ThinkPad笔记本电脑设计的电源管理软件,旨在帮助用户优化系统性能,同时延长电池使用时间。这款软件的6.65版本提供了更精细的控制选项,以适应不同用户的需求。 1. **TinkPad ...