如何在Android应用程序中使用powerHint?

时间:2015-07-03 10:57:07

标签: java android power-management android-powermanager

我正致力于电源优化。

是否可以从应用程序中调用powerHint中的PowerManagerService

我怎么称呼它?有没有办法通过下面的pm来调用方法?

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);

2 个答案:

答案 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。

来自http://thegnar.org/sync/?p=275