Fields Summary |
---|
public static final String | POWER_NONENo power consumption, or accounted for elsewhere. |
public static final String | POWER_CPU_IDLEPower consumption when CPU is in power collapse mode. |
public static final String | POWER_CPU_AWAKEPower consumption when CPU is awake (when a wake lock is held). This
should be 0 on devices that can go into full CPU power collapse even
when a wake lock is held. Otherwise, this is the power consumption in
addition to POWERR_CPU_IDLE due to a wake lock being held but with no
CPU activity. |
public static final String | POWER_CPU_ACTIVEPower consumption when CPU is in power collapse mode. |
public static final String | POWER_WIFI_SCANPower consumption when WiFi driver is scanning for networks. |
public static final String | POWER_WIFI_ONPower consumption when WiFi driver is on. |
public static final String | POWER_WIFI_ACTIVEPower consumption when WiFi driver is transmitting/receiving. |
public static final String | POWER_GPS_ONPower consumption when GPS is on. |
public static final String | POWER_BLUETOOTH_ONPower consumption when Bluetooth driver is on. |
public static final String | POWER_BLUETOOTH_ACTIVEPower consumption when Bluetooth driver is transmitting/receiving. |
public static final String | POWER_BLUETOOTH_AT_CMDPower consumption when Bluetooth driver gets an AT command. |
public static final String | POWER_SCREEN_ONPower consumption when screen is on, not including the backlight power. |
public static final String | POWER_RADIO_ONPower consumption when cell radio is on but not on a call. |
public static final String | POWER_RADIO_SCANNINGPower consumption when cell radio is hunting for a signal. |
public static final String | POWER_RADIO_ACTIVEPower consumption when talking on the phone. |
public static final String | POWER_SCREEN_FULLPower consumption at full backlight brightness. If the backlight is at
50% brightness, then this should be multiplied by 0.5 |
public static final String | POWER_AUDIOPower consumed by the audio hardware when playing back audio content. This is in addition
to the CPU power, probably due to a DSP and / or amplifier. |
public static final String | POWER_VIDEOPower consumed by any media hardware when playing back video content. This is in addition
to the CPU power, probably due to a DSP. |
public static final String | POWER_FLASHLIGHTPower consumption when camera flashlight is on. |
public static final String | POWER_CPU_SPEEDS |
public static final String | POWER_WIFI_BATCHED_SCANPower consumed by wif batched scaning. Broken down into bins by
Channels Scanned per Hour. May do 1-720 scans per hour of 1-100 channels
for a range of 1-72,000. Going logrithmic (1-8, 9-64, 65-512, 513-4096, 4097-)! |
public static final String | POWER_BATTERY_CAPACITYBattery capacity in milliAmpHour (mAh). |
static final HashMap | sPowerMap |
private static final String | TAG_DEVICE |
private static final String | TAG_ITEM |
private static final String | TAG_ARRAY |
private static final String | TAG_ARRAYITEM |
private static final String | ATTR_NAME |
Methods Summary |
---|
public double | getAveragePower(java.lang.String type)Returns the average current in mA consumed by the subsystem
if (sPowerMap.containsKey(type)) {
Object data = sPowerMap.get(type);
if (data instanceof Double[]) {
return ((Double[])data)[0];
} else {
return (Double) sPowerMap.get(type);
}
} else {
return 0;
}
|
public double | getAveragePower(java.lang.String type, int level)Returns the average current in mA consumed by the subsystem for the given level.
if (sPowerMap.containsKey(type)) {
Object data = sPowerMap.get(type);
if (data instanceof Double[]) {
final Double[] values = (Double[]) data;
if (values.length > level && level >= 0) {
return values[level];
} else if (level < 0) {
return 0;
} else {
return values[values.length - 1];
}
} else {
return (Double) data;
}
} else {
return 0;
}
|
public double | getBatteryCapacity()Returns the battery capacity, if available, in milli Amp Hours. If not available,
it returns zero.
return getAveragePower(POWER_BATTERY_CAPACITY);
|
public int | getNumSpeedSteps()Returns the number of speeds that the CPU can be run at.
Object value = sPowerMap.get(POWER_CPU_SPEEDS);
if (value != null && value instanceof Double[]) {
return ((Double[])value).length;
}
return 1; // Only one speed
|
private void | readPowerValuesFromXml(android.content.Context context)
int id = com.android.internal.R.xml.power_profile;
XmlResourceParser parser = context.getResources().getXml(id);
boolean parsingArray = false;
ArrayList<Double> array = new ArrayList<Double>();
String arrayName = null;
try {
XmlUtils.beginDocument(parser, TAG_DEVICE);
while (true) {
XmlUtils.nextElement(parser);
String element = parser.getName();
if (element == null) break;
if (parsingArray && !element.equals(TAG_ARRAYITEM)) {
// Finish array
sPowerMap.put(arrayName, array.toArray(new Double[array.size()]));
parsingArray = false;
}
if (element.equals(TAG_ARRAY)) {
parsingArray = true;
array.clear();
arrayName = parser.getAttributeValue(null, ATTR_NAME);
} else if (element.equals(TAG_ITEM) || element.equals(TAG_ARRAYITEM)) {
String name = null;
if (!parsingArray) name = parser.getAttributeValue(null, ATTR_NAME);
if (parser.next() == XmlPullParser.TEXT) {
String power = parser.getText();
double value = 0;
try {
value = Double.valueOf(power);
} catch (NumberFormatException nfe) {
}
if (element.equals(TAG_ITEM)) {
sPowerMap.put(name, value);
} else if (parsingArray) {
array.add(value);
}
}
}
}
if (parsingArray) {
sPowerMap.put(arrayName, array.toArray(new Double[array.size()]));
}
} catch (XmlPullParserException e) {
throw new RuntimeException(e);
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
parser.close();
}
|