Android 辅助功能服务消耗大量电池

Android 辅助功能服务消耗大量电池,android,accessibility,accessibilityservice,android-accessibility,Android,Accessibility,Accessibilityservice,Android Accessibility,我正在使用这些权限,从大约10个不同的应用程序中检索内容。有没有更好的方法来降低电池消耗 <accessibility-service android:description="@string/accessibility_service_description" android:accessibilityEventTypes="typeViewClicked|typeViewFocused|typeWindowStateChanged" android:accessibilityFeedb

我正在使用这些权限,从大约10个不同的应用程序中检索内容。有没有更好的方法来降低电池消耗

<accessibility-service
android:description="@string/accessibility_service_description"
android:accessibilityEventTypes="typeViewClicked|typeViewFocused|typeWindowStateChanged"
android:accessibilityFeedbackType="feedbackGeneric"
android:notificationTimeout="100"
android:canRetrieveWindowContent="true"
xmlns:android="http://schemas.android.com/apk/res/android" />

我建议你重新考虑你对电池消耗的研究。不要说:

我的服务总共消耗多少电池

相反,我认为:

我的服务每分钟消耗多少电池

请记住,您的服务在应用程序之上保持活动状态。它一直在运行。因此,预计您的辅助功能服务将比其他应用程序消耗更多的电池

尽管如此,你提供的信息是没有帮助的。这些都不是罪魁祸首。基本配置对电池消耗的影响非常小,只有在应用程序的性质发生变化(您希望它做其他事情)时才能进行更改。不,没有金块配置机制来节省电池。这是一个错误的问题。您想问的问题类型有:

我的应用程序使用了多少数据,我可以等到它连接到Wi-Fi吗?我是否做了很多长时间的计算,这些计算可能会被保存起来并一次完成?我的服务是否导致屏幕打开的时间过长


除此之外,与其他类型的应用程序相比,无障碍服务的本质就是要消耗更多的电池,对此您无能为力。

在说明电池寿命之前,您是如何测试的?
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
    final int eventType = event.getEventType();
    String eventText = null;
    switch(eventType) {
        case AccessibilityEvent.TYPE_VIEW_CLICKED:
            eventText = "Focused: ";
            break;
        case AccessibilityEvent.TYPE_VIEW_FOCUSED:
            eventText = "Focused: ";
            break;
    }

    eventText = eventText + event.getContentDescription();

    // Do something nifty with this text, like speak the composed string
    // back to the user.
    speakToUser(eventText);
    ...
}