【问题标题】:benchmarking battery android基准电池安卓
【发布时间】:2016-10-10 03:19:13
【问题描述】:

我正在制作一个面部识别应用程序,我想在其中做一些基准测试。在测量电池方面需要一些帮助。我正在尝试这样的事情:

    public float calcBattery(float init){
        float batteryValue;
        int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
        int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
        batteryValue = (init - (level / (float)10000));
        if (batteryValue<0) batteryValue*=-1;
        return batteryValue;
    }

但由于我的应用程序运行时间为 2 到 17 秒,具体取决于面数,因此击球手水平似乎始终没有变化。我想知道是否有合适的方法在没有第三方的情况下在 android 上进行电池基准测试。

提前致谢

编辑:

我希望有一些比电池电量更精确的电池测量方法,例如 mA。而且我不知道如何以 mA 为单位进行测量,但我知道这是可能的,因为有些应用可以这样做。

【问题讨论】:

    标签: android benchmarking battery measure


    【解决方案1】:

    要进行任何具有实际意义的基准测试,您将需要运行您的应用程序的时间要长得多。您应该能够包含一个循环,该循环将继续运行,直到通过给定的百分比,或者您可以只制作一个中断循环按钮。我的建议是目标是从 90% 到 10% 左右。关于电池寿命指标的一件事是它们是非线性的——Is Battery Life Linear?。此外,您应该确保禁用尽可能多的其他应用程序和后台进程(非系统关键),以消除其他应用程序消耗您电池的可能性。

    跟踪电池从 90% 消耗到 10% 需要多长时间。如果您将时间除以 80,那么您就会知道应用使用 1 个百分点的电池寿命平均需要多长时间。

    让我们使用一些虚构的数字来使数学更加具体。说 1 小时后,面糊从 90% 变为 10%。一小时是3600秒。 3600 / 80 = 45。因此,您的应用平均每 45 秒消耗 1% 的电池寿命。

    请记住,设备种类繁多,因此最好在不同质量的几个不同设备上重复此操作。

    还有一点要记住。如果您的应用程序强度足以开始加热手机,而不仅仅是在运行时加热(我认为这可能会发生在面部识别中),那么电池会在变热时开始更快地耗尽。如果是这种情况,您可能应该尝试做很多较短的试验(一次可能 5%)。这并不理想,因为它增加了更多出错的机会,但可能是必要的。在这种情况下,您将除以 5 而不是 80,然后对您的试验进行平均。

    【讨论】:

    • 谢谢。但即使我接受了你的建议,我也希望有一些比电池电量更精确的电池测量方法,例如 mA。而且我不知道如何衡量。
    • 好吧,从最初的问题看不清楚。我不确定,但您可能能够以与 OP 在这个问题中获得 mV 相同的方式获得 mA stackoverflow.com/questions/28043112/… 我会说但是我不确定您希望通过获得该数字来实现什么。在其硬件中具有不同计算能力级别的不同设备将以不同的速率使用功率。此外,安培是电流单位,它不会告诉您设备中还剩多少电量,而不会告诉您在给定时刻它使用电力的速度。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多