android - 基准测试电池安卓

标签 android benchmarking battery measure

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

    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 为单位进行测量,但我知道这是可能的,因为有些应用程序可以这样做。

最佳答案

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

记录电池电量从 90% 耗尽到 10% 需要多长时间。如果将时间除以 80,则得到应用使用 1 个百分点的电池生命周期平均需要多长时间。

让我们使用一些虚构的数字来使数学更具体。说 1 小时后击球手从 90% 到 10%。一个小时是 3600 秒。 3600/80 = 45。因此,您的应用平均每 45 秒消耗 1% 的电池生命周期。

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

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

关于android - 基准测试电池安卓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39903291/

相关文章:

android - 如何使状态栏变为白色并带有黑色图标?

android - Firebase InApp 消息传递测试

java - Java 获取数组列表中前 k 项的最有效方法

php - 我在哪里可以分享我对 elasticsearch php 供应商的基准测试结果

ios - 在MVVM模型中使用Reactive Cocoa的iOS应用程序是否会比MVC模型中的普通应用程序消耗更多功率?

iphone - 打开 TCP 连接且不发送或接收数据是否会影响 iPhone 电池?

android - EditText数组列表

android - ontouch逐帧动画

c++ - 二叉树基准测试结果

macos - macOS 中的电池状态 API?