我正在研究电源优化。
是否可以powerHint
从PowerManagerService
应用程序调用?
我怎么称呼它?有没有办法通过下面的下午调用该方法?
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
我正在研究电源优化。
是否可以powerHint
从PowerManagerService
应用程序调用?
我怎么称呼它?有没有办法通过下面的下午调用该方法?
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
它不是 SDK 的一部分。因此,apk 无法调用它。它是自动管理的。如果你想管理它,修改你的目标......
powerHint 用于破坏用户交互性或正在进行的图形活动(UI / UX 动画)的性能
除了您应该查看 powerHAL 的示例实现之外,没有什么可说的了,以了解人们如何为特定硬件实现它并为您的硬件模仿它们。准备好后,您只需添加“力量”。到您设备的 AndroidProducts.mk(或 AndroidProducts 包含的 mk 文件)中的 PRODUCT_PACKAGES 列表,并且您有一个 Power HAL。
IPowerManager.powerHint()
方法只是 PowerHAL 的包装powerHint()
函数nativePowerHint()
。
static void nativeSendPowerHint(JNIEnv *env, jclass clazz, jint hintId, jint data)
{
int data_param = data;
if (gPowerModule && gPowerModule->powerHint) {
if(data)
gPowerModule->powerHint(gPowerModule, (power_hint_t)hintId, &data_param);
else {
gPowerModule->powerHint(gPowerModule, (power_hint_t)hintId, NULL);
}
}
}
如果你想让 HAL 做某事,你应该实现你自己的与 hintId 相关的动作,比如 POWER_HINT_INTERACTION、POWER_HINT_LOW_POWER 等等。
我认为直接调用 powerHint() 是 SDK 实现区域的一部分。参考这些谈话。