public class com.android.internal.os.BatteryStatsHelper
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.android.internal.os.BatteryStatsHelper
super_class: java.lang.Object
{
static final boolean DEBUG;
descriptor: Z
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final java.lang.String TAG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static android.os.BatteryStats sStatsXfer;
descriptor: Landroid/os/BatteryStats;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static android.content.Intent sBatteryBroadcastXfer;
descriptor: Landroid/content/Intent;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static android.util.ArrayMap<java.io.File, android.os.BatteryStats> sFileXfer;
descriptor: Landroid/util/ArrayMap;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: Landroid/util/ArrayMap<Ljava/io/File;Landroid/os/BatteryStats;>;
private final android.content.Context mContext;
descriptor: Landroid/content/Context;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean mCollectBatteryBroadcast;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean mWifiOnly;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private com.android.internal.app.IBatteryStats mBatteryInfo;
descriptor: Lcom/android/internal/app/IBatteryStats;
flags: (0x0002) ACC_PRIVATE
private android.os.BatteryStats mStats;
descriptor: Landroid/os/BatteryStats;
flags: (0x0002) ACC_PRIVATE
private android.content.Intent mBatteryBroadcast;
descriptor: Landroid/content/Intent;
flags: (0x0002) ACC_PRIVATE
private com.android.internal.os.PowerProfile mPowerProfile;
descriptor: Lcom/android/internal/os/PowerProfile;
flags: (0x0002) ACC_PRIVATE
private java.lang.String[] mSystemPackageArray;
descriptor: [Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String[] mServicepackageArray;
descriptor: [Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private android.content.pm.PackageManager mPackageManager;
descriptor: Landroid/content/pm/PackageManager;
flags: (0x0002) ACC_PRIVATE
private final java.util.List<com.android.internal.os.BatterySipper> mUsageList;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lcom/android/internal/os/BatterySipper;>;
private final java.util.List<com.android.internal.os.BatterySipper> mWifiSippers;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lcom/android/internal/os/BatterySipper;>;
private final java.util.List<com.android.internal.os.BatterySipper> mBluetoothSippers;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lcom/android/internal/os/BatterySipper;>;
private final android.util.SparseArray<java.util.List<com.android.internal.os.BatterySipper>> mUserSippers;
descriptor: Landroid/util/SparseArray;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Landroid/util/SparseArray<Ljava/util/List<Lcom/android/internal/os/BatterySipper;>;>;
private final java.util.List<com.android.internal.os.BatterySipper> mMobilemsppList;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lcom/android/internal/os/BatterySipper;>;
private int mStatsType;
descriptor: I
flags: (0x0002) ACC_PRIVATE
long mRawRealtimeUs;
descriptor: J
flags: (0x0000)
long mRawUptimeUs;
descriptor: J
flags: (0x0000)
long mBatteryRealtimeUs;
descriptor: J
flags: (0x0000)
long mBatteryUptimeUs;
descriptor: J
flags: (0x0000)
long mTypeBatteryRealtimeUs;
descriptor: J
flags: (0x0000)
long mTypeBatteryUptimeUs;
descriptor: J
flags: (0x0000)
long mBatteryTimeRemainingUs;
descriptor: J
flags: (0x0000)
long mChargeTimeRemainingUs;
descriptor: J
flags: (0x0000)
private long mStatsPeriod;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private double mMaxPower;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double mMaxRealPower;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double mComputedPower;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double mTotalPower;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double mMinDrainedPower;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double mMaxDrainedPower;
descriptor: D
flags: (0x0002) ACC_PRIVATE
com.android.internal.os.PowerCalculator mCpuPowerCalculator;
descriptor: Lcom/android/internal/os/PowerCalculator;
flags: (0x0000)
com.android.internal.os.PowerCalculator mWakelockPowerCalculator;
descriptor: Lcom/android/internal/os/PowerCalculator;
flags: (0x0000)
com.android.internal.os.MobileRadioPowerCalculator mMobileRadioPowerCalculator;
descriptor: Lcom/android/internal/os/MobileRadioPowerCalculator;
flags: (0x0000)
com.android.internal.os.PowerCalculator mWifiPowerCalculator;
descriptor: Lcom/android/internal/os/PowerCalculator;
flags: (0x0000)
com.android.internal.os.PowerCalculator mBluetoothPowerCalculator;
descriptor: Lcom/android/internal/os/PowerCalculator;
flags: (0x0000)
com.android.internal.os.PowerCalculator mSensorPowerCalculator;
descriptor: Lcom/android/internal/os/PowerCalculator;
flags: (0x0000)
com.android.internal.os.PowerCalculator mCameraPowerCalculator;
descriptor: Lcom/android/internal/os/PowerCalculator;
flags: (0x0000)
com.android.internal.os.PowerCalculator mFlashlightPowerCalculator;
descriptor: Lcom/android/internal/os/PowerCalculator;
flags: (0x0000)
com.android.internal.os.PowerCalculator mMemoryPowerCalculator;
descriptor: Lcom/android/internal/os/PowerCalculator;
flags: (0x0000)
com.android.internal.os.PowerCalculator mMediaPowerCalculator;
descriptor: Lcom/android/internal/os/PowerCalculator;
flags: (0x0000)
boolean mHasWifiPowerReporting;
descriptor: Z
flags: (0x0000)
boolean mHasBluetoothPowerReporting;
descriptor: Z
flags: (0x0000)
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lcom/android/internal/os/BatteryStatsHelper;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
putstatic com.android.internal.os.BatteryStatsHelper.TAG:Ljava/lang/String;
1: new android.util.ArrayMap
dup
invokespecial android.util.ArrayMap.<init>:()V
putstatic com.android.internal.os.BatteryStatsHelper.sFileXfer:Landroid/util/ArrayMap;
return
LocalVariableTable:
Start End Slot Name Signature
public static boolean checkWifiOnly(android.content.Context);
descriptor: (Landroid/content/Context;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
1: ldc "connectivity"
2: invokevirtual android.content.Context.getSystemService:(Ljava/lang/String;)Ljava/lang/Object;
checkcast android.net.ConnectivityManager
astore 1
start local 1 3: aload 1
ifnonnull 5
4: iconst_0
ireturn
5: StackMap locals: android.net.ConnectivityManager
StackMap stack:
aload 1
iconst_0
invokevirtual android.net.ConnectivityManager.isNetworkSupported:(I)Z
ifeq 6
iconst_0
goto 7
StackMap locals:
StackMap stack:
6: iconst_1
StackMap locals:
StackMap stack: int
7: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 context Landroid/content/Context;
3 8 1 cm Landroid/net/ConnectivityManager;
MethodParameters:
Name Flags
context
public static boolean checkHasWifiPowerReporting(android.os.BatteryStats, com.android.internal.os.PowerProfile);
descriptor: (Landroid/os/BatteryStats;Lcom/android/internal/os/PowerProfile;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.os.BatteryStats.hasWifiActivityReporting:()Z
ifeq 5
1: aload 1
ldc "wifi.controller.idle"
invokevirtual com.android.internal.os.PowerProfile.getAveragePower:(Ljava/lang/String;)D
dconst_0
dcmpl
ifeq 5
2: aload 1
ldc "wifi.controller.rx"
invokevirtual com.android.internal.os.PowerProfile.getAveragePower:(Ljava/lang/String;)D
dconst_0
dcmpl
ifeq 5
3: aload 1
ldc "wifi.controller.tx"
invokevirtual com.android.internal.os.PowerProfile.getAveragePower:(Ljava/lang/String;)D
dconst_0
dcmpl
ifeq 5
4: iconst_1
ireturn
StackMap locals:
StackMap stack:
5: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 stats Landroid/os/BatteryStats;
0 6 1 profile Lcom/android/internal/os/PowerProfile;
MethodParameters:
Name Flags
stats
profile
public static boolean checkHasBluetoothPowerReporting(android.os.BatteryStats, com.android.internal.os.PowerProfile);
descriptor: (Landroid/os/BatteryStats;Lcom/android/internal/os/PowerProfile;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.os.BatteryStats.hasBluetoothActivityReporting:()Z
ifeq 5
1: aload 1
ldc "bluetooth.controller.idle"
invokevirtual com.android.internal.os.PowerProfile.getAveragePower:(Ljava/lang/String;)D
dconst_0
dcmpl
ifeq 5
2: aload 1
ldc "bluetooth.controller.rx"
invokevirtual com.android.internal.os.PowerProfile.getAveragePower:(Ljava/lang/String;)D
dconst_0
dcmpl
ifeq 5
3: aload 1
ldc "bluetooth.controller.tx"
invokevirtual com.android.internal.os.PowerProfile.getAveragePower:(Ljava/lang/String;)D
dconst_0
dcmpl
ifeq 5
4: iconst_1
ireturn
StackMap locals:
StackMap stack:
5: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 stats Landroid/os/BatteryStats;
0 6 1 profile Lcom/android/internal/os/PowerProfile;
MethodParameters:
Name Flags
stats
profile
public void <init>(android.content.Context);
descriptor: (Landroid/content/Context;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
invokespecial com.android.internal.os.BatteryStatsHelper.<init>:(Landroid/content/Context;Z)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/android/internal/os/BatteryStatsHelper;
0 2 1 context Landroid/content/Context;
MethodParameters:
Name Flags
context
public void <init>(android.content.Context, boolean);
descriptor: (Landroid/content/Context;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iload 2
aload 1
invokestatic com.android.internal.os.BatteryStatsHelper.checkWifiOnly:(Landroid/content/Context;)Z
invokespecial com.android.internal.os.BatteryStatsHelper.<init>:(Landroid/content/Context;ZZ)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/android/internal/os/BatteryStatsHelper;
0 2 1 context Landroid/content/Context;
0 2 2 collectBatteryBroadcast Z
MethodParameters:
Name Flags
context
collectBatteryBroadcast
public void <init>(android.content.Context, boolean, boolean);
descriptor: (Landroid/content/Context;ZZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=4
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problems: \n\tcom.android.internal.R.array cannot be resolved to a variable\n\tcom.android.internal.R.array cannot be resolved to a variable\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/android/internal/os/BatteryStatsHelper;
MethodParameters:
Name Flags
context
collectBatteryBroadcast
wifiOnly
public void storeStatsHistoryInFile(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=8, args_size=2
start local 0 start local 1 0: getstatic com.android.internal.os.BatteryStatsHelper.sFileXfer:Landroid/util/ArrayMap;
dup
astore 2
monitorenter
1: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mContext:Landroid/content/Context;
aload 1
invokestatic com.android.internal.os.BatteryStatsHelper.makeFilePath:(Landroid/content/Context;Ljava/lang/String;)Ljava/io/File;
astore 3
start local 3 2: getstatic com.android.internal.os.BatteryStatsHelper.sFileXfer:Landroid/util/ArrayMap;
aload 3
aload 0
invokevirtual com.android.internal.os.BatteryStatsHelper.getStats:()Landroid/os/BatteryStats;
invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aconst_null
astore 4
start local 4 4: new java.io.FileOutputStream
dup
aload 3
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
astore 4
5: invokestatic android.os.Parcel.obtain:()Landroid/os/Parcel;
astore 5
start local 5 6: aload 0
invokevirtual com.android.internal.os.BatteryStatsHelper.getStats:()Landroid/os/BatteryStats;
aload 5
iconst_0
invokevirtual android.os.BatteryStats.writeToParcelWithoutUids:(Landroid/os/Parcel;I)V
7: aload 5
invokevirtual android.os.Parcel.marshall:()[B
astore 6
start local 6 8: aload 4
aload 6
invokevirtual java.io.FileOutputStream.write:([B)V
end local 6 end local 5 9: goto 22
StackMap locals: com.android.internal.os.BatteryStatsHelper java.lang.String android.util.ArrayMap java.io.File java.io.FileOutputStream
StackMap stack: java.io.IOException
10: astore 5
start local 5 11: getstatic com.android.internal.os.BatteryStatsHelper.TAG:Ljava/lang/String;
ldc "Unable to write history to file"
aload 5
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 5 12: aload 4
ifnull 26
13: aload 4
invokevirtual java.io.FileOutputStream.close:()V
14: goto 26
StackMap locals:
StackMap stack: java.io.IOException
15: pop
goto 26
16: StackMap locals:
StackMap stack: java.lang.Throwable
astore 7
17: aload 4
ifnull 21
18: aload 4
invokevirtual java.io.FileOutputStream.close:()V
19: goto 21
StackMap locals: com.android.internal.os.BatteryStatsHelper java.lang.String android.util.ArrayMap java.io.File java.io.FileOutputStream top top java.lang.Throwable
StackMap stack: java.io.IOException
20: pop
21: StackMap locals:
StackMap stack:
aload 7
athrow
22: StackMap locals: com.android.internal.os.BatteryStatsHelper java.lang.String android.util.ArrayMap java.io.File java.io.FileOutputStream
StackMap stack:
aload 4
ifnull 26
23: aload 4
invokevirtual java.io.FileOutputStream.close:()V
24: goto 26
StackMap locals:
StackMap stack: java.io.IOException
25: pop
end local 4 end local 3 26: StackMap locals:
StackMap stack:
aload 2
monitorexit
27: goto 30
StackMap locals:
StackMap stack: java.lang.Throwable
28: aload 2
monitorexit
29: athrow
30: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lcom/android/internal/os/BatteryStatsHelper;
0 31 1 fname Ljava/lang/String;
2 26 3 path Ljava/io/File;
4 26 4 fout Ljava/io/FileOutputStream;
6 9 5 hist Landroid/os/Parcel;
8 9 6 histData [B
11 12 5 e Ljava/io/IOException;
Exception table:
from to target type
4 9 10 Class java.io.IOException
13 14 15 Class java.io.IOException
4 12 16 any
18 19 20 Class java.io.IOException
23 24 25 Class java.io.IOException
1 27 28 any
28 29 28 any
MethodParameters:
Name Flags
fname
public static android.os.BatteryStats statsFromFile(android.content.Context, java.lang.String);
descriptor: (Landroid/content/Context;Ljava/lang/String;)Landroid/os/BatteryStats;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=10, args_size=2
start local 0 start local 1 0: getstatic com.android.internal.os.BatteryStatsHelper.sFileXfer:Landroid/util/ArrayMap;
dup
astore 2
monitorenter
1: aload 0
aload 1
invokestatic com.android.internal.os.BatteryStatsHelper.makeFilePath:(Landroid/content/Context;Ljava/lang/String;)Ljava/io/File;
astore 3
start local 3 2: getstatic com.android.internal.os.BatteryStatsHelper.sFileXfer:Landroid/util/ArrayMap;
aload 3
invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast android.os.BatteryStats
astore 4
start local 4 3: aload 4
ifnull 6
4: aload 4
aload 2
monitorexit
5: areturn
6: StackMap locals: android.util.ArrayMap java.io.File android.os.BatteryStats
StackMap stack:
aconst_null
astore 5
start local 5 7: new java.io.FileInputStream
dup
aload 3
invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
astore 5
8: aload 5
invokestatic com.android.internal.os.BatteryStatsHelper.readFully:(Ljava/io/FileInputStream;)[B
astore 6
start local 6 9: invokestatic android.os.Parcel.obtain:()Landroid/os/Parcel;
astore 7
start local 7 10: aload 7
aload 6
iconst_0
aload 6
arraylength
invokevirtual android.os.Parcel.unmarshall:([BII)V
11: aload 7
iconst_0
invokevirtual android.os.Parcel.setDataPosition:(I)V
12: getstatic com.android.internal.os.BatteryStatsImpl.CREATOR:Landroid/os/Parcelable$Creator;
aload 7
invokeinterface android.os.Parcelable$Creator.createFromParcel:(Landroid/os/Parcel;)Ljava/lang/Object;
checkcast android.os.BatteryStats
astore 9
13: aload 5
ifnull 17
14: aload 5
invokevirtual java.io.FileInputStream.close:()V
15: goto 17
StackMap locals: android.content.Context java.lang.String android.util.ArrayMap java.io.File android.os.BatteryStats java.io.FileInputStream byte[] android.os.Parcel top android.os.BatteryStats
StackMap stack: java.io.IOException
16: pop
17: StackMap locals:
StackMap stack:
aload 2
monitorexit
18: aload 9
areturn
end local 7 end local 6 19: StackMap locals: android.content.Context java.lang.String android.util.ArrayMap java.io.File android.os.BatteryStats java.io.FileInputStream
StackMap stack: java.io.IOException
astore 6
start local 6 20: getstatic com.android.internal.os.BatteryStatsHelper.TAG:Ljava/lang/String;
ldc "Unable to read history to file"
aload 6
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 6 21: aload 5
ifnull 31
22: aload 5
invokevirtual java.io.FileInputStream.close:()V
23: goto 31
StackMap locals:
StackMap stack: java.io.IOException
24: pop
goto 31
25: StackMap locals:
StackMap stack: java.lang.Throwable
astore 8
26: aload 5
ifnull 30
27: aload 5
invokevirtual java.io.FileInputStream.close:()V
28: goto 30
StackMap locals: android.content.Context java.lang.String android.util.ArrayMap java.io.File android.os.BatteryStats java.io.FileInputStream top top java.lang.Throwable
StackMap stack: java.io.IOException
29: pop
30: StackMap locals:
StackMap stack:
aload 8
athrow
end local 5 end local 4 end local 3 31: StackMap locals: android.content.Context java.lang.String android.util.ArrayMap
StackMap stack:
aload 2
monitorexit
32: goto 35
StackMap locals:
StackMap stack: java.lang.Throwable
33: aload 2
monitorexit
34: athrow
35: StackMap locals:
StackMap stack:
ldc "batterystats"
invokestatic android.os.ServiceManager.getService:(Ljava/lang/String;)Landroid/os/IBinder;
36: invokestatic com.android.internal.app.IBatteryStats$Stub.asInterface:(Landroid/os/IBinder;)Lcom/android/internal/app/IBatteryStats;
invokestatic com.android.internal.os.BatteryStatsHelper.getStats:(Lcom/android/internal/app/IBatteryStats;)Lcom/android/internal/os/BatteryStatsImpl;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 context Landroid/content/Context;
0 37 1 fname Ljava/lang/String;
2 31 3 path Ljava/io/File;
3 31 4 stats Landroid/os/BatteryStats;
7 31 5 fin Ljava/io/FileInputStream;
9 19 6 data [B
10 19 7 parcel Landroid/os/Parcel;
20 21 6 e Ljava/io/IOException;
Exception table:
from to target type
14 15 16 Class java.io.IOException
7 13 19 Class java.io.IOException
22 23 24 Class java.io.IOException
7 13 25 any
19 21 25 any
27 28 29 Class java.io.IOException
1 5 33 any
6 18 33 any
19 32 33 any
33 34 33 any
MethodParameters:
Name Flags
context
fname
public static void dropFile(android.content.Context, java.lang.String);
descriptor: (Landroid/content/Context;Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic com.android.internal.os.BatteryStatsHelper.makeFilePath:(Landroid/content/Context;Ljava/lang/String;)Ljava/io/File;
invokevirtual java.io.File.delete:()Z
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 context Landroid/content/Context;
0 2 1 fname Ljava/lang/String;
MethodParameters:
Name Flags
context
fname
private static java.io.File makeFilePath(android.content.Context, java.lang.String);
descriptor: (Landroid/content/Context;Ljava/lang/String;)Ljava/io/File;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new java.io.File
dup
aload 0
invokevirtual android.content.Context.getFilesDir:()Ljava/io/File;
aload 1
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 context Landroid/content/Context;
0 1 1 fname Ljava/lang/String;
MethodParameters:
Name Flags
context
fname
public void clearStats();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
putfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/android/internal/os/BatteryStatsHelper;
public android.os.BatteryStats getStats();
descriptor: ()Landroid/os/BatteryStats;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
ifnonnull 2
1: aload 0
invokevirtual com.android.internal.os.BatteryStatsHelper.load:()V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/android/internal/os/BatteryStatsHelper;
public android.content.Intent getBatteryBroadcast();
descriptor: ()Landroid/content/Intent;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mBatteryBroadcast:Landroid/content/Intent;
ifnonnull 2
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mCollectBatteryBroadcast:Z
ifeq 2
1: aload 0
invokevirtual com.android.internal.os.BatteryStatsHelper.load:()V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mBatteryBroadcast:Landroid/content/Intent;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/android/internal/os/BatteryStatsHelper;
public com.android.internal.os.PowerProfile getPowerProfile();
descriptor: ()Lcom/android/internal/os/PowerProfile;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mPowerProfile:Lcom/android/internal/os/PowerProfile;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/android/internal/os/BatteryStatsHelper;
public void create(android.os.BatteryStats);
descriptor: (Landroid/os/BatteryStats;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new com.android.internal.os.PowerProfile
dup
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mContext:Landroid/content/Context;
invokespecial com.android.internal.os.PowerProfile.<init>:(Landroid/content/Context;)V
putfield com.android.internal.os.BatteryStatsHelper.mPowerProfile:Lcom/android/internal/os/PowerProfile;
1: aload 0
aload 1
putfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/android/internal/os/BatteryStatsHelper;
0 3 1 stats Landroid/os/BatteryStats;
MethodParameters:
Name Flags
stats
public void create(android.os.Bundle);
descriptor: (Landroid/os/Bundle;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 3
1: aload 0
getstatic com.android.internal.os.BatteryStatsHelper.sStatsXfer:Landroid/os/BatteryStats;
putfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
2: aload 0
getstatic com.android.internal.os.BatteryStatsHelper.sBatteryBroadcastXfer:Landroid/content/Intent;
putfield com.android.internal.os.BatteryStatsHelper.mBatteryBroadcast:Landroid/content/Intent;
3: StackMap locals:
StackMap stack:
aload 0
4: ldc "batterystats"
invokestatic android.os.ServiceManager.getService:(Ljava/lang/String;)Landroid/os/IBinder;
5: invokestatic com.android.internal.app.IBatteryStats$Stub.asInterface:(Landroid/os/IBinder;)Lcom/android/internal/app/IBatteryStats;
putfield com.android.internal.os.BatteryStatsHelper.mBatteryInfo:Lcom/android/internal/app/IBatteryStats;
6: aload 0
new com.android.internal.os.PowerProfile
dup
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mContext:Landroid/content/Context;
invokespecial com.android.internal.os.PowerProfile.<init>:(Landroid/content/Context;)V
putfield com.android.internal.os.BatteryStatsHelper.mPowerProfile:Lcom/android/internal/os/PowerProfile;
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/android/internal/os/BatteryStatsHelper;
0 8 1 icicle Landroid/os/Bundle;
MethodParameters:
Name Flags
icicle
public void storeState();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
putstatic com.android.internal.os.BatteryStatsHelper.sStatsXfer:Landroid/os/BatteryStats;
1: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mBatteryBroadcast:Landroid/content/Intent;
putstatic com.android.internal.os.BatteryStatsHelper.sBatteryBroadcastXfer:Landroid/content/Intent;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/android/internal/os/BatteryStatsHelper;
public static java.lang.String makemAh(double);
descriptor: (D)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=3, args_size=1
start local 0 0: dload 0
dconst_0
dcmpl
ifne 1
ldc "0"
areturn
1: StackMap locals:
StackMap stack:
dload 0
ldc 1.0E-5
dcmpg
ifge 4
2: ldc "%.8f"
astore 2
start local 2 3: goto 26
end local 2 StackMap locals:
StackMap stack:
4: dload 0
ldc 1.0E-4
dcmpg
ifge 7
5: ldc "%.7f"
astore 2
start local 2 6: goto 26
end local 2 StackMap locals:
StackMap stack:
7: dload 0
ldc 0.001
dcmpg
ifge 10
8: ldc "%.6f"
astore 2
start local 2 9: goto 26
end local 2 StackMap locals:
StackMap stack:
10: dload 0
ldc 0.01
dcmpg
ifge 13
11: ldc "%.5f"
astore 2
start local 2 12: goto 26
end local 2 StackMap locals:
StackMap stack:
13: dload 0
ldc 0.1
dcmpg
ifge 16
14: ldc "%.4f"
astore 2
start local 2 15: goto 26
end local 2 StackMap locals:
StackMap stack:
16: dload 0
dconst_1
dcmpg
ifge 19
17: ldc "%.3f"
astore 2
start local 2 18: goto 26
end local 2 StackMap locals:
StackMap stack:
19: dload 0
ldc 10.0
dcmpg
ifge 22
20: ldc "%.2f"
astore 2
start local 2 21: goto 26
end local 2 StackMap locals:
StackMap stack:
22: dload 0
ldc 100.0
dcmpg
ifge 25
23: ldc "%.1f"
astore 2
start local 2 24: goto 26
end local 2 25: StackMap locals:
StackMap stack:
ldc "%.0f"
astore 2
start local 2 26: StackMap locals: java.lang.String
StackMap stack:
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
aload 2
iconst_1
anewarray java.lang.Object
dup
iconst_0
dload 0
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
invokestatic java.lang.String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 power D
3 4 2 format Ljava/lang/String;
6 7 2 format Ljava/lang/String;
9 10 2 format Ljava/lang/String;
12 13 2 format Ljava/lang/String;
15 16 2 format Ljava/lang/String;
18 19 2 format Ljava/lang/String;
21 22 2 format Ljava/lang/String;
24 25 2 format Ljava/lang/String;
26 27 2 format Ljava/lang/String;
MethodParameters:
Name Flags
power
public void refreshStats(int, int);
descriptor: (II)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new android.util.SparseArray
dup
iconst_1
invokespecial android.util.SparseArray.<init>:(I)V
astore 3
start local 3 1: aload 3
iload 2
new android.os.UserHandle
dup
iload 2
invokespecial android.os.UserHandle.<init>:(I)V
invokevirtual android.util.SparseArray.put:(ILjava/lang/Object;)V
2: aload 0
iload 1
aload 3
invokevirtual com.android.internal.os.BatteryStatsHelper.refreshStats:(ILandroid/util/SparseArray;)V
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/android/internal/os/BatteryStatsHelper;
0 4 1 statsType I
0 4 2 asUser I
1 4 3 users Landroid/util/SparseArray<Landroid/os/UserHandle;>;
MethodParameters:
Name Flags
statsType
asUser
public void refreshStats(int, java.util.List<android.os.UserHandle>);
descriptor: (ILjava/util/List;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokeinterface java.util.List.size:()I
istore 3
start local 3 1: new android.util.SparseArray
dup
iload 3
invokespecial android.util.SparseArray.<init>:(I)V
astore 4
start local 4 2: iconst_0
istore 5
start local 5 3: goto 7
4: StackMap locals: int android.util.SparseArray int
StackMap stack:
aload 2
iload 5
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast android.os.UserHandle
astore 6
start local 6 5: aload 4
aload 6
invokevirtual android.os.UserHandle.getIdentifier:()I
aload 6
invokevirtual android.util.SparseArray.put:(ILjava/lang/Object;)V
end local 6 6: iinc 5 1
StackMap locals:
StackMap stack:
7: iload 5
iload 3
if_icmplt 4
end local 5 8: aload 0
iload 1
aload 4
invokevirtual com.android.internal.os.BatteryStatsHelper.refreshStats:(ILandroid/util/SparseArray;)V
9: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/android/internal/os/BatteryStatsHelper;
0 10 1 statsType I
0 10 2 asUsers Ljava/util/List<Landroid/os/UserHandle;>;
1 10 3 n I
2 10 4 users Landroid/util/SparseArray<Landroid/os/UserHandle;>;
3 8 5 i I
5 6 6 userHandle Landroid/os/UserHandle;
Signature: (ILjava/util/List<Landroid/os/UserHandle;>;)V
MethodParameters:
Name Flags
statsType
asUsers
public void refreshStats(int, android.util.SparseArray<android.os.UserHandle>);
descriptor: (ILandroid/util/SparseArray;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
aload 2
invokestatic android.os.SystemClock.elapsedRealtime:()J
ldc 1000
lmul
1: invokestatic android.os.SystemClock.uptimeMillis:()J
ldc 1000
lmul
2: invokevirtual com.android.internal.os.BatteryStatsHelper.refreshStats:(ILandroid/util/SparseArray;JJ)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/android/internal/os/BatteryStatsHelper;
0 4 1 statsType I
0 4 2 asUsers Landroid/util/SparseArray<Landroid/os/UserHandle;>;
Signature: (ILandroid/util/SparseArray<Landroid/os/UserHandle;>;)V
MethodParameters:
Name Flags
statsType
asUsers
public void refreshStats(int, android.util.SparseArray<android.os.UserHandle>, long, );
descriptor: (ILandroid/util/SparseArray;JJ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=16, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 5 0: aload 0
invokevirtual com.android.internal.os.BatteryStatsHelper.getStats:()Landroid/os/BatteryStats;
pop
1: aload 0
dconst_0
putfield com.android.internal.os.BatteryStatsHelper.mMaxPower:D
2: aload 0
dconst_0
putfield com.android.internal.os.BatteryStatsHelper.mMaxRealPower:D
3: aload 0
dconst_0
putfield com.android.internal.os.BatteryStatsHelper.mComputedPower:D
4: aload 0
dconst_0
putfield com.android.internal.os.BatteryStatsHelper.mTotalPower:D
5: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUsageList:Ljava/util/List;
invokeinterface java.util.List.clear:()V
6: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mWifiSippers:Ljava/util/List;
invokeinterface java.util.List.clear:()V
7: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mBluetoothSippers:Ljava/util/List;
invokeinterface java.util.List.clear:()V
8: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUserSippers:Landroid/util/SparseArray;
invokevirtual android.util.SparseArray.clear:()V
9: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mMobilemsppList:Ljava/util/List;
invokeinterface java.util.List.clear:()V
10: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
ifnonnull 12
11: return
12: StackMap locals:
StackMap stack:
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mCpuPowerCalculator:Lcom/android/internal/os/PowerCalculator;
ifnonnull 14
13: aload 0
new com.android.internal.os.CpuPowerCalculator
dup
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mPowerProfile:Lcom/android/internal/os/PowerProfile;
invokespecial com.android.internal.os.CpuPowerCalculator.<init>:(Lcom/android/internal/os/PowerProfile;)V
putfield com.android.internal.os.BatteryStatsHelper.mCpuPowerCalculator:Lcom/android/internal/os/PowerCalculator;
14: StackMap locals:
StackMap stack:
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mCpuPowerCalculator:Lcom/android/internal/os/PowerCalculator;
invokevirtual com.android.internal.os.PowerCalculator.reset:()V
15: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mMemoryPowerCalculator:Lcom/android/internal/os/PowerCalculator;
ifnonnull 17
16: aload 0
new com.android.internal.os.MemoryPowerCalculator
dup
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mPowerProfile:Lcom/android/internal/os/PowerProfile;
invokespecial com.android.internal.os.MemoryPowerCalculator.<init>:(Lcom/android/internal/os/PowerProfile;)V
putfield com.android.internal.os.BatteryStatsHelper.mMemoryPowerCalculator:Lcom/android/internal/os/PowerCalculator;
17: StackMap locals:
StackMap stack:
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mMemoryPowerCalculator:Lcom/android/internal/os/PowerCalculator;
invokevirtual com.android.internal.os.PowerCalculator.reset:()V
18: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mWakelockPowerCalculator:Lcom/android/internal/os/PowerCalculator;
ifnonnull 20
19: aload 0
new com.android.internal.os.WakelockPowerCalculator
dup
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mPowerProfile:Lcom/android/internal/os/PowerProfile;
invokespecial com.android.internal.os.WakelockPowerCalculator.<init>:(Lcom/android/internal/os/PowerProfile;)V
putfield com.android.internal.os.BatteryStatsHelper.mWakelockPowerCalculator:Lcom/android/internal/os/PowerCalculator;
20: StackMap locals:
StackMap stack:
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mWakelockPowerCalculator:Lcom/android/internal/os/PowerCalculator;
invokevirtual com.android.internal.os.PowerCalculator.reset:()V
21: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mMobileRadioPowerCalculator:Lcom/android/internal/os/MobileRadioPowerCalculator;
ifnonnull 23
22: aload 0
new com.android.internal.os.MobileRadioPowerCalculator
dup
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mPowerProfile:Lcom/android/internal/os/PowerProfile;
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
invokespecial com.android.internal.os.MobileRadioPowerCalculator.<init>:(Lcom/android/internal/os/PowerProfile;Landroid/os/BatteryStats;)V
putfield com.android.internal.os.BatteryStatsHelper.mMobileRadioPowerCalculator:Lcom/android/internal/os/MobileRadioPowerCalculator;
23: StackMap locals:
StackMap stack:
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mMobileRadioPowerCalculator:Lcom/android/internal/os/MobileRadioPowerCalculator;
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
invokevirtual com.android.internal.os.MobileRadioPowerCalculator.reset:(Landroid/os/BatteryStats;)V
24: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mPowerProfile:Lcom/android/internal/os/PowerProfile;
invokestatic com.android.internal.os.BatteryStatsHelper.checkHasWifiPowerReporting:(Landroid/os/BatteryStats;Lcom/android/internal/os/PowerProfile;)Z
istore 7
start local 7 25: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mWifiPowerCalculator:Lcom/android/internal/os/PowerCalculator;
ifnull 26
iload 7
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mHasWifiPowerReporting:Z
if_icmpeq 31
26: StackMap locals: int
StackMap stack:
aload 0
iload 7
ifeq 28
27: new com.android.internal.os.WifiPowerCalculator
dup
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mPowerProfile:Lcom/android/internal/os/PowerProfile;
invokespecial com.android.internal.os.WifiPowerCalculator.<init>:(Lcom/android/internal/os/PowerProfile;)V
goto 29
28: StackMap locals:
StackMap stack: com.android.internal.os.BatteryStatsHelper
new com.android.internal.os.WifiPowerEstimator
dup
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mPowerProfile:Lcom/android/internal/os/PowerProfile;
invokespecial com.android.internal.os.WifiPowerEstimator.<init>:(Lcom/android/internal/os/PowerProfile;)V
29: StackMap locals: com.android.internal.os.BatteryStatsHelper int android.util.SparseArray long long int
StackMap stack: com.android.internal.os.BatteryStatsHelper com.android.internal.os.PowerCalculator
putfield com.android.internal.os.BatteryStatsHelper.mWifiPowerCalculator:Lcom/android/internal/os/PowerCalculator;
30: aload 0
iload 7
putfield com.android.internal.os.BatteryStatsHelper.mHasWifiPowerReporting:Z
31: StackMap locals:
StackMap stack:
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mWifiPowerCalculator:Lcom/android/internal/os/PowerCalculator;
invokevirtual com.android.internal.os.PowerCalculator.reset:()V
32: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
33: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mPowerProfile:Lcom/android/internal/os/PowerProfile;
34: invokestatic com.android.internal.os.BatteryStatsHelper.checkHasBluetoothPowerReporting:(Landroid/os/BatteryStats;Lcom/android/internal/os/PowerProfile;)Z
istore 8
start local 8 35: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mBluetoothPowerCalculator:Lcom/android/internal/os/PowerCalculator;
ifnull 37
36: iload 8
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mHasBluetoothPowerReporting:Z
if_icmpeq 39
37: StackMap locals: int
StackMap stack:
aload 0
new com.android.internal.os.BluetoothPowerCalculator
dup
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mPowerProfile:Lcom/android/internal/os/PowerProfile;
invokespecial com.android.internal.os.BluetoothPowerCalculator.<init>:(Lcom/android/internal/os/PowerProfile;)V
putfield com.android.internal.os.BatteryStatsHelper.mBluetoothPowerCalculator:Lcom/android/internal/os/PowerCalculator;
38: aload 0
iload 8
putfield com.android.internal.os.BatteryStatsHelper.mHasBluetoothPowerReporting:Z
39: StackMap locals:
StackMap stack:
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mBluetoothPowerCalculator:Lcom/android/internal/os/PowerCalculator;
invokevirtual com.android.internal.os.PowerCalculator.reset:()V
40: aload 0
new com.android.internal.os.SensorPowerCalculator
dup
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mPowerProfile:Lcom/android/internal/os/PowerProfile;
41: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mContext:Landroid/content/Context;
ldc "sensor"
invokevirtual android.content.Context.getSystemService:(Ljava/lang/String;)Ljava/lang/Object;
checkcast android.hardware.SensorManager
42: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
lload 3
iload 1
invokespecial com.android.internal.os.SensorPowerCalculator.<init>:(Lcom/android/internal/os/PowerProfile;Landroid/hardware/SensorManager;Landroid/os/BatteryStats;JI)V
43: putfield com.android.internal.os.BatteryStatsHelper.mSensorPowerCalculator:Lcom/android/internal/os/PowerCalculator;
44: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mSensorPowerCalculator:Lcom/android/internal/os/PowerCalculator;
invokevirtual com.android.internal.os.PowerCalculator.reset:()V
45: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mCameraPowerCalculator:Lcom/android/internal/os/PowerCalculator;
ifnonnull 47
46: aload 0
new com.android.internal.os.CameraPowerCalculator
dup
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mPowerProfile:Lcom/android/internal/os/PowerProfile;
invokespecial com.android.internal.os.CameraPowerCalculator.<init>:(Lcom/android/internal/os/PowerProfile;)V
putfield com.android.internal.os.BatteryStatsHelper.mCameraPowerCalculator:Lcom/android/internal/os/PowerCalculator;
47: StackMap locals:
StackMap stack:
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mCameraPowerCalculator:Lcom/android/internal/os/PowerCalculator;
invokevirtual com.android.internal.os.PowerCalculator.reset:()V
48: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mFlashlightPowerCalculator:Lcom/android/internal/os/PowerCalculator;
ifnonnull 50
49: aload 0
new com.android.internal.os.FlashlightPowerCalculator
dup
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mPowerProfile:Lcom/android/internal/os/PowerProfile;
invokespecial com.android.internal.os.FlashlightPowerCalculator.<init>:(Lcom/android/internal/os/PowerProfile;)V
putfield com.android.internal.os.BatteryStatsHelper.mFlashlightPowerCalculator:Lcom/android/internal/os/PowerCalculator;
50: StackMap locals:
StackMap stack:
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mFlashlightPowerCalculator:Lcom/android/internal/os/PowerCalculator;
invokevirtual com.android.internal.os.PowerCalculator.reset:()V
51: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mMediaPowerCalculator:Lcom/android/internal/os/PowerCalculator;
ifnonnull 53
52: aload 0
new com.android.internal.os.MediaPowerCalculator
dup
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mPowerProfile:Lcom/android/internal/os/PowerProfile;
invokespecial com.android.internal.os.MediaPowerCalculator.<init>:(Lcom/android/internal/os/PowerProfile;)V
putfield com.android.internal.os.BatteryStatsHelper.mMediaPowerCalculator:Lcom/android/internal/os/PowerCalculator;
53: StackMap locals:
StackMap stack:
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mMediaPowerCalculator:Lcom/android/internal/os/PowerCalculator;
invokevirtual com.android.internal.os.PowerCalculator.reset:()V
54: aload 0
iload 1
putfield com.android.internal.os.BatteryStatsHelper.mStatsType:I
55: aload 0
lload 5
putfield com.android.internal.os.BatteryStatsHelper.mRawUptimeUs:J
56: aload 0
lload 3
putfield com.android.internal.os.BatteryStatsHelper.mRawRealtimeUs:J
57: aload 0
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
lload 5
invokevirtual android.os.BatteryStats.getBatteryUptime:(J)J
putfield com.android.internal.os.BatteryStatsHelper.mBatteryUptimeUs:J
58: aload 0
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
lload 3
invokevirtual android.os.BatteryStats.getBatteryRealtime:(J)J
putfield com.android.internal.os.BatteryStatsHelper.mBatteryRealtimeUs:J
59: aload 0
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
lload 5
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStatsType:I
invokevirtual android.os.BatteryStats.computeBatteryUptime:(JI)J
putfield com.android.internal.os.BatteryStatsHelper.mTypeBatteryUptimeUs:J
60: aload 0
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
lload 3
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStatsType:I
invokevirtual android.os.BatteryStats.computeBatteryRealtime:(JI)J
putfield com.android.internal.os.BatteryStatsHelper.mTypeBatteryRealtimeUs:J
61: aload 0
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
lload 3
invokevirtual android.os.BatteryStats.computeBatteryTimeRemaining:(J)J
putfield com.android.internal.os.BatteryStatsHelper.mBatteryTimeRemainingUs:J
62: aload 0
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
lload 3
invokevirtual android.os.BatteryStats.computeChargeTimeRemaining:(J)J
putfield com.android.internal.os.BatteryStatsHelper.mChargeTimeRemainingUs:J
63: aload 0
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
invokevirtual android.os.BatteryStats.getLowDischargeAmountSinceCharge:()I
i2d
64: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mPowerProfile:Lcom/android/internal/os/PowerProfile;
invokevirtual com.android.internal.os.PowerProfile.getBatteryCapacity:()D
dmul
ldc 100.0
ddiv
65: putfield com.android.internal.os.BatteryStatsHelper.mMinDrainedPower:D
66: aload 0
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
invokevirtual android.os.BatteryStats.getHighDischargeAmountSinceCharge:()I
i2d
67: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mPowerProfile:Lcom/android/internal/os/PowerProfile;
invokevirtual com.android.internal.os.PowerProfile.getBatteryCapacity:()D
dmul
ldc 100.0
ddiv
68: putfield com.android.internal.os.BatteryStatsHelper.mMaxDrainedPower:D
69: aload 0
aload 2
invokevirtual com.android.internal.os.BatteryStatsHelper.processAppUsage:(Landroid/util/SparseArray;)V
70: iconst_0
istore 9
start local 9 71: goto 77
72: StackMap locals: int
StackMap stack:
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUsageList:Ljava/util/List;
iload 9
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.android.internal.os.BatterySipper
astore 10
start local 10 73: aload 10
invokevirtual com.android.internal.os.BatterySipper.computeMobilemspp:()V
74: aload 10
getfield com.android.internal.os.BatterySipper.mobilemspp:D
dconst_0
dcmpl
ifeq 76
75: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mMobilemsppList:Ljava/util/List;
aload 10
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 10 76: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
77: iload 9
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUsageList:Ljava/util/List;
invokeinterface java.util.List.size:()I
if_icmplt 72
end local 9 78: iconst_0
istore 9
start local 9 79: goto 90
80: StackMap locals:
StackMap stack:
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUserSippers:Landroid/util/SparseArray;
iload 9
invokevirtual android.util.SparseArray.valueAt:(I)Ljava/lang/Object;
checkcast java.util.List
astore 10
start local 10 81: iconst_0
istore 11
start local 11 82: goto 88
83: StackMap locals: java.util.List int
StackMap stack:
aload 10
iload 11
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.android.internal.os.BatterySipper
astore 12
start local 12 84: aload 12
invokevirtual com.android.internal.os.BatterySipper.computeMobilemspp:()V
85: aload 12
getfield com.android.internal.os.BatterySipper.mobilemspp:D
dconst_0
dcmpl
ifeq 87
86: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mMobilemsppList:Ljava/util/List;
aload 12
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 12 87: StackMap locals:
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
88: iload 11
aload 10
invokeinterface java.util.List.size:()I
if_icmplt 83
end local 11 end local 10 89: iinc 9 1
StackMap locals:
StackMap stack:
90: iload 9
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUserSippers:Landroid/util/SparseArray;
invokevirtual android.util.SparseArray.size:()I
if_icmplt 80
end local 9 91: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mMobilemsppList:Ljava/util/List;
new com.android.internal.os.BatteryStatsHelper$1
dup
aload 0
invokespecial com.android.internal.os.BatteryStatsHelper$1.<init>:(Lcom/android/internal/os/BatteryStatsHelper;)V
invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
92: aload 0
invokevirtual com.android.internal.os.BatteryStatsHelper.processMiscUsage:()V
93: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUsageList:Ljava/util/List;
invokestatic java.util.Collections.sort:(Ljava/util/List;)V
94: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUsageList:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifne 102
95: aload 0
aload 0
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUsageList:Ljava/util/List;
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.android.internal.os.BatterySipper
getfield com.android.internal.os.BatterySipper.totalPowerMah:D
dup2_x1
putfield com.android.internal.os.BatteryStatsHelper.mMaxPower:D
putfield com.android.internal.os.BatteryStatsHelper.mMaxRealPower:D
96: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUsageList:Ljava/util/List;
invokeinterface java.util.List.size:()I
istore 9
start local 9 97: iconst_0
istore 10
start local 10 98: goto 101
99: StackMap locals: int
StackMap stack:
aload 0
dup
getfield com.android.internal.os.BatteryStatsHelper.mComputedPower:D
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUsageList:Ljava/util/List;
iload 10
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.android.internal.os.BatterySipper
getfield com.android.internal.os.BatterySipper.totalPowerMah:D
dadd
putfield com.android.internal.os.BatteryStatsHelper.mComputedPower:D
100: iinc 10 1
StackMap locals:
StackMap stack:
101: iload 10
iload 9
if_icmplt 99
end local 10 end local 9 102: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mComputedPower:D
putfield com.android.internal.os.BatteryStatsHelper.mTotalPower:D
103: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
invokevirtual android.os.BatteryStats.getLowDischargeAmountSinceCharge:()I
iconst_1
if_icmple 122
104: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mMinDrainedPower:D
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mComputedPower:D
dcmpl
ifle 114
105: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mMinDrainedPower:D
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mComputedPower:D
dsub
dstore 9
start local 9 106: aload 0
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mMinDrainedPower:D
putfield com.android.internal.os.BatteryStatsHelper.mTotalPower:D
107: new com.android.internal.os.BatterySipper
dup
getstatic com.android.internal.os.BatterySipper$DrainType.UNACCOUNTED:Lcom/android/internal/os/BatterySipper$DrainType;
aconst_null
dload 9
invokespecial com.android.internal.os.BatterySipper.<init>:(Lcom/android/internal/os/BatterySipper$DrainType;Landroid/os/BatteryStats$Uid;D)V
astore 11
start local 11 108: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUsageList:Ljava/util/List;
aload 11
invokestatic java.util.Collections.binarySearch:(Ljava/util/List;Ljava/lang/Object;)I
istore 12
start local 12 109: iload 12
ifge 111
110: iload 12
iconst_1
iadd
ineg
istore 12
111: StackMap locals: double com.android.internal.os.BatterySipper int
StackMap stack:
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUsageList:Ljava/util/List;
iload 12
aload 11
invokeinterface java.util.List.add:(ILjava/lang/Object;)V
112: aload 0
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mMaxPower:D
dload 9
invokestatic java.lang.Math.max:(DD)D
putfield com.android.internal.os.BatteryStatsHelper.mMaxPower:D
end local 12 end local 11 end local 9 113: goto 122
StackMap locals:
StackMap stack:
114: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mMaxDrainedPower:D
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mComputedPower:D
dcmpg
ifge 122
115: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mComputedPower:D
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mMaxDrainedPower:D
dsub
dstore 9
start local 9 116: new com.android.internal.os.BatterySipper
dup
getstatic com.android.internal.os.BatterySipper$DrainType.OVERCOUNTED:Lcom/android/internal/os/BatterySipper$DrainType;
aconst_null
dload 9
invokespecial com.android.internal.os.BatterySipper.<init>:(Lcom/android/internal/os/BatterySipper$DrainType;Landroid/os/BatteryStats$Uid;D)V
astore 11
start local 11 117: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUsageList:Ljava/util/List;
aload 11
invokestatic java.util.Collections.binarySearch:(Ljava/util/List;Ljava/lang/Object;)I
istore 12
start local 12 118: iload 12
ifge 120
119: iload 12
iconst_1
iadd
ineg
istore 12
120: StackMap locals: double com.android.internal.os.BatterySipper int
StackMap stack:
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUsageList:Ljava/util/List;
iload 12
aload 11
invokeinterface java.util.List.add:(ILjava/lang/Object;)V
121: aload 0
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mMaxPower:D
dload 9
invokestatic java.lang.Math.max:(DD)D
putfield com.android.internal.os.BatteryStatsHelper.mMaxPower:D
end local 12 end local 11 end local 9 122: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUsageList:Ljava/util/List;
invokevirtual com.android.internal.os.BatteryStatsHelper.removeHiddenBatterySippers:(Ljava/util/List;)D
dstore 9
start local 9 123: aload 0
invokevirtual com.android.internal.os.BatteryStatsHelper.getTotalPower:()D
dload 9
dsub
dstore 11
start local 11 124: dload 11
invokestatic java.lang.Math.abs:(D)D
ldc 0.001
dcmpl
ifle 138
125: iconst_0
istore 13
start local 13 126: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUsageList:Ljava/util/List;
invokeinterface java.util.List.size:()I
istore 14
start local 14 127: goto 137
128: StackMap locals: com.android.internal.os.BatteryStatsHelper int android.util.SparseArray long long int int double double int int
StackMap stack:
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUsageList:Ljava/util/List;
iload 13
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.android.internal.os.BatterySipper
astore 15
start local 15 129: aload 15
getfield com.android.internal.os.BatterySipper.shouldHide:Z
ifne 136
130: aload 15
dload 9
131: aload 15
getfield com.android.internal.os.BatterySipper.totalPowerMah:D
aload 15
getfield com.android.internal.os.BatterySipper.screenPowerMah:D
dadd
132: dload 11
133: ddiv
dmul
134: putfield com.android.internal.os.BatterySipper.proportionalSmearMah:D
135: aload 15
invokevirtual com.android.internal.os.BatterySipper.sumPower:()D
pop2
end local 15 136: StackMap locals:
StackMap stack:
iinc 13 1
StackMap locals:
StackMap stack:
137: iload 13
iload 14
if_icmplt 128
end local 14 end local 13 138: StackMap locals:
StackMap stack:
return
end local 11 end local 9 end local 8 end local 7 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 139 0 this Lcom/android/internal/os/BatteryStatsHelper;
0 139 1 statsType I
0 139 2 asUsers Landroid/util/SparseArray<Landroid/os/UserHandle;>;
0 139 3 rawRealtimeUs J
0 139 5 rawUptimeUs J
25 139 7 hasWifiPowerReporting Z
35 139 8 hasBluetoothPowerReporting Z
71 78 9 i I
73 76 10 bs Lcom/android/internal/os/BatterySipper;
79 91 9 i I
81 89 10 user Ljava/util/List<Lcom/android/internal/os/BatterySipper;>;
82 89 11 j I
84 87 12 bs Lcom/android/internal/os/BatterySipper;
97 102 9 usageListCount I
98 102 10 i I
106 113 9 amount D
108 113 11 bs Lcom/android/internal/os/BatterySipper;
109 113 12 index I
116 122 9 amount D
117 122 11 bs Lcom/android/internal/os/BatterySipper;
118 122 12 index I
123 139 9 hiddenPowerMah D
124 139 11 totalRemainingPower D
126 138 13 i I
127 138 14 size I
129 136 15 sipper Lcom/android/internal/os/BatterySipper;
Signature: (ILandroid/util/SparseArray<Landroid/os/UserHandle;>;JJ)V
MethodParameters:
Name Flags
statsType
asUsers
rawRealtimeUs
rawUptimeUs
private void processAppUsage(android.util.SparseArray<android.os.UserHandle>);
descriptor: (Landroid/util/SparseArray;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=14, args_size=2
start local 0 start local 1 0: aload 1
iconst_m1
invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
ifnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: istore 2
start local 2 3: aload 0
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mTypeBatteryRealtimeUs:J
putfield com.android.internal.os.BatteryStatsHelper.mStatsPeriod:J
4: aconst_null
astore 3
start local 3 5: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
invokevirtual android.os.BatteryStats.getUidStats:()Landroid/util/SparseArray;
astore 4
start local 4 6: aload 4
invokevirtual android.util.SparseArray.size:()I
istore 5
start local 5 7: iconst_0
istore 6
start local 6 8: goto 48
9: StackMap locals: com.android.internal.os.BatteryStatsHelper android.util.SparseArray int com.android.internal.os.BatterySipper android.util.SparseArray int int
StackMap stack:
aload 4
iload 6
invokevirtual android.util.SparseArray.valueAt:(I)Ljava/lang/Object;
checkcast android.os.BatteryStats$Uid
astore 7
start local 7 10: new com.android.internal.os.BatterySipper
dup
getstatic com.android.internal.os.BatterySipper$DrainType.APP:Lcom/android/internal/os/BatterySipper$DrainType;
aload 7
dconst_0
invokespecial com.android.internal.os.BatterySipper.<init>:(Lcom/android/internal/os/BatterySipper$DrainType;Landroid/os/BatteryStats$Uid;D)V
astore 8
start local 8 11: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mCpuPowerCalculator:Lcom/android/internal/os/PowerCalculator;
aload 8
aload 7
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawRealtimeUs:J
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawUptimeUs:J
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStatsType:I
invokevirtual com.android.internal.os.PowerCalculator.calculateApp:(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
12: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mWakelockPowerCalculator:Lcom/android/internal/os/PowerCalculator;
aload 8
aload 7
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawRealtimeUs:J
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawUptimeUs:J
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStatsType:I
invokevirtual com.android.internal.os.PowerCalculator.calculateApp:(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
13: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mMobileRadioPowerCalculator:Lcom/android/internal/os/MobileRadioPowerCalculator;
aload 8
aload 7
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawRealtimeUs:J
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawUptimeUs:J
14: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStatsType:I
15: invokevirtual com.android.internal.os.MobileRadioPowerCalculator.calculateApp:(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
16: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mWifiPowerCalculator:Lcom/android/internal/os/PowerCalculator;
aload 8
aload 7
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawRealtimeUs:J
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawUptimeUs:J
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStatsType:I
invokevirtual com.android.internal.os.PowerCalculator.calculateApp:(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
17: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mBluetoothPowerCalculator:Lcom/android/internal/os/PowerCalculator;
aload 8
aload 7
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawRealtimeUs:J
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawUptimeUs:J
18: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStatsType:I
19: invokevirtual com.android.internal.os.PowerCalculator.calculateApp:(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
20: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mSensorPowerCalculator:Lcom/android/internal/os/PowerCalculator;
aload 8
aload 7
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawRealtimeUs:J
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawUptimeUs:J
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStatsType:I
invokevirtual com.android.internal.os.PowerCalculator.calculateApp:(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
21: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mCameraPowerCalculator:Lcom/android/internal/os/PowerCalculator;
aload 8
aload 7
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawRealtimeUs:J
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawUptimeUs:J
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStatsType:I
invokevirtual com.android.internal.os.PowerCalculator.calculateApp:(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
22: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mFlashlightPowerCalculator:Lcom/android/internal/os/PowerCalculator;
aload 8
aload 7
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawRealtimeUs:J
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawUptimeUs:J
23: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStatsType:I
24: invokevirtual com.android.internal.os.PowerCalculator.calculateApp:(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
25: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mMediaPowerCalculator:Lcom/android/internal/os/PowerCalculator;
aload 8
aload 7
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawRealtimeUs:J
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawUptimeUs:J
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStatsType:I
invokevirtual com.android.internal.os.PowerCalculator.calculateApp:(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
26: aload 8
invokevirtual com.android.internal.os.BatterySipper.sumPower:()D
dstore 9
start local 9 27: dload 9
dconst_0
dcmpl
ifne 28
aload 7
invokevirtual android.os.BatteryStats$Uid.getUid:()I
ifne 47
28: StackMap locals: android.os.BatteryStats$Uid com.android.internal.os.BatterySipper double
StackMap stack:
aload 8
invokevirtual com.android.internal.os.BatterySipper.getUid:()I
istore 11
start local 11 29: iload 11
invokestatic android.os.UserHandle.getUserId:(I)I
istore 12
start local 12 30: iload 11
sipush 1010
if_icmpne 33
31: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mWifiSippers:Ljava/util/List;
aload 8
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
32: goto 45
StackMap locals: int int
StackMap stack:
33: iload 11
sipush 1002
if_icmpne 36
34: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mBluetoothSippers:Ljava/util/List;
aload 8
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
35: goto 45
StackMap locals:
StackMap stack:
36: iload 2
ifne 44
aload 1
iload 12
invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
ifnonnull 44
37: iload 11
invokestatic android.os.UserHandle.getAppId:(I)I
sipush 10000
if_icmplt 44
38: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUserSippers:Landroid/util/SparseArray;
iload 12
invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
checkcast java.util.List
astore 13
start local 13 39: aload 13
ifnonnull 42
40: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 13
41: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUserSippers:Landroid/util/SparseArray;
iload 12
aload 13
invokevirtual android.util.SparseArray.put:(ILjava/lang/Object;)V
42: StackMap locals: java.util.List
StackMap stack:
aload 13
aload 8
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 13 43: goto 45
44: StackMap locals:
StackMap stack:
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUsageList:Ljava/util/List;
aload 8
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
45: StackMap locals:
StackMap stack:
iload 11
ifne 47
46: aload 8
astore 3
end local 12 end local 11 end local 9 end local 8 end local 7 47: StackMap locals: com.android.internal.os.BatteryStatsHelper android.util.SparseArray int com.android.internal.os.BatterySipper android.util.SparseArray int int
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
48: iload 6
iload 5
if_icmplt 9
end local 6 49: aload 3
ifnull 54
50: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mWakelockPowerCalculator:Lcom/android/internal/os/PowerCalculator;
aload 3
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawRealtimeUs:J
51: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawUptimeUs:J
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStatsType:I
52: invokevirtual com.android.internal.os.PowerCalculator.calculateRemaining:(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats;JJI)V
53: aload 3
invokevirtual com.android.internal.os.BatterySipper.sumPower:()D
pop2
54: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 55 0 this Lcom/android/internal/os/BatteryStatsHelper;
0 55 1 asUsers Landroid/util/SparseArray<Landroid/os/UserHandle;>;
3 55 2 forAllUsers Z
5 55 3 osSipper Lcom/android/internal/os/BatterySipper;
6 55 4 uidStats Landroid/util/SparseArray<+Landroid/os/BatteryStats$Uid;>;
7 55 5 NU I
8 49 6 iu I
10 47 7 u Landroid/os/BatteryStats$Uid;
11 47 8 app Lcom/android/internal/os/BatterySipper;
27 47 9 totalPower D
29 47 11 uid I
30 47 12 userId I
39 43 13 list Ljava/util/List<Lcom/android/internal/os/BatterySipper;>;
Signature: (Landroid/util/SparseArray<Landroid/os/UserHandle;>;)V
MethodParameters:
Name Flags
asUsers
private void addPhoneUsage();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=1
start local 0 0: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawRealtimeUs:J
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStatsType:I
invokevirtual android.os.BatteryStats.getPhoneOnTime:(JI)J
ldc 1000
ldiv
lstore 1
start local 1 1: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mPowerProfile:Lcom/android/internal/os/PowerProfile;
ldc "radio.active"
invokevirtual com.android.internal.os.PowerProfile.getAveragePower:(Ljava/lang/String;)D
2: lload 1
l2d
3: dmul
4: ldc 3600000.0
5: ddiv
dstore 3
start local 3 6: dload 3
dconst_0
dcmpl
ifeq 8
7: aload 0
getstatic com.android.internal.os.BatterySipper$DrainType.PHONE:Lcom/android/internal/os/BatterySipper$DrainType;
lload 1
dload 3
invokevirtual com.android.internal.os.BatteryStatsHelper.addEntry:(Lcom/android/internal/os/BatterySipper$DrainType;JD)Lcom/android/internal/os/BatterySipper;
pop
8: StackMap locals: long double
StackMap stack:
return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/android/internal/os/BatteryStatsHelper;
1 9 1 phoneOnTimeMs J
6 9 3 phoneOnPower D
private void addScreenUsage();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=14, args_size=1
start local 0 0: dconst_0
dstore 1
start local 1 1: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawRealtimeUs:J
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStatsType:I
invokevirtual android.os.BatteryStats.getScreenOnTime:(JI)J
ldc 1000
ldiv
lstore 3
start local 3 2: dload 1
lload 3
l2d
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mPowerProfile:Lcom/android/internal/os/PowerProfile;
ldc "screen.on"
invokevirtual com.android.internal.os.PowerProfile.getAveragePower:(Ljava/lang/String;)D
dmul
dadd
dstore 1
3: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mPowerProfile:Lcom/android/internal/os/PowerProfile;
ldc "screen.full"
invokevirtual com.android.internal.os.PowerProfile.getAveragePower:(Ljava/lang/String;)D
4: dstore 5
start local 5 5: iconst_0
istore 7
start local 7 6: goto 16
7: StackMap locals: com.android.internal.os.BatteryStatsHelper double long double int
StackMap stack:
dload 5
iload 7
i2f
ldc 0.5
fadd
f2d
dmul
8: ldc 5.0
9: ddiv
dstore 8
start local 8 10: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
iload 7
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawRealtimeUs:J
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStatsType:I
invokevirtual android.os.BatteryStats.getScreenBrightnessTime:(IJI)J
11: ldc 1000
12: ldiv
lstore 10
start local 10 13: dload 8
lload 10
l2d
dmul
dstore 12
start local 12 14: dload 1
dload 12
dadd
dstore 1
end local 12 end local 10 end local 8 15: iinc 7 1
StackMap locals:
StackMap stack:
16: iload 7
iconst_5
if_icmplt 7
end local 7 17: dload 1
ldc 3600000.0
ddiv
dstore 1
18: dload 1
dconst_0
dcmpl
ifeq 20
19: aload 0
getstatic com.android.internal.os.BatterySipper$DrainType.SCREEN:Lcom/android/internal/os/BatterySipper$DrainType;
lload 3
dload 1
invokevirtual com.android.internal.os.BatteryStatsHelper.addEntry:(Lcom/android/internal/os/BatterySipper$DrainType;JD)Lcom/android/internal/os/BatterySipper;
pop
20: StackMap locals:
StackMap stack:
return
end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lcom/android/internal/os/BatteryStatsHelper;
1 21 1 power D
2 21 3 screenOnTimeMs J
5 21 5 screenFullPower D
6 17 7 i I
10 15 8 screenBinPower D
13 15 10 brightnessTime J
14 15 12 p D
private void addAmbientDisplayUsage();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=1
start local 0 0: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawRealtimeUs:J
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStatsType:I
invokevirtual android.os.BatteryStats.getScreenDozeTime:(JI)J
ldc 1000
ldiv
lstore 1
start local 1 1: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mPowerProfile:Lcom/android/internal/os/PowerProfile;
ldc "ambient.on"
invokevirtual com.android.internal.os.PowerProfile.getAveragePower:(Ljava/lang/String;)D
2: lload 1
l2d
3: dmul
4: ldc 3600000.0
5: ddiv
dstore 3
start local 3 6: dload 3
dconst_0
dcmpl
ifle 8
7: aload 0
getstatic com.android.internal.os.BatterySipper$DrainType.AMBIENT_DISPLAY:Lcom/android/internal/os/BatterySipper$DrainType;
lload 1
dload 3
invokevirtual com.android.internal.os.BatteryStatsHelper.addEntry:(Lcom/android/internal/os/BatterySipper$DrainType;JD)Lcom/android/internal/os/BatterySipper;
pop
8: StackMap locals: long double
StackMap stack:
return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/android/internal/os/BatteryStatsHelper;
1 9 1 ambientDisplayMs J
6 9 3 power D
private void addRadioUsage();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=2, args_size=1
start local 0 0: new com.android.internal.os.BatterySipper
dup
getstatic com.android.internal.os.BatterySipper$DrainType.CELL:Lcom/android/internal/os/BatterySipper$DrainType;
aconst_null
dconst_0
invokespecial com.android.internal.os.BatterySipper.<init>:(Lcom/android/internal/os/BatterySipper$DrainType;Landroid/os/BatteryStats$Uid;D)V
astore 1
start local 1 1: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mMobileRadioPowerCalculator:Lcom/android/internal/os/MobileRadioPowerCalculator;
aload 1
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawRealtimeUs:J
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawUptimeUs:J
2: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStatsType:I
3: invokevirtual com.android.internal.os.MobileRadioPowerCalculator.calculateRemaining:(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats;JJI)V
4: aload 1
invokevirtual com.android.internal.os.BatterySipper.sumPower:()D
pop2
5: aload 1
getfield com.android.internal.os.BatterySipper.totalPowerMah:D
dconst_0
dcmpl
ifle 7
6: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUsageList:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
7: StackMap locals: com.android.internal.os.BatterySipper
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/android/internal/os/BatteryStatsHelper;
1 8 1 radio Lcom/android/internal/os/BatterySipper;
private void aggregateSippers(com.android.internal.os.BatterySipper, java.util.List<com.android.internal.os.BatterySipper>, java.lang.String);
descriptor: (Lcom/android/internal/os/BatterySipper;Ljava/util/List;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
istore 4
start local 4 1: goto 5
2: StackMap locals: int
StackMap stack:
aload 2
iload 4
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.android.internal.os.BatterySipper
astore 5
start local 5 3: aload 1
aload 5
invokevirtual com.android.internal.os.BatterySipper.add:(Lcom/android/internal/os/BatterySipper;)V
end local 5 4: iinc 4 1
StackMap locals:
StackMap stack:
5: iload 4
aload 2
invokeinterface java.util.List.size:()I
if_icmplt 2
end local 4 6: aload 1
invokevirtual com.android.internal.os.BatterySipper.computeMobilemspp:()V
7: aload 1
invokevirtual com.android.internal.os.BatterySipper.sumPower:()D
pop2
8: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/android/internal/os/BatteryStatsHelper;
0 9 1 bs Lcom/android/internal/os/BatterySipper;
0 9 2 from Ljava/util/List<Lcom/android/internal/os/BatterySipper;>;
0 9 3 tag Ljava/lang/String;
1 6 4 i I
3 4 5 wbs Lcom/android/internal/os/BatterySipper;
Signature: (Lcom/android/internal/os/BatterySipper;Ljava/util/List<Lcom/android/internal/os/BatterySipper;>;Ljava/lang/String;)V
MethodParameters:
Name Flags
bs
from
tag
private void addIdleUsage();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=1
start local 0 0: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mTypeBatteryRealtimeUs:J
ldc 1000
ldiv
l2d
1: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mPowerProfile:Lcom/android/internal/os/PowerProfile;
ldc "cpu.suspend"
invokevirtual com.android.internal.os.PowerProfile.getAveragePower:(Ljava/lang/String;)D
2: dmul
dstore 1
start local 1 3: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mTypeBatteryUptimeUs:J
ldc 1000
ldiv
l2d
4: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mPowerProfile:Lcom/android/internal/os/PowerProfile;
ldc "cpu.idle"
invokevirtual com.android.internal.os.PowerProfile.getAveragePower:(Ljava/lang/String;)D
5: dmul
dstore 3
start local 3 6: dload 1
dload 3
dadd
ldc 3600000.0
ddiv
dstore 5
start local 5 7: dload 5
dconst_0
dcmpl
ifeq 9
8: aload 0
getstatic com.android.internal.os.BatterySipper$DrainType.IDLE:Lcom/android/internal/os/BatterySipper$DrainType;
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mTypeBatteryRealtimeUs:J
ldc 1000
ldiv
dload 5
invokevirtual com.android.internal.os.BatteryStatsHelper.addEntry:(Lcom/android/internal/os/BatterySipper$DrainType;JD)Lcom/android/internal/os/BatterySipper;
pop
9: StackMap locals: double double double
StackMap stack:
return
end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/android/internal/os/BatteryStatsHelper;
3 10 1 suspendPowerMaMs D
6 10 3 idlePowerMaMs D
7 10 5 totalPowerMah D
private void addWiFiUsage();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=2, args_size=1
start local 0 0: new com.android.internal.os.BatterySipper
dup
getstatic com.android.internal.os.BatterySipper$DrainType.WIFI:Lcom/android/internal/os/BatterySipper$DrainType;
aconst_null
dconst_0
invokespecial com.android.internal.os.BatterySipper.<init>:(Lcom/android/internal/os/BatterySipper$DrainType;Landroid/os/BatteryStats$Uid;D)V
astore 1
start local 1 1: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mWifiPowerCalculator:Lcom/android/internal/os/PowerCalculator;
aload 1
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawRealtimeUs:J
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawUptimeUs:J
2: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStatsType:I
3: invokevirtual com.android.internal.os.PowerCalculator.calculateRemaining:(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats;JJI)V
4: aload 0
aload 1
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mWifiSippers:Ljava/util/List;
ldc "WIFI"
invokevirtual com.android.internal.os.BatteryStatsHelper.aggregateSippers:(Lcom/android/internal/os/BatterySipper;Ljava/util/List;Ljava/lang/String;)V
5: aload 1
getfield com.android.internal.os.BatterySipper.totalPowerMah:D
dconst_0
dcmpl
ifle 7
6: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUsageList:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
7: StackMap locals: com.android.internal.os.BatterySipper
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/android/internal/os/BatteryStatsHelper;
1 8 1 bs Lcom/android/internal/os/BatterySipper;
private void addBluetoothUsage();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=2, args_size=1
start local 0 0: new com.android.internal.os.BatterySipper
dup
getstatic com.android.internal.os.BatterySipper$DrainType.BLUETOOTH:Lcom/android/internal/os/BatterySipper$DrainType;
aconst_null
dconst_0
invokespecial com.android.internal.os.BatterySipper.<init>:(Lcom/android/internal/os/BatterySipper$DrainType;Landroid/os/BatteryStats$Uid;D)V
astore 1
start local 1 1: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mBluetoothPowerCalculator:Lcom/android/internal/os/PowerCalculator;
aload 1
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawRealtimeUs:J
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawUptimeUs:J
2: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStatsType:I
3: invokevirtual com.android.internal.os.PowerCalculator.calculateRemaining:(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats;JJI)V
4: aload 0
aload 1
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mBluetoothSippers:Ljava/util/List;
ldc "Bluetooth"
invokevirtual com.android.internal.os.BatteryStatsHelper.aggregateSippers:(Lcom/android/internal/os/BatterySipper;Ljava/util/List;Ljava/lang/String;)V
5: aload 1
getfield com.android.internal.os.BatterySipper.totalPowerMah:D
dconst_0
dcmpl
ifle 7
6: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUsageList:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
7: StackMap locals: com.android.internal.os.BatterySipper
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/android/internal/os/BatteryStatsHelper;
1 8 1 bs Lcom/android/internal/os/BatterySipper;
private void addUserUsage();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: goto 8
2: StackMap locals: int
StackMap stack:
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUserSippers:Landroid/util/SparseArray;
iload 1
invokevirtual android.util.SparseArray.keyAt:(I)I
istore 2
start local 2 3: new com.android.internal.os.BatterySipper
dup
getstatic com.android.internal.os.BatterySipper$DrainType.USER:Lcom/android/internal/os/BatterySipper$DrainType;
aconst_null
dconst_0
invokespecial com.android.internal.os.BatterySipper.<init>:(Lcom/android/internal/os/BatterySipper$DrainType;Landroid/os/BatteryStats$Uid;D)V
astore 3
start local 3 4: aload 3
iload 2
putfield com.android.internal.os.BatterySipper.userId:I
5: aload 0
aload 3
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUserSippers:Landroid/util/SparseArray;
iload 1
invokevirtual android.util.SparseArray.valueAt:(I)Ljava/lang/Object;
checkcast java.util.List
ldc "User"
invokevirtual com.android.internal.os.BatteryStatsHelper.aggregateSippers:(Lcom/android/internal/os/BatterySipper;Ljava/util/List;Ljava/lang/String;)V
6: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUsageList:Ljava/util/List;
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 3 end local 2 7: iinc 1 1
StackMap locals:
StackMap stack:
8: iload 1
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUserSippers:Landroid/util/SparseArray;
invokevirtual android.util.SparseArray.size:()I
if_icmplt 2
end local 1 9: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/android/internal/os/BatteryStatsHelper;
1 9 1 i I
3 7 2 userId I
4 7 3 bs Lcom/android/internal/os/BatterySipper;
private void addMemoryUsage();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=2, args_size=1
start local 0 0: new com.android.internal.os.BatterySipper
dup
getstatic com.android.internal.os.BatterySipper$DrainType.MEMORY:Lcom/android/internal/os/BatterySipper$DrainType;
aconst_null
dconst_0
invokespecial com.android.internal.os.BatterySipper.<init>:(Lcom/android/internal/os/BatterySipper$DrainType;Landroid/os/BatteryStats$Uid;D)V
astore 1
start local 1 1: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mMemoryPowerCalculator:Lcom/android/internal/os/PowerCalculator;
aload 1
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawRealtimeUs:J
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mRawUptimeUs:J
2: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStatsType:I
3: invokevirtual com.android.internal.os.PowerCalculator.calculateRemaining:(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats;JJI)V
4: aload 1
invokevirtual com.android.internal.os.BatterySipper.sumPower:()D
pop2
5: aload 1
getfield com.android.internal.os.BatterySipper.totalPowerMah:D
dconst_0
dcmpl
ifle 7
6: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUsageList:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
7: StackMap locals: com.android.internal.os.BatterySipper
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/android/internal/os/BatteryStatsHelper;
1 8 1 memory Lcom/android/internal/os/BatterySipper;
private void processMiscUsage();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.android.internal.os.BatteryStatsHelper.addUserUsage:()V
1: aload 0
invokevirtual com.android.internal.os.BatteryStatsHelper.addPhoneUsage:()V
2: aload 0
invokevirtual com.android.internal.os.BatteryStatsHelper.addScreenUsage:()V
3: aload 0
invokevirtual com.android.internal.os.BatteryStatsHelper.addAmbientDisplayUsage:()V
4: aload 0
invokevirtual com.android.internal.os.BatteryStatsHelper.addWiFiUsage:()V
5: aload 0
invokevirtual com.android.internal.os.BatteryStatsHelper.addBluetoothUsage:()V
6: aload 0
invokevirtual com.android.internal.os.BatteryStatsHelper.addMemoryUsage:()V
7: aload 0
invokevirtual com.android.internal.os.BatteryStatsHelper.addIdleUsage:()V
8: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mWifiOnly:Z
ifne 10
9: aload 0
invokevirtual com.android.internal.os.BatteryStatsHelper.addRadioUsage:()V
10: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/android/internal/os/BatteryStatsHelper;
private com.android.internal.os.BatterySipper addEntry(com.android.internal.os.BatterySipper$DrainType, long, double);
descriptor: (Lcom/android/internal/os/BatterySipper$DrainType;JD)Lcom/android/internal/os/BatterySipper;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 4 0: new com.android.internal.os.BatterySipper
dup
aload 1
aconst_null
dconst_0
invokespecial com.android.internal.os.BatterySipper.<init>:(Lcom/android/internal/os/BatterySipper$DrainType;Landroid/os/BatteryStats$Uid;D)V
astore 6
start local 6 1: aload 6
dload 4
putfield com.android.internal.os.BatterySipper.usagePowerMah:D
2: aload 6
lload 2
putfield com.android.internal.os.BatterySipper.usageTimeMs:J
3: aload 6
invokevirtual com.android.internal.os.BatterySipper.sumPower:()D
pop2
4: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUsageList:Ljava/util/List;
aload 6
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
5: aload 6
areturn
end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/android/internal/os/BatteryStatsHelper;
0 6 1 drainType Lcom/android/internal/os/BatterySipper$DrainType;
0 6 2 time J
0 6 4 power D
1 6 6 bs Lcom/android/internal/os/BatterySipper;
MethodParameters:
Name Flags
drainType
time
power
public java.util.List<com.android.internal.os.BatterySipper> getUsageList();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mUsageList:Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/android/internal/os/BatteryStatsHelper;
Signature: ()Ljava/util/List<Lcom/android/internal/os/BatterySipper;>;
public java.util.List<com.android.internal.os.BatterySipper> getMobilemsppList();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mMobilemsppList:Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/android/internal/os/BatteryStatsHelper;
Signature: ()Ljava/util/List<Lcom/android/internal/os/BatterySipper;>;
public long getStatsPeriod();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStatsPeriod:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/android/internal/os/BatteryStatsHelper;
public int getStatsType();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mStatsType:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/android/internal/os/BatteryStatsHelper;
public double getMaxPower();
descriptor: ()D
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mMaxPower:D
dreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/android/internal/os/BatteryStatsHelper;
public double getMaxRealPower();
descriptor: ()D
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mMaxRealPower:D
dreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/android/internal/os/BatteryStatsHelper;
public double getTotalPower();
descriptor: ()D
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mTotalPower:D
dreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/android/internal/os/BatteryStatsHelper;
public double getComputedPower();
descriptor: ()D
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mComputedPower:D
dreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/android/internal/os/BatteryStatsHelper;
public double getMinDrainedPower();
descriptor: ()D
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mMinDrainedPower:D
dreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/android/internal/os/BatteryStatsHelper;
public double getMaxDrainedPower();
descriptor: ()D
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mMaxDrainedPower:D
dreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/android/internal/os/BatteryStatsHelper;
public static byte[] readFully(java.io.FileInputStream);
descriptor: (Ljava/io/FileInputStream;)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
invokevirtual java.io.FileInputStream.available:()I
invokestatic com.android.internal.os.BatteryStatsHelper.readFully:(Ljava/io/FileInputStream;I)[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 stream Ljava/io/FileInputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
stream
public static byte[] readFully(java.io.FileInputStream, int);
descriptor: (Ljava/io/FileInputStream;I)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: iload 1
newarray 8
astore 3
start local 3 2: StackMap locals: int byte[]
StackMap stack:
aload 0
aload 3
iload 2
aload 3
arraylength
iload 2
isub
invokevirtual java.io.FileInputStream.read:([BII)I
istore 4
start local 4 3: iload 4
ifgt 5
4: aload 3
areturn
5: StackMap locals: int
StackMap stack:
iload 2
iload 4
iadd
istore 2
6: aload 0
invokevirtual java.io.FileInputStream.available:()I
istore 1
7: iload 1
aload 3
arraylength
iload 2
isub
if_icmple 2
8: iload 2
iload 1
iadd
newarray 8
astore 5
start local 5 9: aload 3
iconst_0
aload 5
iconst_0
iload 2
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
10: aload 5
astore 3
end local 5 end local 4 11: goto 2
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 stream Ljava/io/FileInputStream;
0 12 1 avail I
1 12 2 pos I
2 12 3 data [B
3 11 4 amt I
9 11 5 newData [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
stream
avail
public double removeHiddenBatterySippers(java.util.List<com.android.internal.os.BatterySipper>);
descriptor: (Ljava/util/List;)D
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: dconst_0
dstore 2
start local 2 1: aconst_null
astore 4
start local 4 2: aload 1
invokeinterface java.util.List.size:()I
iconst_1
isub
istore 5
start local 5 3: goto 18
4: StackMap locals: double com.android.internal.os.BatterySipper int
StackMap stack:
aload 1
iload 5
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.android.internal.os.BatterySipper
astore 6
start local 6 5: aload 6
aload 0
aload 6
invokevirtual com.android.internal.os.BatteryStatsHelper.shouldHideSipper:(Lcom/android/internal/os/BatterySipper;)Z
putfield com.android.internal.os.BatterySipper.shouldHide:Z
6: aload 6
getfield com.android.internal.os.BatterySipper.shouldHide:Z
ifeq 15
7: aload 6
getfield com.android.internal.os.BatterySipper.drainType:Lcom/android/internal/os/BatterySipper$DrainType;
getstatic com.android.internal.os.BatterySipper$DrainType.OVERCOUNTED:Lcom/android/internal/os/BatterySipper$DrainType;
if_acmpeq 15
8: aload 6
getfield com.android.internal.os.BatterySipper.drainType:Lcom/android/internal/os/BatterySipper$DrainType;
getstatic com.android.internal.os.BatterySipper$DrainType.SCREEN:Lcom/android/internal/os/BatterySipper$DrainType;
if_acmpeq 15
9: aload 6
getfield com.android.internal.os.BatterySipper.drainType:Lcom/android/internal/os/BatterySipper$DrainType;
getstatic com.android.internal.os.BatterySipper$DrainType.AMBIENT_DISPLAY:Lcom/android/internal/os/BatterySipper$DrainType;
if_acmpeq 15
10: aload 6
getfield com.android.internal.os.BatterySipper.drainType:Lcom/android/internal/os/BatterySipper$DrainType;
getstatic com.android.internal.os.BatterySipper$DrainType.UNACCOUNTED:Lcom/android/internal/os/BatterySipper$DrainType;
if_acmpeq 15
11: aload 6
getfield com.android.internal.os.BatterySipper.drainType:Lcom/android/internal/os/BatterySipper$DrainType;
getstatic com.android.internal.os.BatterySipper$DrainType.BLUETOOTH:Lcom/android/internal/os/BatterySipper$DrainType;
if_acmpeq 15
12: aload 6
getfield com.android.internal.os.BatterySipper.drainType:Lcom/android/internal/os/BatterySipper$DrainType;
getstatic com.android.internal.os.BatterySipper$DrainType.WIFI:Lcom/android/internal/os/BatterySipper$DrainType;
if_acmpeq 15
13: aload 6
getfield com.android.internal.os.BatterySipper.drainType:Lcom/android/internal/os/BatterySipper$DrainType;
getstatic com.android.internal.os.BatterySipper$DrainType.IDLE:Lcom/android/internal/os/BatterySipper$DrainType;
if_acmpeq 15
14: dload 2
aload 6
getfield com.android.internal.os.BatterySipper.totalPowerMah:D
dadd
dstore 2
15: StackMap locals: com.android.internal.os.BatterySipper
StackMap stack:
aload 6
getfield com.android.internal.os.BatterySipper.drainType:Lcom/android/internal/os/BatterySipper$DrainType;
getstatic com.android.internal.os.BatterySipper$DrainType.SCREEN:Lcom/android/internal/os/BatterySipper$DrainType;
if_acmpne 17
16: aload 6
astore 4
end local 6 17: StackMap locals:
StackMap stack:
iinc 5 -1
StackMap locals:
StackMap stack:
18: iload 5
ifge 4
end local 5 19: aload 0
aload 1
aload 4
invokevirtual com.android.internal.os.BatteryStatsHelper.smearScreenBatterySipper:(Ljava/util/List;Lcom/android/internal/os/BatterySipper;)V
20: dload 2
dreturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lcom/android/internal/os/BatteryStatsHelper;
0 21 1 sippers Ljava/util/List<Lcom/android/internal/os/BatterySipper;>;
1 21 2 proportionalSmearPowerMah D
2 21 4 screenSipper Lcom/android/internal/os/BatterySipper;
3 19 5 i I
5 17 6 sipper Lcom/android/internal/os/BatterySipper;
Signature: (Ljava/util/List<Lcom/android/internal/os/BatterySipper;>;)D
MethodParameters:
Name Flags
sippers
public void smearScreenBatterySipper(java.util.List<com.android.internal.os.BatterySipper>, com.android.internal.os.BatterySipper);
descriptor: (Ljava/util/List;Lcom/android/internal/os/BatterySipper;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=11, args_size=3
start local 0 start local 1 start local 2 0: lconst_0
lstore 3
start local 3 1: new android.util.SparseLongArray
dup
invokespecial android.util.SparseLongArray.<init>:()V
astore 5
start local 5 2: iconst_0
istore 6
start local 6 3: aload 1
invokeinterface java.util.List.size:()I
istore 7
start local 7 4: goto 13
5: StackMap locals: com.android.internal.os.BatteryStatsHelper java.util.List com.android.internal.os.BatterySipper long android.util.SparseLongArray int int
StackMap stack:
aload 1
iload 6
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.android.internal.os.BatterySipper
getfield com.android.internal.os.BatterySipper.uidObj:Landroid/os/BatteryStats$Uid;
astore 8
start local 8 6: aload 8
ifnull 12
7: aload 0
aload 8
8: iconst_0
9: invokevirtual com.android.internal.os.BatteryStatsHelper.getProcessForegroundTimeMs:(Landroid/os/BatteryStats$Uid;I)J
lstore 9
start local 9 10: aload 5
aload 8
invokevirtual android.os.BatteryStats$Uid.getUid:()I
lload 9
invokevirtual android.util.SparseLongArray.put:(IJ)V
11: lload 3
lload 9
ladd
lstore 3
end local 9 end local 8 12: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
13: iload 6
iload 7
if_icmplt 5
end local 7 end local 6 14: aload 2
ifnull 25
lload 3
ldc 600000
lcmp
iflt 25
15: aload 2
getfield com.android.internal.os.BatterySipper.totalPowerMah:D
dstore 6
start local 6 16: iconst_0
istore 8
start local 8 17: aload 1
invokeinterface java.util.List.size:()I
istore 9
start local 9 18: goto 24
19: StackMap locals: com.android.internal.os.BatteryStatsHelper java.util.List com.android.internal.os.BatterySipper long android.util.SparseLongArray double int int
StackMap stack:
aload 1
iload 8
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.android.internal.os.BatterySipper
astore 10
start local 10 20: aload 10
dload 6
aload 5
aload 10
invokevirtual com.android.internal.os.BatterySipper.getUid:()I
lconst_0
invokevirtual android.util.SparseLongArray.get:(IJ)J
l2d
dmul
21: lload 3
l2d
ddiv
22: putfield com.android.internal.os.BatterySipper.screenPowerMah:D
end local 10 23: iinc 8 1
StackMap locals:
StackMap stack:
24: iload 8
iload 9
if_icmplt 19
end local 9 end local 8 end local 6 25: StackMap locals:
StackMap stack:
return
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lcom/android/internal/os/BatteryStatsHelper;
0 26 1 sippers Ljava/util/List<Lcom/android/internal/os/BatterySipper;>;
0 26 2 screenSipper Lcom/android/internal/os/BatterySipper;
1 26 3 totalActivityTimeMs J
2 26 5 activityTimeArray Landroid/util/SparseLongArray;
3 14 6 i I
4 14 7 size I
6 12 8 uid Landroid/os/BatteryStats$Uid;
10 12 9 timeMs J
16 25 6 screenPowerMah D
17 25 8 i I
18 25 9 size I
20 23 10 sipper Lcom/android/internal/os/BatterySipper;
Signature: (Ljava/util/List<Lcom/android/internal/os/BatterySipper;>;Lcom/android/internal/os/BatterySipper;)V
MethodParameters:
Name Flags
sippers
screenSipper
public boolean shouldHideSipper(com.android.internal.os.BatterySipper);
descriptor: (Lcom/android/internal/os/BatterySipper;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
getfield com.android.internal.os.BatterySipper.drainType:Lcom/android/internal/os/BatterySipper$DrainType;
astore 2
start local 2 1: aload 2
getstatic com.android.internal.os.BatterySipper$DrainType.IDLE:Lcom/android/internal/os/BatterySipper$DrainType;
if_acmpeq 10
2: aload 2
getstatic com.android.internal.os.BatterySipper$DrainType.CELL:Lcom/android/internal/os/BatterySipper$DrainType;
if_acmpeq 10
3: aload 2
getstatic com.android.internal.os.BatterySipper$DrainType.SCREEN:Lcom/android/internal/os/BatterySipper$DrainType;
if_acmpeq 10
4: aload 2
getstatic com.android.internal.os.BatterySipper$DrainType.AMBIENT_DISPLAY:Lcom/android/internal/os/BatterySipper$DrainType;
if_acmpeq 10
5: aload 2
getstatic com.android.internal.os.BatterySipper$DrainType.UNACCOUNTED:Lcom/android/internal/os/BatterySipper$DrainType;
if_acmpeq 10
6: aload 2
getstatic com.android.internal.os.BatterySipper$DrainType.OVERCOUNTED:Lcom/android/internal/os/BatterySipper$DrainType;
if_acmpeq 10
7: aload 0
aload 1
invokevirtual com.android.internal.os.BatteryStatsHelper.isTypeService:(Lcom/android/internal/os/BatterySipper;)Z
ifne 10
8: aload 0
aload 1
invokevirtual com.android.internal.os.BatteryStatsHelper.isTypeSystem:(Lcom/android/internal/os/BatterySipper;)Z
ifne 10
9: iconst_0
ireturn
StackMap locals: com.android.internal.os.BatterySipper$DrainType
StackMap stack:
10: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/android/internal/os/BatteryStatsHelper;
0 11 1 sipper Lcom/android/internal/os/BatterySipper;
1 11 2 drainType Lcom/android/internal/os/BatterySipper$DrainType;
MethodParameters:
Name Flags
sipper
public boolean isTypeService(com.android.internal.os.BatterySipper);
descriptor: (Lcom/android/internal/os/BatterySipper;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mPackageManager:Landroid/content/pm/PackageManager;
aload 1
invokevirtual com.android.internal.os.BatterySipper.getUid:()I
invokevirtual android.content.pm.PackageManager.getPackagesForUid:(I)[Ljava/lang/String;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: iconst_0
ireturn
3: StackMap locals: java.lang.String[]
StackMap stack:
aload 2
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 8
StackMap locals: com.android.internal.os.BatteryStatsHelper com.android.internal.os.BatterySipper java.lang.String[] top int int java.lang.String[]
StackMap stack:
4: aload 6
iload 4
aaload
astore 3
start local 3 5: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mServicepackageArray:[Ljava/lang/String;
aload 3
invokestatic com.android.internal.util.ArrayUtils.contains:([Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 7
6: iconst_1
ireturn
end local 3 7: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
8: iload 4
iload 5
if_icmplt 4
9: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/android/internal/os/BatteryStatsHelper;
0 10 1 sipper Lcom/android/internal/os/BatterySipper;
1 10 2 packages [Ljava/lang/String;
5 7 3 packageName Ljava/lang/String;
MethodParameters:
Name Flags
sipper
public boolean isTypeSystem(com.android.internal.os.BatterySipper);
descriptor: (Lcom/android/internal/os/BatterySipper;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 1
getfield com.android.internal.os.BatterySipper.uidObj:Landroid/os/BatteryStats$Uid;
ifnonnull 1
iconst_m1
goto 2
StackMap locals:
StackMap stack:
1: aload 1
invokevirtual com.android.internal.os.BatterySipper.getUid:()I
StackMap locals:
StackMap stack: int
2: istore 2
start local 2 3: aload 1
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mPackageManager:Landroid/content/pm/PackageManager;
iload 2
invokevirtual android.content.pm.PackageManager.getPackagesForUid:(I)[Ljava/lang/String;
putfield com.android.internal.os.BatterySipper.mPackages:[Ljava/lang/String;
4: iload 2
iflt 6
iload 2
sipush 10000
if_icmpge 6
5: iconst_1
ireturn
6: StackMap locals: int
StackMap stack:
aload 1
getfield com.android.internal.os.BatterySipper.mPackages:[Ljava/lang/String;
ifnull 13
7: aload 1
getfield com.android.internal.os.BatterySipper.mPackages:[Ljava/lang/String;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 12
StackMap locals: com.android.internal.os.BatteryStatsHelper com.android.internal.os.BatterySipper int top int int java.lang.String[]
StackMap stack:
8: aload 6
iload 4
aaload
astore 3
start local 3 9: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mSystemPackageArray:[Ljava/lang/String;
aload 3
invokestatic com.android.internal.util.ArrayUtils.contains:([Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 11
10: iconst_1
ireturn
end local 3 11: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
12: iload 4
iload 5
if_icmplt 8
13: StackMap locals: com.android.internal.os.BatteryStatsHelper com.android.internal.os.BatterySipper int
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/android/internal/os/BatteryStatsHelper;
0 14 1 sipper Lcom/android/internal/os/BatterySipper;
3 14 2 uid I
9 11 3 packageName Ljava/lang/String;
MethodParameters:
Name Flags
sipper
public long convertUsToMs(long);
descriptor: (J)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: lload 1
ldc 1000
ldiv
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/android/internal/os/BatteryStatsHelper;
0 1 1 timeUs J
MethodParameters:
Name Flags
timeUs
public long convertMsToUs(long);
descriptor: (J)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: lload 1
ldc 1000
lmul
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/android/internal/os/BatteryStatsHelper;
0 1 1 timeMs J
MethodParameters:
Name Flags
timeMs
public long getForegroundActivityTotalTimeUs(android.os.BatteryStats$Uid, long);
descriptor: (Landroid/os/BatteryStats$Uid;J)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual android.os.BatteryStats$Uid.getForegroundActivityTimer:()Landroid/os/BatteryStats$Timer;
astore 4
start local 4 1: aload 4
ifnull 3
2: aload 4
lload 2
iconst_0
invokevirtual android.os.BatteryStats$Timer.getTotalTimeLocked:(JI)J
lreturn
3: StackMap locals: android.os.BatteryStats$Timer
StackMap stack:
lconst_0
lreturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/android/internal/os/BatteryStatsHelper;
0 4 1 uid Landroid/os/BatteryStats$Uid;
0 4 2 rawRealtimeUs J
1 4 4 timer Landroid/os/BatteryStats$Timer;
RuntimeInvisibleAnnotations:
com.android.internal.annotations.VisibleForTesting()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
com.android.internal.annotations.VisibleForTesting()
MethodParameters:
Name Flags
uid
rawRealtimeUs
public long getProcessForegroundTimeMs(android.os.BatteryStats$Uid, int);
descriptor: (Landroid/os/BatteryStats$Uid;I)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=14, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokestatic android.os.SystemClock.elapsedRealtime:()J
invokevirtual com.android.internal.os.BatteryStatsHelper.convertMsToUs:(J)J
lstore 3
start local 3 1: iconst_1
newarray 10
astore 5
start local 5 2: lconst_0
lstore 6
start local 6 3: aload 5
dup
astore 11
arraylength
istore 10
iconst_0
istore 9
goto 8
StackMap locals: com.android.internal.os.BatteryStatsHelper android.os.BatteryStats$Uid int long int[] long top int int int[]
StackMap stack:
4: aload 11
iload 9
iaload
istore 8
start local 8 5: aload 1
iload 8
lload 3
iload 2
invokevirtual android.os.BatteryStats$Uid.getProcessStateTime:(IJI)J
lstore 12
start local 12 6: lload 6
lload 12
ladd
lstore 6
end local 12 end local 8 7: iinc 9 1
StackMap locals:
StackMap stack:
8: iload 9
iload 10
if_icmplt 4
9: aload 0
10: lload 6
aload 0
aload 1
lload 3
invokevirtual com.android.internal.os.BatteryStatsHelper.getForegroundActivityTotalTimeUs:(Landroid/os/BatteryStats$Uid;J)J
invokestatic java.lang.Math.min:(JJ)J
11: invokevirtual com.android.internal.os.BatteryStatsHelper.convertUsToMs:(J)J
lreturn
end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/android/internal/os/BatteryStatsHelper;
0 12 1 uid Landroid/os/BatteryStats$Uid;
0 12 2 which I
1 12 3 rawRealTimeUs J
2 12 5 foregroundTypes [I
3 12 6 timeUs J
5 7 8 type I
6 7 12 localTime J
RuntimeInvisibleAnnotations:
com.android.internal.annotations.VisibleForTesting()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
com.android.internal.annotations.VisibleForTesting()
MethodParameters:
Name Flags
uid
which
public void setPackageManager(android.content.pm.PackageManager);
descriptor: (Landroid/content/pm/PackageManager;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield com.android.internal.os.BatteryStatsHelper.mPackageManager:Landroid/content/pm/PackageManager;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/android/internal/os/BatteryStatsHelper;
0 2 1 packageManager Landroid/content/pm/PackageManager;
RuntimeInvisibleAnnotations:
com.android.internal.annotations.VisibleForTesting()
MethodParameters:
Name Flags
packageManager
public void setSystemPackageArray(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield com.android.internal.os.BatteryStatsHelper.mSystemPackageArray:[Ljava/lang/String;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/android/internal/os/BatteryStatsHelper;
0 2 1 array [Ljava/lang/String;
RuntimeInvisibleAnnotations:
com.android.internal.annotations.VisibleForTesting()
MethodParameters:
Name Flags
array
public void setServicePackageArray(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield com.android.internal.os.BatteryStatsHelper.mServicepackageArray:[Ljava/lang/String;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/android/internal/os/BatteryStatsHelper;
0 2 1 array [Ljava/lang/String;
RuntimeInvisibleAnnotations:
com.android.internal.annotations.VisibleForTesting()
MethodParameters:
Name Flags
array
private void load();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mBatteryInfo:Lcom/android/internal/app/IBatteryStats;
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mBatteryInfo:Lcom/android/internal/app/IBatteryStats;
invokestatic com.android.internal.os.BatteryStatsHelper.getStats:(Lcom/android/internal/app/IBatteryStats;)Lcom/android/internal/os/BatteryStatsImpl;
putfield com.android.internal.os.BatteryStatsHelper.mStats:Landroid/os/BatteryStats;
3: aload 0
getfield com.android.internal.os.BatteryStatsHelper.mCollectBatteryBroadcast:Z
ifeq 7
4: aload 0
aload 0
getfield com.android.internal.os.BatteryStatsHelper.mContext:Landroid/content/Context;
aconst_null
5: new android.content.IntentFilter
dup
ldc "android.intent.action.BATTERY_CHANGED"
invokespecial android.content.IntentFilter.<init>:(Ljava/lang/String;)V
6: invokevirtual android.content.Context.registerReceiver:(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
putfield com.android.internal.os.BatteryStatsHelper.mBatteryBroadcast:Landroid/content/Intent;
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/android/internal/os/BatteryStatsHelper;
private static com.android.internal.os.BatteryStatsImpl getStats(com.android.internal.app.IBatteryStats);
descriptor: (Lcom/android/internal/app/IBatteryStats;)Lcom/android/internal/os/BatteryStatsImpl;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=8, args_size=1
start local 0 0: aload 0
invokeinterface com.android.internal.app.IBatteryStats.getStatisticsStream:()Landroid/os/ParcelFileDescriptor;
astore 1
start local 1 1: aload 1
ifnull 25
2: aconst_null
astore 2
aconst_null
astore 3
3: new android.os.ParcelFileDescriptor$AutoCloseInputStream
dup
aload 1
invokespecial android.os.ParcelFileDescriptor$AutoCloseInputStream.<init>:(Landroid/os/ParcelFileDescriptor;)V
astore 4
start local 4 4: aload 4
aload 1
invokevirtual android.os.ParcelFileDescriptor.getFileDescriptor:()Ljava/io/FileDescriptor;
invokestatic android.os.MemoryFile.getSize:(Ljava/io/FileDescriptor;)I
invokestatic com.android.internal.os.BatteryStatsHelper.readFully:(Ljava/io/FileInputStream;I)[B
astore 5
start local 5 5: invokestatic android.os.Parcel.obtain:()Landroid/os/Parcel;
astore 6
start local 6 6: aload 6
aload 5
iconst_0
aload 5
arraylength
invokevirtual android.os.Parcel.unmarshall:([BII)V
7: aload 6
iconst_0
invokevirtual android.os.Parcel.setDataPosition:(I)V
8: getstatic com.android.internal.os.BatteryStatsImpl.CREATOR:Landroid/os/Parcelable$Creator;
9: aload 6
invokeinterface android.os.Parcelable$Creator.createFromParcel:(Landroid/os/Parcel;)Ljava/lang/Object;
checkcast com.android.internal.os.BatteryStatsImpl
10: astore 7
start local 7 11: aload 7
12: aload 4
ifnull 13
aload 4
invokevirtual java.io.FileInputStream.close:()V
13: StackMap locals: com.android.internal.app.IBatteryStats android.os.ParcelFileDescriptor java.lang.Throwable java.lang.Throwable java.io.FileInputStream byte[] android.os.Parcel com.android.internal.os.BatteryStatsImpl
StackMap stack: com.android.internal.os.BatteryStatsImpl
areturn
end local 7 end local 6 end local 5 StackMap locals: com.android.internal.app.IBatteryStats android.os.ParcelFileDescriptor java.lang.Throwable java.lang.Throwable java.io.FileInputStream
StackMap stack: java.lang.Throwable
14: astore 2
15: aload 4
ifnull 16
aload 4
invokevirtual java.io.FileInputStream.close:()V
end local 4 StackMap locals:
StackMap stack:
16: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
17: astore 3
aload 2
ifnonnull 18
aload 3
astore 2
goto 19
StackMap locals:
StackMap stack:
18: aload 2
aload 3
if_acmpeq 19
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
19: aload 2
athrow
StackMap locals: com.android.internal.app.IBatteryStats android.os.ParcelFileDescriptor
StackMap stack: java.io.IOException
20: astore 2
start local 2 21: getstatic com.android.internal.os.BatteryStatsHelper.TAG:Ljava/lang/String;
ldc "Unable to read statistics stream"
aload 2
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 2 end local 1 22: goto 25
StackMap locals: com.android.internal.app.IBatteryStats
StackMap stack: android.os.RemoteException
23: astore 1
start local 1 24: getstatic com.android.internal.os.BatteryStatsHelper.TAG:Ljava/lang/String;
ldc "RemoteException:"
aload 1
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 1 25: StackMap locals:
StackMap stack:
new com.android.internal.os.BatteryStatsImpl
dup
invokespecial com.android.internal.os.BatteryStatsImpl.<init>:()V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 service Lcom/android/internal/app/IBatteryStats;
1 22 1 pfd Landroid/os/ParcelFileDescriptor;
4 16 4 fis Ljava/io/FileInputStream;
5 14 5 data [B
6 14 6 parcel Landroid/os/Parcel;
11 14 7 stats Lcom/android/internal/os/BatteryStatsImpl;
21 22 2 e Ljava/io/IOException;
24 25 1 e Landroid/os/RemoteException;
Exception table:
from to target type
4 12 14 any
3 13 17 any
14 17 17 any
2 13 20 Class java.io.IOException
14 20 20 Class java.io.IOException
0 13 23 Class android.os.RemoteException
14 22 23 Class android.os.RemoteException
MethodParameters:
Name Flags
service
}
SourceFile: "BatteryStatsHelper.java"
NestMembers:
com.android.internal.os.BatteryStatsHelper$1
InnerClasses:
public abstract Timer = android.os.BatteryStats$Timer of android.os.BatteryStats
public abstract Uid = android.os.BatteryStats$Uid of android.os.BatteryStats
public AutoCloseInputStream = android.os.ParcelFileDescriptor$AutoCloseInputStream of android.os.ParcelFileDescriptor
public abstract Creator = android.os.Parcelable$Creator of android.os.Parcelable
public abstract Stub = com.android.internal.app.IBatteryStats$Stub of com.android.internal.app.IBatteryStats
public final DrainType = com.android.internal.os.BatterySipper$DrainType of com.android.internal.os.BatterySipper
com.android.internal.os.BatteryStatsHelper$1