我正致力于电源优化。
是否可以从应用程序中调用powerHint
中的PowerManagerService
?
我怎么称呼它?有没有办法通过下面的pm来调用方法?
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
答案 0 :(得分:0)
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实现区域的一部分。请参阅these会谈。
答案 1 :(得分:0)
它不是SDK的一部分。因此,apk无法调用它。它会自动管理。 如果您想管理它,请修改目标......
powerHint用于破坏正在进行的用户交互或图形活动的性能(UI / UX动画)
除了你应该看看powerHAL的示例实现以了解人们如何为特定硬件实现它并为你模仿它们之外,没有什么可说的了。准备就绪后,只需将“power。”添加到设备的AndroidProducts.mk(或AndroidProducts包含的mk文件)的PRODUCT_PACKAGES列表中,即可获得Power HAL。