
应用消耗的电量 = CPU每个频率等级下工作的时间比例/CPU工作总时间 * 应用运行总时间`
设置中的电量排行在开始使用耗电板块时考虑电量情况,例如电量过低时不要开启gps定位
BatteryManager batteryManager = (BatteryManager)getSystemService(BATTERY_SERVICE);得到电量数值,在0-100范围内int battery = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY);在耗电时监听电池电量明显变化,可以注册广播 Intent.ACTION_BATTERY_LOW / Intent.ACTION_BATTERY_OKAY实现
此外还可以注册广播 Intent.ACTION_POWER_CONNECTED / Intent.ACTION_POWER_DISCONNECTED监听充电行为
public class PowerConnectionReceiver extends BroadcastReceiver { public static final ACTION_01 = Intent.ACTION_POWER_CONNECTED; public static final ACTION_02 = Intent.ACTION_POWER_DISCONNECTED; @Override public void onReceive(Context context, Intent intent) { int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, -1); 能否在充电 = (status == BatteryManager.BATTERY_STATUS_CHARGING) || status == BatteryManager.BATTERY_STATUS_FULL; 充电类型 = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1); USB充电 = (充电类型 == BATTERY_PLUGGED_USB); AC电源充电 = (充电类型 == BATTERY_PLUGGED_AC); }}Android Sutido 集成的代码规范提醒工具,用来检测代码、xml布局文件、去除多余资源
参考:
/frameworks/base/services/core/java/com/android/server/job/controllers/BatteryController.java
参考:https://blog.csdn.net/zhaodecang/article/details/53345861