android frameworks 开发总结之十二

1.android电池充满电剩余时间

android电量还需多长时间充满时间计算参考下面链接:

[Android Framework] 8.1 Battery系列(四) 电量还需多长时间充满时间计算_batteryinfo.java-CSDN博客

从这个链接中可以看出android默认的计算方式为平均计算每1%所需要的时间,在乘以剩余的电量。在这种情况下,Arashi有碰到从70%到75%用时三十多秒,这样计算出来的充满的时间大概需要六分钟,实际上这个时间是错误的,有可能还会出现电池电量越低所需要的时间越短。所以Arashi中有一个从HAL上报的充满电需要的时间。

frameworks/base/services/core/java/com/android/server/BatteryService.java

private final class HealthHalCallback extends IHealthInfoCallback.Stub
            implements HealthServiceWrapper.Callback {
        @Override public void healthInfoChanged(android.hardware.health.V2_0.HealthInfo props) {
            android.hardware.health.V2_1.HealthInfo propsLatest =
                    new android.hardware.health.V2_1.HealthInfo();
            propsLatest.legacy = props;

            ….
            BatteryService.this.update(propsLatest);
        }

        @Override public void healthInfoChanged_2_1(android.hardware.health.V2_1.HealthInfo props) {
            BatteryService.this.update(props);  //Arashi使用HealthInfo v2.1,所以在这个方法中更新. props中有一个batteryChargeTimeToFullNowSeconds变量为充满的需要的时间
        }

frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java

@Override
    public long computeChargeTimeRemaining(long curTime) {
        if (mOnBattery) {
            // Not yet working.
            return -1;
        }
        if (mBatteryTimeToFullSeconds >= 0) {
            return mBatteryTimeToFullSeconds * (1000 * 1000); // s to us
        }else{
            return -1;
        }
    }

2.Android设置蓝牙默认状态ON/OFF

android默认状态下,开机后蓝牙的状态是ON的状态,修改默认状态的方式:

修改frameworks/base/packages/SettingsProvider/res/values/defaults.xml文件中的”def_bluetooth_on“的值,或者是在overlay 中修改。 其它属性的默认值也是在这两个

你可能感兴趣的:(android)