PowerUsageRankService.smali
.class public Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;
.super Ljava/lang/Object;
.source "PowerUsageRankService.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService$AsyncRefreshStats;,
Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService$RunningTask;
}
.end annotation
# static fields
.field private static final DEBUG:Z = false
.field private static final FIRST_APPLICATION_UID:I = 0x2710
.field private static final REFLASH_FAILED:I = 0xc8
.field private static final REFLASH_SUCCESS:I = 0x64
.field private static final TAG:Ljava/lang/String; = "PowerUsageSummary"
# instance fields
.field private mBatteryInfo:Lcom/android/internal/app/IBatteryStats;
.field private mCallbackList:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List",
"<",
"Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageCallback;",
">;"
}
.end annotation
.end field
.field private mContext:Landroid/content/Context;
.field private mLabel:Ljava/lang/String;
.field private mMaxPower:D
.field private mPowerProfile:Lcom/android/internal/os/PowerProfile;
.field private mRefreshHandler:Landroid/os/Handler;
.field private mRefreshLock:Z
.field private mRefreshThread:Ljava/lang/Thread;
.field private mRunningTask:Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService$RunningTask;
.field private mSensorManager:Landroid/hardware/SensorManager;
.field private mStats:Lcom/android/internal/os/BatteryStatsImpl;
.field private mStatsPeriod:J
.field private mStatsType:I
.field private mTotalPower:D
.field private mUsageList:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List",
"<",
"Lcom/ijinshan/kbatterydoctor/powermanager/BatterySipper;",
">;"
}
.end annotation
.end field
.field private result_EXTRA_REPORT_CHECKIN_DETAILS:Ljava/lang/String;
.field private result_EXTRA_REPORT_DETAILS:Ljava/lang/String;
# direct methods
.method public constructor <init>(Landroid/content/Context;)V
.registers 6
.prologue
const/4 v3, 0x0
const/4 v2, 0x0
.line 154
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 58
iput v3, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mStatsType:I
.line 60
const-wide/high16 v0, 0x3ff0000000000000L # 1.0
iput-wide v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mMaxPower:D
.line 63
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
iput-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mUsageList:Ljava/util/List;
.line 69
iput-object v2, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mLabel:Ljava/lang/String;
.line 71
iput-boolean v3, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mRefreshLock:Z
.line 73
iput-object v2, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mRefreshThread:Ljava/lang/Thread;
.line 76
const-wide/16 v0, 0x0
iput-wide v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mStatsPeriod:J
.line 84
new-instance v0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService$1;
invoke-direct {v0, p0}, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService$1;-><init>(Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;)V
iput-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mRefreshHandler:Landroid/os/Handler;
.line 148
iput-object v2, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mRunningTask:Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService$RunningTask;
.line 155
iput-object p1, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mContext:Landroid/content/Context;
.line 156
invoke-direct {p0}, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->init()V
.line 157
return-void
.end method
.method static synthetic access$0(Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;Z)V
.registers 2
.prologue
.line 71
iput-boolean p1, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mRefreshLock:Z
return-void
.end method
.method static synthetic access$1(Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;)Ljava/lang/String;
.registers 2
.prologue
.line 69
iget-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mLabel:Ljava/lang/String;
return-object v0
.end method
.method static synthetic access$2(Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;Ljava/lang/String;)V
.registers 2
.prologue
.line 69
iput-object p1, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mLabel:Ljava/lang/String;
return-void
.end method
.method static synthetic access$3(Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;)Ljava/util/List;
.registers 2
.prologue
.line 75
iget-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mCallbackList:Ljava/util/List;
return-object v0
.end method
.method static synthetic access$4(Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;)Ljava/util/List;
.registers 2
.prologue
.line 63
iget-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mUsageList:Ljava/util/List;
return-object v0
.end method
.method static synthetic access$5(Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;Ljava/util/List;)V
.registers 2
.prologue
.line 114
invoke-direct {p0, p1}, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->notifySuccess(Ljava/util/List;)V
return-void
.end method
.method static synthetic access$6(Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;Ljava/lang/Thread;)V
.registers 2
.prologue
.line 73
iput-object p1, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mRefreshThread:Ljava/lang/Thread;
return-void
.end method
.method static synthetic access$7(Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;)V
.registers 1
.prologue
.line 131
invoke-direct {p0}, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->notifyFailed()V
return-void
.end method
.method static synthetic access$8(Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;)Landroid/os/Handler;
.registers 2
.prologue
.line 84
iget-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mRefreshHandler:Landroid/os/Handler;
return-object v0
.end method
.method static synthetic access$9(Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;)I
.registers 2
.prologue
.line 188
invoke-direct {p0}, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->refreshStats()I
move-result v0
return v0
.end method
.method private asyncRefreshStats()V
.registers 4
.prologue
.line 173
iget-boolean v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mRefreshLock:Z
if-nez v0, :cond_19
.line 174
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mRefreshLock:Z
.line 176
new-instance v0, Ljava/lang/Thread;
new-instance v1, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService$AsyncRefreshStats;
const/4 v2, 0x0
invoke-direct {v1, p0, v2}, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService$AsyncRefreshStats;-><init>(Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService$AsyncRefreshStats;)V
invoke-direct {v0, v1}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
iput-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mRefreshThread:Ljava/lang/Thread;
.line 177
iget-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mRefreshThread:Ljava/lang/Thread;
invoke-virtual {v0}, Ljava/lang/Thread;->start()V
.line 179
:cond_19
return-void
.end method
.method private getAverageDataCost()D
.registers 15
.prologue
.line 666
.line 668
iget-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mPowerProfile:Lcom/android/internal/os/PowerProfile;
.line 669
const-string/jumbo v1, "wifi.active"
invoke-virtual {v0, v1}, Lcom/android/internal/os/PowerProfile;->getAveragePower(Ljava/lang/String;)D
move-result-wide v0
const-wide v2, 0x40ac200000000000L # 3600.0
.line 668
div-double v6, v0, v2
.line 670
iget-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mPowerProfile:Lcom/android/internal/os/PowerProfile;
.line 671
const-string v1, "radio.active"
invoke-virtual {v0, v1}, Lcom/android/internal/os/PowerProfile;->getAveragePower(Ljava/lang/String;)D
move-result-wide v0
const-wide v2, 0x40ac200000000000L # 3600.0
.line 670
div-double v8, v0, v2
.line 672
const-wide/16 v2, 0x0
.line 673
const-wide/16 v0, 0x0
.line 674
sget v4, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v5, 0x13
if-ge v4, v5, :cond_4c
.line 675
iget-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mStats:Lcom/android/internal/os/BatteryStatsImpl;
iget v1, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mStatsType:I
invoke-virtual {v0, v1}, Lcom/android/internal/os/BatteryStatsImpl;->getMobileTcpBytesReceived(I)J
move-result-wide v0
.line 676
iget-object v2, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mStats:Lcom/android/internal/os/BatteryStatsImpl;
iget v3, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mStatsType:I
invoke-virtual {v2, v3}, Lcom/android/internal/os/BatteryStatsImpl;->getMobileTcpBytesSent(I)J
move-result-wide v2
.line 675
add-long/2addr v2, v0
.line 677
iget-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mStats:Lcom/android/internal/os/BatteryStatsImpl;
iget v1, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mStatsType:I
invoke-virtual {v0, v1}, Lcom/android/internal/os/BatteryStatsImpl;->getTotalTcpBytesReceived(I)J
move-result-wide v0
.line 678
iget-object v4, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mStats:Lcom/android/internal/os/BatteryStatsImpl;
iget v5, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mStatsType:I
invoke-virtual {v4, v5}, Lcom/android/internal/os/BatteryStatsImpl;->getTotalTcpBytesSent(I)J
move-result-wide v4
.line 677
add-long/2addr v0, v4
sub-long/2addr v0, v2
.line 681
:cond_4c
iget-object v4, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mStats:Lcom/android/internal/os/BatteryStatsImpl;
invoke-virtual {v4}, Lcom/android/internal/os/BatteryStatsImpl;->getRadioDataUptime()J
move-result-wide v4
const-wide/16 v10, 0x3e8
div-long/2addr v4, v10
.line 682
const-wide/16 v10, 0x0
cmp-long v10, v4, v10
if-eqz v10, :cond_81
const-wide/16 v10, 0x8
mul-long/2addr v10, v2
const-wide/16 v12, 0x3e8
mul-long/2addr v10, v12
.line 683
div-long v4, v10, v4
.line 685
:goto_63
const-wide/16 v10, 0x8
div-long/2addr v4, v10
long-to-double v4, v4
div-double v4, v8, v4
.line 686
const-wide v8, 0x40fe848000000000L # 125000.0
div-double/2addr v6, v8
.line 687
add-long v8, v0, v2
const-wide/16 v10, 0x0
cmp-long v8, v8, v10
if-eqz v8, :cond_85
.line 688
long-to-double v8, v2
mul-double/2addr v4, v8
long-to-double v8, v0
mul-double/2addr v6, v8
add-double/2addr v4, v6
.line 689
add-long/2addr v0, v2
long-to-double v0, v0
.line 688
div-double v0, v4, v0
.line 691
:goto_80
return-wide v0
.line 683
:cond_81
const-wide/32 v4, 0x30d40
goto :goto_63
.line 691
:cond_85
const-wide/16 v0, 0x0
goto :goto_80
.end method
.method private getProcessCpuTime(I)F
.registers 14
.prologue
const-wide/high16 v10, 0x4059000000000000L # 100.0
.line 698
:try_start_2
new-instance v0, Ljava/io/FileReader;
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "/proc/"
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
.line 699
const-string v2, "/stat"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
.line 698
invoke-direct {v0, v1}, Ljava/io/FileReader;-><init>(Ljava/lang/String;)V
.line 700
new-instance v1, Ljava/io/BufferedReader;
invoke-direct {v1, v0}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V
.line 702
invoke-virtual {v1}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v2
.line 703
const-string v3, "\\s+"
invoke-virtual {v2, v3}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v2
.line 704
const-wide/16 v4, 0x64
const/16 v3, 0xd
aget-object v3, v2, v3
invoke-static {v3}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v6
.line 705
const/16 v3, 0xe
aget-object v3, v2, v3
invoke-static {v3}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v8
add-long/2addr v6, v8
.line 706
const/16 v3, 0xf
aget-object v3, v2, v3
invoke-static {v3}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v8
add-long/2addr v6, v8
.line 707
const/16 v3, 0x10
aget-object v2, v2, v3
invoke-static {v2}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v2
add-long/2addr v2, v6
.line 704
mul-long/2addr v2, v4
long-to-double v2, v2
.line 708
invoke-virtual {v1}, Ljava/io/BufferedReader;->close()V
.line 709
invoke-virtual {v0}, Ljava/io/FileReader;->close()V
:try_end_5c
.catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5c} :catch_8e
.line 711
:try_start_5c
new-instance v0, Ljava/text/DecimalFormat;
const-string v1, "#0.00"
invoke-direct {v0, v1}, Ljava/text/DecimalFormat;-><init>(Ljava/lang/String;)V
div-double v4, v2, v10
invoke-virtual {v0, v4, v5}, Ljava/text/DecimalFormat;->format(D)Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/lang/Float;->valueOf(Ljava/lang/String;)Ljava/lang/Float;
move-result-object v0
.line 712
invoke-virtual {v0}, Ljava/lang/Float;->floatValue()F
:try_end_70
.catch Ljava/lang/Exception; {:try_start_5c .. :try_end_70} :catch_72
move-result v0
.line 730
:goto_71
return v0
.line 713
:catch_72
move-exception v0
.line 718
:try_start_73
new-instance v0, Ljava/text/DecimalFormat;
const-string v1, "#0,00"
invoke-direct {v0, v1}, Ljava/text/DecimalFormat;-><init>(Ljava/lang/String;)V
div-double v4, v2, v10
invoke-virtual {v0, v4, v5}, Ljava/text/DecimalFormat;->format(D)Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/lang/Float;->valueOf(Ljava/lang/String;)Ljava/lang/Float;
move-result-object v0
.line 719
invoke-virtual {v0}, Ljava/lang/Float;->floatValue()F
:try_end_87
.catch Ljava/lang/Exception; {:try_start_73 .. :try_end_87} :catch_89
move-result v0
goto :goto_71
.line 720
:catch_89
move-exception v0
.line 722
div-double v0, v2, v10
double-to-float v0, v0
goto :goto_71
.line 726
:catch_8e
move-exception v0
.line 727
const-string v1, "PowerUsageSummary"
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, "d == "
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object v0
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v1, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 728
const/4 v0, 0x0
goto :goto_71
.end method
.method private getResult(I)V
.registers 7
.prologue
.line 540
:try_start_0
iget-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mStats:Lcom/android/internal/os/BatteryStatsImpl;
if-eqz v0, :cond_33
.line 541
new-instance v0, Ljava/io/StringWriter;
invoke-direct {v0}, Ljava/io/StringWriter;-><init>()V
.line 542
new-instance v1, Ljava/io/PrintWriter;
invoke-direct {v1, v0}, Ljava/io/PrintWriter;-><init>(Ljava/io/Writer;)V
.line 543
iget-object v2, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mStats:Lcom/android/internal/os/BatteryStatsImpl;
const-string v3, ""
const/4 v4, 0x3
invoke-virtual {v2, v1, v3, v4, p1}, Lcom/android/internal/os/BatteryStatsImpl;->dumpLocked(Ljava/io/PrintWriter;Ljava/lang/String;II)V
.line 546
invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v0
iput-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->result_EXTRA_REPORT_CHECKIN_DETAILS:Ljava/lang/String;
.line 548
new-instance v0, Ljava/io/StringWriter;
invoke-direct {v0}, Ljava/io/StringWriter;-><init>()V
.line 549
new-instance v1, Ljava/io/PrintWriter;
invoke-direct {v1, v0}, Ljava/io/PrintWriter;-><init>(Ljava/io/Writer;)V
.line 550
iget-object v2, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mStats:Lcom/android/internal/os/BatteryStatsImpl;
const/4 v3, 0x3
invoke-virtual {v2, v1, v3, p1}, Lcom/android/internal/os/BatteryStatsImpl;->dumpCheckinLocked(Ljava/io/PrintWriter;II)V
.line 553
invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v0
iput-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->result_EXTRA_REPORT_CHECKIN_DETAILS:Ljava/lang/String;
.line 564
:goto_32
return-void
.line 556
:cond_33
const-string v0, ""
iput-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->result_EXTRA_REPORT_CHECKIN_DETAILS:Ljava/lang/String;
.line 557
const-string v0, ""
iput-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->result_EXTRA_REPORT_CHECKIN_DETAILS:Ljava/lang/String;
:try_end_3b
.catch Ljava/lang/Error; {:try_start_0 .. :try_end_3b} :catch_3c
goto :goto_32
.line 559
:catch_3c
move-exception v0
.line 560
const-string v0, ""
iput-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->result_EXTRA_REPORT_CHECKIN_DETAILS:Ljava/lang/String;
.line 561
const-string v0, ""
iput-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->result_EXTRA_REPORT_CHECKIN_DETAILS:Ljava/lang/String;
goto :goto_32
.end method
.method private init()V
.registers 3
.prologue
.line 161
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
iput-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mCallbackList:Ljava/util/List;
.line 163
const-string v0, "batteryinfo"
invoke-static {v0}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
move-result-object v0
.line 162
invoke-static {v0}, Lcom/android/internal/app/IBatteryStats$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IBatteryStats;
move-result-object v0
iput-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mBatteryInfo:Lcom/android/internal/app/IBatteryStats;
.line 164
new-instance v0, Lcom/android/internal/os/PowerProfile;
iget-object v1, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mContext:Landroid/content/Context;
invoke-direct {v0, v1}, Lcom/android/internal/os/PowerProfile;-><init>(Landroid/content/Context;)V
iput-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mPowerProfile:Lcom/android/internal/os/PowerProfile;
.line 165
const/4 v0, 0x0
iput-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mStats:Lcom/android/internal/os/BatteryStatsImpl;
.line 167
:try_start_1f
iget-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mContext:Landroid/content/Context;
const-string v1, "sensor"
invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/hardware/SensorManager;
iput-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mSensorManager:Landroid/hardware/SensorManager;
:try_end_2b
.catch Ljava/lang/Exception; {:try_start_1f .. :try_end_2b} :catch_2c
.line 170
:goto_2b
return-void
.line 168
:catch_2c
move-exception v0
goto :goto_2b
.end method
.method private initForRefresh()V
.registers 3
.prologue
const-wide/16 v0, 0x0
.line 182
iput-wide v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mMaxPower:D
.line 183
iput-wide v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mTotalPower:D
.line 185
iget-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mUsageList:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->clear()V
.line 186
return-void
.end method
.method private load()V
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
const/4 v3, 0x0
.line 742
iget-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mBatteryInfo:Lcom/android/internal/app/IBatteryStats;
invoke-interface {v0}, Lcom/android/internal/app/IBatteryStats;->getStatistics()[B
move-result-object v0
.line 743
invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
move-result-object v1
.line 744
array-length v2, v0
.line 745
invoke-virtual {v1, v0, v3, v2}, Landroid/os/Parcel;->unmarshall([BII)V
.line 746
invoke-virtual {v1, v3}, Landroid/os/Parcel;->setDataPosition(I)V
.line 747
sget-object v0, Lcom/android/internal/os/BatteryStatsImpl;->CREATOR:Landroid/os/Parcelable$Creator;
.line 748
invoke-interface {v0, v1}, Landroid/os/Parcelable$Creator;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/android/internal/os/BatteryStatsImpl;
.line 747
iput-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mStats:Lcom/android/internal/os/BatteryStatsImpl;
.line 749
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0xa
if-ne v0, v1, :cond_29
.line 750
iget-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mStats:Lcom/android/internal/os/BatteryStatsImpl;
iget v1, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mStatsType:I
invoke-virtual {v0, v1}, Lcom/android/internal/os/BatteryStatsImpl;->distributeWorkLocked(I)V
.line 752
:cond_29
return-void
.end method
.method private notifyFailed()V
.registers 3
.prologue
.line 132
iget-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mCallbackList:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v0
.line 133
if-lez v0, :cond_d
.line 134
add-int/lit8 v0, v0, -0x1
move v1, v0
:goto_b
if-gez v1, :cond_e
.line 141
:cond_d
return-void
.line 135
:cond_e
iget-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mCallbackList:Ljava/util/List;
invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageCallback;
.line 136
if-eqz v0, :cond_1b
.line 137
invoke-interface {v0}, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageCallback;->failed()V
.line 134
:cond_1b
add-int/lit8 v0, v1, -0x1
move v1, v0
goto :goto_b
.end method
.method private notifySuccess(Ljava/util/List;)V
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List",
"<",
"Lcom/ijinshan/kbatterydoctor/powermanager/BatterySipper;",
">;)V"
}
.end annotation
.prologue
.line 115
iget-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mCallbackList:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v0
.line 116
if-lez v0, :cond_d
.line 117
add-int/lit8 v0, v0, -0x1
move v1, v0
:goto_b
if-gez v1, :cond_e
.line 129
:cond_d
return-void
.line 118
:cond_e
iget-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mCallbackList:Ljava/util/List;
invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageCallback;
.line 119
if-eqz v0, :cond_32
.line 120
iget-object v2, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mLabel:Ljava/lang/String;
invoke-interface {v0, v2}, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageCallback;->setLabel(Ljava/lang/String;)V
.line 121
iget-wide v2, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mMaxPower:D
invoke-interface {v0, v2, v3}, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageCallback;->setMaxPower(D)V
.line 122
iget-wide v2, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mStatsPeriod:J
invoke-interface {v0, v2, v3}, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageCallback;->setStatsPeriod(J)V
.line 123
iget-wide v2, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mTotalPower:D
invoke-interface {v0, v2, v3}, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageCallback;->setTotalPower(D)V
.line 124
invoke-interface {v0, p1}, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageCallback;->setData(Ljava/util/List;)V
.line 125
invoke-interface {v0}, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageCallback;->complete()V
.line 117
:cond_32
add-int/lit8 v0, v1, -0x1
move v1, v0
goto :goto_b
.end method
.method private processAliveAppUsage()V
.registers 15
.prologue
.line 572
iget-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mContext:Landroid/content/Context;
invoke-virtual {v0}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
move-result-object v1
.line 573
new-instance v8, Ljava/util/TreeMap;
invoke-direct {v8}, Ljava/util/TreeMap;-><init>()V
.line 574
new-instance v9, Ljava/util/TreeMap;
invoke-direct {v9}, Ljava/util/TreeMap;-><init>()V
.line 576
const/4 v0, 0x0
.line 579
const/16 v2, 0x2000
:try_start_13
invoke-virtual {v1, v2}, Landroid/content/pm/PackageManager;->getInstalledApplications(I)Ljava/util/List;
:try_end_16
.catch Ljava/lang/Exception; {:try_start_13 .. :try_end_16} :catch_1d
move-result-object v0
move-object v2, v0
.line 585
:goto_18
iget-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mRunningTask:Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService$RunningTask;
if-nez v0, :cond_2a
.line 663
:goto_1c
return-void
.line 580
:catch_1d
move-exception v1
.line 581
const-string v2, "PowerUsageRankService"
const-string v3, "Getting local installed applications failed."
invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 582
invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
move-object v2, v0
goto :goto_18
.line 589
:cond_2a
iget-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mRunningTask:Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService$RunningTask;
.line 590
invoke-interface {v0}, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService$RunningTask;->getRunningAppProcesses()Ljava/util/List;
move-result-object v6
.line 596
if-eqz v2, :cond_40
invoke-interface {v2}, Ljava/util/List;->size()I
move-result v0
if-lez v0, :cond_40
.line 597
const/4 v0, 0x0
move v3, v0
:goto_3a
invoke-interface {v2}, Ljava/util/List;->size()I
move-result v0
if-lt v3, v0, :cond_61
.line 641
:cond_40
invoke-virtual {v8}, Ljava/util/TreeMap;->keySet()Ljava/util/Set;
move-result-object v0
.line 642
if-eqz v0, :cond_56
invoke-interface {v0}, Ljava/util/Set;->size()I
move-result v1
if-lez v1, :cond_56
.line 643
invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v10
.line 644
:goto_50
invoke-interface {v10}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-nez v0, :cond_f2
.line 660
:cond_56
invoke-virtual {v8}, Ljava/util/TreeMap;->clear()V
.line 661
invoke-virtual {v9}, Ljava/util/TreeMap;->clear()V
.line 662
const-string v0, "Percentage of power consumed"
iput-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mLabel:Ljava/lang/String;
goto :goto_1c
.line 599
:cond_61
invoke-interface {v2, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/content/pm/ApplicationInfo;
.line 601
invoke-interface {v6}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v7
.line 602
:cond_6b
:goto_6b
invoke-interface {v7}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-nez v1, :cond_75
.line 597
:cond_71
add-int/lit8 v0, v3, 0x1
move v3, v0
goto :goto_3a
.line 604
:cond_75
invoke-interface {v7}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/cleanmaster/activitymanagerhelper/RunningAppProcessInfo;
.line 605
iget-object v10, v1, Lcom/cleanmaster/activitymanagerhelper/RunningAppProcessInfo;->processName:Ljava/lang/String;
.line 606
iget-object v11, v0, Landroid/content/pm/ApplicationInfo;->packageName:Ljava/lang/String;
.line 607
if-eqz v11, :cond_6b
if-eqz v10, :cond_6b
.line 611
invoke-virtual {v11, v10}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_6b
.line 615
iget v4, v1, Lcom/cleanmaster/activitymanagerhelper/RunningAppProcessInfo;->pid:I
invoke-direct {p0, v4}, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->getProcessCpuTime(I)F
move-result v4
float-to-double v4, v4
.line 616
const-string v12, "com.ijinshan.kbatterydoctor"
invoke-virtual {v12, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v12
if-nez v12, :cond_71
.line 617
const-string v12, "com.ijinshan.mguard"
invoke-virtual {v12, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v12
if-nez v12, :cond_71
.line 618
const-string v12, "com.ijinshan.browser"
invoke-virtual {v12, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v11
if-nez v11, :cond_71
.line 619
const-string v11, "com.ijinshan.kbatterydoctor_en"
invoke-virtual {v11, v10}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v11
if-nez v11, :cond_71
.line 620
const-string v11, "com.ijinshan.mguard"
invoke-virtual {v11, v10}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v11
if-nez v11, :cond_71
.line 621
const-string v11, "com.ijinshan.browser"
invoke-virtual {v11, v10}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v11
if-nez v11, :cond_71
.line 625
iget v11, v1, Lcom/cleanmaster/activitymanagerhelper/RunningAppProcessInfo;->uid:I
.line 626
invoke-static {v11}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
invoke-virtual {v8, v1}, Ljava/util/TreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/Double;
.line 627
if-eqz v1, :cond_de
.line 628
invoke-virtual {v1}, Ljava/lang/Double;->doubleValue()D
move-result-wide v12
add-double/2addr v4, v12
.line 629
invoke-static {v11}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
invoke-static {v4, v5}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object v12
invoke-virtual {v8, v1, v12}, Ljava/util/TreeMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 631
:cond_de
invoke-static {v11}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
invoke-static {v4, v5}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object v4
invoke-virtual {v8, v1, v4}, Ljava/util/TreeMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 632
invoke-static {v11}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
invoke-virtual {v9, v1, v10}, Ljava/util/TreeMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto/16 :goto_6b
.line 645
:cond_f2
invoke-interface {v10}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Integer;
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v5
.line 646
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
invoke-virtual {v8, v0}, Ljava/util/TreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Double;
invoke-virtual {v0}, Ljava/lang/Double;->doubleValue()D
move-result-wide v6
.line 647
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
invoke-virtual {v9, v0}, Ljava/util/TreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/String;
.line 648
new-instance v0, Lcom/ijinshan/kbatterydoctor/powermanager/BatterySipper;
iget-object v1, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mContext:Landroid/content/Context;
.line 649
sget-object v3, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageDetail$DrainType;->APP:Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageDetail$DrainType;
const/4 v4, 0x0
.line 648
invoke-direct/range {v0 .. v7}, Lcom/ijinshan/kbatterydoctor/powermanager/BatterySipper;-><init>(Landroid/content/Context;Ljava/lang/String;Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageDetail$DrainType;IID)V
.line 650
iget-object v1, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mUsageList:Ljava/util/List;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 652
iget-wide v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mTotalPower:D
add-double/2addr v0, v6
iput-wide v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mTotalPower:D
goto/16 :goto_50
.end method
.method private processAppUsage()V
.registers 55
.prologue
.line 234
const/4 v6, -0x1
.line 235
move-object/from16 v0, p0
iget v0, v0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mStatsType:I
move/from16 v37, v0
.line 236
move-object/from16 v0, p0
iget-object v4, v0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mPowerProfile:Lcom/android/internal/os/PowerProfile;
invoke-virtual {v4}, Lcom/android/internal/os/PowerProfile;->getNumSpeedSteps()I
move-result v38
.line 237
move/from16 v0, v38
new-array v0, v0, [D
move-object/from16 v39, v0
.line 238
move/from16 v0, v38
new-array v0, v0, [J
move-object/from16 v40, v0
.line 239
const/4 v4, 0x0
:goto_1c
move/from16 v0, v38
if-lt v4, v0, :cond_c0
.line 243
invoke-direct/range {p0 .. p0}, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->getAverageDataCost()D
move-result-wide v42
.line 244
const-string v4, "Percentage of power consumed"
move-object/from16 v0, p0
iput-object v4, v0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mLabel:Ljava/lang/String;
.line 245
move-object/from16 v0, p0
iget-object v4, v0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mStats:Lcom/android/internal/os/BatteryStatsImpl;
.line 246
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v8
const-wide/16 v10, 0x3e8
mul-long/2addr v8, v10
.line 245
move/from16 v0, v37
invoke-virtual {v4, v8, v9, v0}, Lcom/android/internal/os/BatteryStatsImpl;->computeBatteryRealtime(JI)J
move-result-wide v44
.line 247
const-wide/16 v10, 0x0
.line 248
const/4 v12, 0x0
.line 249
move-wide/from16 v0, v44
move-object/from16 v2, p0
iput-wide v0, v2, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mStatsPeriod:J
.line 250
move-object/from16 v0, p0
iget-object v4, v0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mStats:Lcom/android/internal/os/BatteryStatsImpl;
invoke-virtual {v4}, Lcom/android/internal/os/BatteryStatsImpl;->getUidStats()Landroid/util/SparseArray;
move-result-object v41
.line 251
invoke-virtual/range {v41 .. v41}, Landroid/util/SparseArray;->size()I
move-result v46
.line 252
const/4 v4, 0x0
move/from16 v36, v4
move v4, v6
:goto_54
move/from16 v0, v36
move/from16 v1, v46
if-lt v0, v1, :cond_d0
.line 515
if-eqz v12, :cond_bf
.line 516
move-object/from16 v0, p0
iget-object v4, v0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mStats:Lcom/android/internal/os/BatteryStatsImpl;
.line 517
invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
move-result-wide v6
const-wide/16 v8, 0x3e8
mul-long/2addr v6, v8
.line 516
move/from16 v0, v37
invoke-virtual {v4, v6, v7, v0}, Lcom/android/internal/os/BatteryStatsImpl;->computeBatteryUptime(JI)J
move-result-wide v4
.line 517
const-wide/16 v6, 0x3e8
.line 516
div-long/2addr v4, v6
.line 519
move-object/from16 v0, p0
iget-object v6, v0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mStats:Lcom/android/internal/os/BatteryStatsImpl;
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v8
move/from16 v0, v37
invoke-virtual {v6, v8, v9, v0}, Lcom/android/internal/os/BatteryStatsImpl;->getScreenOnTime(JI)J
move-result-wide v6
.line 520
const-wide/16 v8, 0x3e8
.line 519
div-long/2addr v6, v8
sub-long v6, v10, v6
sub-long/2addr v4, v6
.line 521
const-wide/16 v6, 0x0
cmp-long v6, v4, v6
if-lez v6, :cond_bf
.line 522
long-to-double v6, v4
move-object/from16 v0, p0
iget-object v8, v0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mPowerProfile:Lcom/android/internal/os/PowerProfile;
.line 523
const-string v9, "cpu.awake"
invoke-virtual {v8, v9}, Lcom/android/internal/os/PowerProfile;->getAveragePower(Ljava/lang/String;)D
move-result-wide v8
.line 522
mul-double/2addr v6, v8
.line 523
const-wide v8, 0x408f400000000000L # 1000.0
.line 522
div-double/2addr v6, v8
.line 524
iget-wide v8, v12, Lcom/ijinshan/kbatterydoctor/powermanager/BatterySipper;->wakeLockTime:J
add-long/2addr v4, v8
iput-wide v4, v12, Lcom/ijinshan/kbatterydoctor/powermanager/BatterySipper;->wakeLockTime:J
.line 525
iget-wide v4, v12, Lcom/ijinshan/kbatterydoctor/powermanager/BatterySipper;->mValue:D
add-double/2addr v4, v6
iput-wide v4, v12, Lcom/ijinshan/kbatterydoctor/powermanager/BatterySipper;->mValue:D
.line 526
iget-wide v4, v12, Lcom/ijinshan/kbatterydoctor/powermanager/BatterySipper;->mValue:D
move-object/from16 v0, p0
iget-wide v8, v0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mMaxPower:D
cmpl-double v4, v4, v8
if-lez v4, :cond_b6
.line 527
iget-wide v4, v12, Lcom/ijinshan/kbatterydoctor/powermanager/BatterySipper;->mValue:D
move-object/from16 v0, p0
iput-wide v4, v0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mMaxPower:D
.line 529
:cond_b6
move-object/from16 v0, p0
iget-wide v4, v0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mTotalPower:D
add-double/2addr v4, v6
move-object/from16 v0, p0
iput-wide v4, v0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mTotalPower:D
.line 536
:cond_bf
return-void
.line 240
:cond_c0
move-object/from16 v0, p0
iget-object v5, v0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mPowerProfile:Lcom/android/internal/os/PowerProfile;
.line 241
const-string v7, "cpu.active"
.line 240
invoke-virtual {v5, v7, v4}, Lcom/android/internal/os/PowerProfile;->getAveragePower(Ljava/lang/String;I)D
move-result-wide v8
aput-wide v8, v39, v4
.line 239
add-int/lit8 v4, v4, 0x1
goto/16 :goto_1c
.line 253
:cond_d0
move-object/from16 v0, v41
move/from16 v1, v36
invoke-virtual {v0, v1}, Landroid/util/SparseArray;->valueAt(I)Ljava/lang/Object;
move-result-object v9
check-cast v9, Landroid/os/BatteryStats$Uid;
.line 255
invoke-virtual {v9}, Landroid/os/BatteryStats$Uid;->getUid()I
move-result v20
.line 256
const/16 v5, 0x2710
move/from16 v0, v20
if-gt v0, v5, :cond_f0
if-eqz v20, :cond_f0
move v6, v4
move-wide v4, v10
.line 252
:goto_e8
add-int/lit8 v7, v36, 0x1
move/from16 v36, v7
move-wide v10, v4
move v4, v6
goto/16 :goto_54
.line 260
:cond_f0
const-wide/16 v18, 0x0
.line 261
const-wide/16 v16, 0x0
.line 262
const/4 v5, 0x0
.line 264
invoke-virtual {v9}, Landroid/os/BatteryStats$Uid;->getProcessStats()Ljava/util/Map;
move-result-object v8
.line 265
const-wide/16 v14, 0x0
.line 266
const-wide/16 v6, 0x0
.line 267
const-wide/16 v26, 0x0
.line 268
const/16 v24, 0x0
.line 269
const/16 v25, 0x0
.line 270
const-wide/16 v30, 0x0
.line 271
const-wide/16 v28, 0x0
.line 274
invoke-interface {v8}, Ljava/util/Map;->size()I
move-result v13
if-lez v13, :cond_492
.line 277
invoke-interface {v8}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object v8
invoke-interface {v8}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v32
move-object v8, v5
move v13, v4
.line 276
:goto_117
invoke-interface/range {v32 .. v32}, Ljava/util/Iterator;->hasNext()Z
move-result v4
if-nez v4, :cond_221
move-wide v4, v14
move-wide/from16 v14, v18
move-wide/from16 v18, v6
move-object v6, v8
.line 327
:goto_123
cmp-long v7, v18, v4
if-lez v7, :cond_484
move-wide/from16 v16, v18
.line 331
:goto_129
const-wide v4, 0x408f400000000000L # 1000.0
div-double v22, v14, v4
.line 335
invoke-virtual {v9}, Landroid/os/BatteryStats$Uid;->getWakelockStats()Ljava/util/Map;
move-result-object v4
.line 337
invoke-interface {v4}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object v4
invoke-interface {v4}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v5
move/from16 v20, v24
move-wide/from16 v14, v26
.line 336
:cond_140
:goto_140
invoke-interface {v5}, Ljava/util/Iterator;->hasNext()Z
move-result v4
if-nez v4, :cond_305
.line 349
const-wide/16 v4, 0x3e8
div-long v48, v14, v4
.line 350
add-long v14, v10, v48
.line 353
move-wide/from16 v0, v48
long-to-double v4, v0
move-object/from16 v0, p0
iget-object v7, v0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mPowerProfile:Lcom/android/internal/os/PowerProfile;
.line 354
const-string v8, "cpu.awake"
invoke-virtual {v7, v8}, Lcom/android/internal/os/PowerProfile;->getAveragePower(Ljava/lang/String;)D
move-result-wide v10
.line 353
mul-double/2addr v4, v10
.line 354
const-wide v10, 0x408f400000000000L # 1000.0
div-double/2addr v4, v10
add-double v22, v22, v4
.line 358
invoke-virtual {v9}, Landroid/os/BatteryStats$Uid;->getPackageStats()Ljava/util/Map;
move-result-object v4
.line 360
invoke-interface {v4}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object v4
invoke-interface {v4}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v5
move/from16 v21, v25
.line 359
:goto_170
invoke-interface {v5}, Ljava/util/Iterator;->hasNext()Z
move-result v4
if-nez v4, :cond_32e
.line 367
const-wide/16 v10, 0x0
.line 368
const-wide/16 v4, 0x0
.line 374
:try_start_17a
invoke-virtual {v9}, Landroid/os/BatteryStats$Uid;->getUid()I
move-result v7
invoke-static {v7}, Landroid/net/TrafficStats;->getUidRxBytes(I)J
move-result-wide v10
.line 375
const-wide/16 v24, 0x0
cmp-long v7, v10, v24
if-lez v7, :cond_346
.line 376
:goto_188
invoke-virtual {v9}, Landroid/os/BatteryStats$Uid;->getUid()I
move-result v7
invoke-static {v7}, Landroid/net/TrafficStats;->getUidTxBytes(I)J
:try_end_18f
.catch Ljava/lang/Error; {:try_start_17a .. :try_end_18f} :catch_34e
move-result-wide v4
.line 377
const-wide/16 v24, 0x0
cmp-long v7, v4, v24
if-lez v7, :cond_34a
.line 378
:goto_196
add-long v24, v10, v4
move-wide/from16 v0, v24
long-to-double v0, v0
move-wide/from16 v24, v0
mul-double v24, v24, v42
add-double v24, v24, v22
.line 384
:try_start_1a1
move-wide/from16 v0, v44
move/from16 v2, v37
invoke-virtual {v9, v0, v1, v2}, Landroid/os/BatteryStats$Uid;->getWifiRunningTime(JI)J
move-result-wide v22
const-wide/16 v26, 0x3e8
div-long v22, v22, v26
:try_end_1ad
.catch Ljava/lang/Error; {:try_start_1a1 .. :try_end_1ad} :catch_472
move-wide/from16 v26, v22
move-wide/from16 v22, v4
move-wide/from16 v4, v24
move-wide/from16 v24, v10
.line 390
:goto_1b5
move-wide/from16 v0, v26
long-to-double v10, v0
move-object/from16 v0, p0
iget-object v7, v0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mPowerProfile:Lcom/android/internal/os/PowerProfile;
.line 391
const-string/jumbo v8, "wifi.on"
invoke-virtual {v7, v8}, Lcom/android/internal/os/PowerProfile;->getAveragePower(Ljava/lang/String;)D
move-result-wide v32
.line 390
mul-double v10, v10, v32
.line 391
const-wide v32, 0x408f400000000000L # 1000.0
div-double v10, v10, v32
add-double/2addr v4, v10
.line 395
invoke-virtual {v9}, Landroid/os/BatteryStats$Uid;->getSensorStats()Ljava/util/Map;
move-result-object v7
.line 398
invoke-interface {v7}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object v7
invoke-interface {v7}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v7
move-wide/from16 v32, v4
.line 397
:goto_1db
invoke-interface {v7}, Ljava/util/Iterator;->hasNext()Z
move-result v4
if-nez v4, :cond_35d
.line 432
move-wide/from16 v0, v44
move/from16 v2, v37
invoke-virtual {v9, v0, v1, v2}, Landroid/os/BatteryStats$Uid;->getVideoTurnedOnTime(JI)J
move-result-wide v34
.line 433
move-wide/from16 v0, v44
move/from16 v2, v37
invoke-virtual {v9, v0, v1, v2}, Landroid/os/BatteryStats$Uid;->getAudioTurnedOnTime(JI)J
move-result-wide v50
.line 434
const-wide/16 v4, 0x0
cmpl-double v4, v32, v4
if-gez v4, :cond_1fd
invoke-virtual {v9}, Landroid/os/BatteryStats$Uid;->getUid()I
move-result v4
if-nez v4, :cond_47a
.line 436
:cond_1fd
const-string v4, "com.ijinshan.kbatterydoctor"
invoke-virtual {v4, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-nez v4, :cond_47a
.line 437
const-string v4, "com.ijinshan.kbatterydoctor_en"
invoke-virtual {v4, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-nez v4, :cond_47a
.line 438
const-string v4, "com.ijinshan.mguard"
invoke-virtual {v4, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-nez v4, :cond_47a
.line 439
const-string v4, "com.ijinshan.browser"
invoke-virtual {v4, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_3c9
move-wide v4, v14
move v6, v13
.line 440
goto/16 :goto_e8
.line 277
:cond_221
invoke-interface/range {v32 .. v32}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v4
check-cast v4, Ljava/util/Map$Entry;
.line 281
invoke-interface {v4}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v5
check-cast v5, Landroid/os/BatteryStats$Uid$Proc;
.line 282
move/from16 v0, v37
invoke-virtual {v5, v0}, Landroid/os/BatteryStats$Uid$Proc;->getUserTime(I)J
move-result-wide v22
.line 283
move/from16 v0, v37
invoke-virtual {v5, v0}, Landroid/os/BatteryStats$Uid$Proc;->getSystemTime(I)J
move-result-wide v34
.line 284
move/from16 v0, v37
invoke-virtual {v5, v0}, Landroid/os/BatteryStats$Uid$Proc;->getForegroundTime(I)J
move-result-wide v48
.line 285
const-wide/16 v50, 0xa
mul-long v48, v48, v50
add-long v6, v6, v48
.line 286
add-long v22, v22, v34
const-wide/16 v34, 0xa
mul-long v34, v34, v22
.line 289
const/16 v22, 0x0
.line 291
const/16 v21, 0x0
move/from16 v52, v21
move/from16 v21, v22
move/from16 v22, v52
:goto_255
move/from16 v0, v22
move/from16 v1, v38
if-lt v0, v1, :cond_2ab
.line 296
if-nez v21, :cond_48e
.line 297
const/4 v5, 0x1
.line 299
:goto_25e
const-wide/16 v22, 0x0
.line 300
const/16 v21, 0x0
:goto_262
move/from16 v0, v21
move/from16 v1, v38
if-lt v0, v1, :cond_2ca
.line 306
add-long v14, v14, v34
.line 307
add-double v18, v18, v22
.line 308
if-eqz v8, :cond_276
.line 309
const-string v5, "*"
invoke-virtual {v8, v5}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v5
if-eqz v5, :cond_2e7
.line 311
:cond_276
invoke-interface {v4}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v5
check-cast v5, Ljava/lang/String;
move-wide/from16 v16, v22
.line 317
:goto_27e
const-string v8, "com.ijinshan.mguard"
invoke-interface {v4}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v21
move-object/from16 v0, v21
invoke-virtual {v8, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v8
if-nez v8, :cond_2a6
.line 318
const-string v8, "com.ijinshan.kbatterydoctor"
invoke-interface {v4}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v21
move-object/from16 v0, v21
invoke-virtual {v8, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v8
if-nez v8, :cond_2a6
.line 319
const-string v8, "com.ijinshan.kbatterydoctor_en"
invoke-interface {v4}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v4
invoke-virtual {v8, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_488
:cond_2a6
move-object v8, v5
move/from16 v13, v20
.line 320
goto/16 :goto_117
.line 292
:cond_2ab
move/from16 v0, v22
move/from16 v1, v37
invoke-virtual {v5, v0, v1}, Landroid/os/BatteryStats$Uid$Proc;->getTimeAtCpuSpeedStep(II)J
move-result-wide v48
aput-wide v48, v40, v22
.line 294
move/from16 v0, v21
int-to-long v0, v0
move-wide/from16 v48, v0
aget-wide v50, v40, v22
add-long v48, v48, v50
move-wide/from16 v0, v48
long-to-int v0, v0
move/from16 v23, v0
.line 291
add-int/lit8 v21, v22, 0x1
move/from16 v22, v21
move/from16 v21, v23
goto :goto_255
.line 301
:cond_2ca
aget-wide v48, v40, v21
move-wide/from16 v0, v48
long-to-double v0, v0
move-wide/from16 v48, v0
.line 302
int-to-double v0, v5
move-wide/from16 v50, v0
.line 301
div-double v48, v48, v50
.line 303
move-wide/from16 v0, v34
long-to-double v0, v0
move-wide/from16 v50, v0
mul-double v48, v48, v50
.line 304
aget-wide v50, v39, v21
mul-double v48, v48, v50
add-double v22, v22, v48
.line 300
add-int/lit8 v21, v21, 0x1
goto/16 :goto_262
.line 312
:cond_2e7
cmpg-double v5, v16, v22
if-gez v5, :cond_48b
.line 313
invoke-interface {v4}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v5
check-cast v5, Ljava/lang/String;
const-string v21, "*"
move-object/from16 v0, v21
invoke-virtual {v5, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v5
if-nez v5, :cond_48b
.line 315
invoke-interface {v4}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v5
check-cast v5, Ljava/lang/String;
move-wide/from16 v16, v22
goto/16 :goto_27e
.line 337
:cond_305
invoke-interface {v5}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v4
check-cast v4, Ljava/util/Map$Entry;
.line 338
invoke-interface {v4}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v4
check-cast v4, Landroid/os/BatteryStats$Uid$Wakelock;
.line 342
const/4 v7, 0x0
invoke-virtual {v4, v7}, Landroid/os/BatteryStats$Uid$Wakelock;->getWakeTime(I)Landroid/os/BatteryStats$Timer;
move-result-object v4
.line 343
if-eqz v4, :cond_140
.line 344
move-wide/from16 v0, v44
move/from16 v2, v37
invoke-virtual {v4, v0, v1, v2}, Landroid/os/BatteryStats$Timer;->getTotalTimeLocked(JI)J
move-result-wide v26
add-long v14, v14, v26
.line 346
move/from16 v0, v37
invoke-virtual {v4, v0}, Landroid/os/BatteryStats$Timer;->getCountLocked(I)I
move-result v4
add-int v4, v4, v20
move/from16 v20, v4
goto/16 :goto_140
.line 360
:cond_32e
invoke-interface {v5}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v4
check-cast v4, Ljava/util/Map$Entry;
.line 361
invoke-interface {v4}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v4
check-cast v4, Landroid/os/BatteryStats$Uid$Pkg;
.line 362
move/from16 v0, v37
invoke-virtual {v4, v0}, Landroid/os/BatteryStats$Uid$Pkg;->getWakeups(I)I
move-result v4
add-int v4, v4, v21
move/from16 v21, v4
goto/16 :goto_170
.line 375
:cond_346
const-wide/16 v10, 0x0
goto/16 :goto_188
.line 377
:cond_34a
const-wide/16 v4, 0x0
goto/16 :goto_196
.line 385
:catch_34e
move-exception v7
move-wide/from16 v24, v22
.line 386
:goto_351
const-wide/16 v22, 0x0
move-wide/from16 v26, v22
move-wide/from16 v22, v4
move-wide/from16 v4, v24
move-wide/from16 v24, v10
goto/16 :goto_1b5
.line 398
:cond_35d
invoke-interface {v7}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v4
check-cast v4, Ljava/util/Map$Entry;
.line 399
invoke-interface {v4}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v4
check-cast v4, Landroid/os/BatteryStats$Uid$Sensor;
.line 400
invoke-virtual {v4}, Landroid/os/BatteryStats$Uid$Sensor;->getHandle()I
move-result v8
.line 401
invoke-virtual {v4}, Landroid/os/BatteryStats$Uid$Sensor;->getSensorTime()Landroid/os/BatteryStats$Timer;
move-result-object v4
.line 402
move-wide/from16 v0, v44
move/from16 v2, v37
invoke-virtual {v4, v0, v1, v2}, Landroid/os/BatteryStats$Timer;->getTotalTimeLocked(JI)J
move-result-wide v4
const-wide/16 v10, 0x3e8
div-long v34, v4, v10
.line 403
const-wide/16 v4, 0x0
.line 404
packed-switch v8, :pswitch_data_49e
.line 411
move-object/from16 v0, p0
iget-object v10, v0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mSensorManager:Landroid/hardware/SensorManager;
if-nez v10, :cond_3b5
move-wide/from16 v10, v30
move-wide/from16 v30, v4
.line 425
:goto_38c
add-long v4, v28, v34
.line 426
move-wide/from16 v0, v34
long-to-double v0, v0
move-wide/from16 v28, v0
mul-double v28, v28, v30
const-wide v30, 0x408f400000000000L # 1000.0
div-double v28, v28, v30
add-double v28, v28, v32
move-wide/from16 v30, v10
move-wide/from16 v32, v28
move-wide/from16 v28, v4
goto/16 :goto_1db
.line 406
:pswitch_3a6
move-object/from16 v0, p0
iget-object v4, v0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mPowerProfile:Lcom/android/internal/os/PowerProfile;
.line 407
const-string v5, "gps.on"
invoke-virtual {v4, v5}, Lcom/android/internal/os/PowerProfile;->getAveragePower(Ljava/lang/String;)D
move-result-wide v4
move-wide/from16 v30, v4
move-wide/from16 v10, v34
.line 409
goto :goto_38c
.line 414
:cond_3b5
move-object/from16 v0, p0
iget-object v10, v0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mSensorManager:Landroid/hardware/SensorManager;
.line 415
invoke-virtual {v10, v8}, Landroid/hardware/SensorManager;->getDefaultSensor(I)Landroid/hardware/Sensor;
move-result-object v8
.line 416
if-eqz v8, :cond_47e
.line 417
invoke-virtual {v8}, Landroid/hardware/Sensor;->getPower()F
move-result v4
float-to-double v4, v4
move-wide/from16 v10, v30
move-wide/from16 v30, v4
goto :goto_38c
.line 442
:cond_3c9
invoke-virtual {v9}, Landroid/os/BatteryStats$Uid;->getUid()I
move-result v4
if-ne v4, v13, :cond_3d3
move-wide v4, v14
move v6, v13
.line 443
goto/16 :goto_e8
.line 449
:cond_3d3
const-string v4, "com.ijinshan.duba"
invoke-virtual {v4, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-nez v4, :cond_3fb
.line 450
const-string v4, "com.ijinshan.ShouJiKong.AndroidDaemon"
.line 451
invoke-virtual {v4, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-nez v4, :cond_3fb
.line 452
const-string v4, "com.ijinshan.browser"
.line 453
invoke-virtual {v4, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-nez v4, :cond_3fb
.line 454
const-string v4, "com.cleanmaster.mguard_cn"
.line 455
invoke-virtual {v4, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-nez v4, :cond_3fb
.line 456
const-string v4, "com.cleanmaster.mguard"
.line 457
invoke-virtual {v4, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_477
.line 458
:cond_3fb
const-wide/high16 v4, 0x4024000000000000L # 10.0
div-double v10, v32, v4
.line 465
:goto_3ff
new-instance v4, Lcom/ijinshan/kbatterydoctor/powermanager/BatterySipper;
move-object/from16 v0, p0
iget-object v5, v0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mContext:Landroid/content/Context;
.line 466
sget-object v7, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageDetail$DrainType;->APP:Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageDetail$DrainType;
const/4 v8, 0x0
.line 465
invoke-direct/range {v4 .. v11}, Lcom/ijinshan/kbatterydoctor/powermanager/BatterySipper;-><init>(Landroid/content/Context;Ljava/lang/String;Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageDetail$DrainType;ILandroid/os/BatteryStats$Uid;D)V
.line 473
move-wide/from16 v0, v34
iput-wide v0, v4, Lcom/ijinshan/kbatterydoctor/powermanager/BatterySipper;->mVideoOnTime:J
.line 474
move-wide/from16 v0, v50
iput-wide v0, v4, Lcom/ijinshan/kbatterydoctor/powermanager/BatterySipper;->mAudioTime:J
.line 475
move-wide/from16 v0, v16
iput-wide v0, v4, Lcom/ijinshan/kbatterydoctor/powermanager/BatterySipper;->cpuTime:J
.line 476
move-wide/from16 v0, v28
iput-wide v0, v4, Lcom/ijinshan/kbatterydoctor/powermanager/BatterySipper;->mSensorTime:J
.line 477
move-wide/from16 v0, v30
iput-wide v0, v4, Lcom/ijinshan/kbatterydoctor/powermanager/BatterySipper;->gpsTime:J
.line 478
move-wide/from16 v0, v26
iput-wide v0, v4, Lcom/ijinshan/kbatterydoctor/powermanager/BatterySipper;->wifiRunningTime:J
.line 479
move-wide/from16 v0, v18
iput-wide v0, v4, Lcom/ijinshan/kbatterydoctor/powermanager/BatterySipper;->cpuFgTime:J
.line 480
move-wide/from16 v0, v48
iput-wide v0, v4, Lcom/ijinshan/kbatterydoctor/powermanager/BatterySipper;->wakeLockTime:J
.line 481
move/from16 v0, v20
iput v0, v4, Lcom/ijinshan/kbatterydoctor/powermanager/BatterySipper;->wakelockAmount:I
.line 482
move/from16 v0, v21
iput v0, v4, Lcom/ijinshan/kbatterydoctor/powermanager/BatterySipper;->wakelockCount:I
.line 483
move-wide/from16 v0, v24
iput-wide v0, v4, Lcom/ijinshan/kbatterydoctor/powermanager/BatterySipper;->tcpBytesReceived:J
.line 484
move-wide/from16 v0, v22
iput-wide v0, v4, Lcom/ijinshan/kbatterydoctor/powermanager/BatterySipper;->tcpBytesSent:J
.line 492
invoke-virtual {v9}, Landroid/os/BatteryStats$Uid;->getUid()I
move-result v5
const/16 v6, 0x3f2
if-eq v5, v6, :cond_452
.line 494
invoke-virtual {v9}, Landroid/os/BatteryStats$Uid;->getUid()I
move-result v5
const/16 v6, 0x7d0
if-eq v5, v6, :cond_452
.line 497
move-object/from16 v0, p0
iget-object v5, v0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mUsageList:Ljava/util/List;
invoke-interface {v5, v4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 499
:cond_452
invoke-virtual {v9}, Landroid/os/BatteryStats$Uid;->getUid()I
move-result v5
if-nez v5, :cond_475
.line 503
:goto_458
move-object/from16 v0, p0
iget-wide v6, v0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mMaxPower:D
cmpl-double v5, v10, v6
if-lez v5, :cond_464
.line 504
move-object/from16 v0, p0
iput-wide v10, v0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mMaxPower:D
.line 507
:cond_464
move-object/from16 v0, p0
iget-wide v6, v0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mTotalPower:D
add-double/2addr v6, v10
move-object/from16 v0, p0
iput-wide v6, v0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mTotalPower:D
move-object v12, v4
move v6, v13
move-wide v4, v14
goto/16 :goto_e8
.line 385
:catch_472
move-exception v7
goto/16 :goto_351
:cond_475
move-object v4, v12
goto :goto_458
:cond_477
move-wide/from16 v10, v32
goto :goto_3ff
:cond_47a
move-wide v4, v14
move v6, v13
goto/16 :goto_e8
:cond_47e
move-wide/from16 v10, v30
move-wide/from16 v30, v4
goto/16 :goto_38c
:cond_484
move-wide/from16 v16, v4
goto/16 :goto_129
:cond_488
move-object v8, v5
goto/16 :goto_117
:cond_48b
move-object v5, v8
goto/16 :goto_27e
:cond_48e
move/from16 v5, v21
goto/16 :goto_25e
:cond_492
move v13, v4
move-wide/from16 v52, v14
move-wide/from16 v14, v18
move-wide/from16 v18, v6
move-object v6, v5
move-wide/from16 v4, v52
goto/16 :goto_123
.line 404
:pswitch_data_49e
.packed-switch -0x2710
:pswitch_3a6
.end packed-switch
.end method
.method private refreshStats()I
.registers 7
.prologue
const/16 v0, 0xc8
const-wide/16 v4, 0x0
.line 190
const/4 v1, 0x0
.line 192
iget-object v2, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mStats:Lcom/android/internal/os/BatteryStatsImpl;
if-nez v2, :cond_c
.line 194
:try_start_9
invoke-direct {p0}, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->load()V
:try_end_c
.catch Ljava/lang/Exception; {:try_start_9 .. :try_end_c} :catch_13
.line 204
:cond_c
:goto_c
if-nez v1, :cond_36
.line 206
iget-object v1, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mStats:Lcom/android/internal/os/BatteryStatsImpl;
if-nez v1, :cond_1c
.line 229
:cond_12
:goto_12
return v0
.line 195
:catch_13
move-exception v1
.line 197
invoke-direct {p0}, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->initForRefresh()V
.line 198
invoke-direct {p0}, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->processAliveAppUsage()V
.line 199
const/4 v1, 0x1
goto :goto_c
.line 210
:cond_1c
invoke-direct {p0}, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->initForRefresh()V
.line 211
invoke-direct {p0}, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->processAppUsage()V
.line 216
iget-object v1, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mUsageList:Ljava/util/List;
invoke-interface {v1}, Ljava/util/List;->size()I
move-result v1
if-eqz v1, :cond_30
iget-wide v2, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mTotalPower:D
cmpl-double v1, v2, v4
if-nez v1, :cond_36
.line 217
:cond_30
invoke-direct {p0}, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->initForRefresh()V
.line 218
invoke-direct {p0}, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->processAliveAppUsage()V
.line 223
:cond_36
iget-object v1, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mUsageList:Ljava/util/List;
invoke-interface {v1}, Ljava/util/List;->size()I
move-result v1
if-eqz v1, :cond_12
iget-wide v2, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mTotalPower:D
cmpl-double v1, v2, v4
if-eqz v1, :cond_12
.line 227
iget-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mUsageList:Ljava/util/List;
invoke-static {v0}, Ljava/util/Collections;->sort(Ljava/util/List;)V
.line 229
const/16 v0, 0x64
goto :goto_12
.end method
# virtual methods
.method public addCallBack(Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageCallback;)V
.registers 3
.prologue
.line 144
iget-object v0, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mCallbackList:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 145
invoke-direct {p0}, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->asyncRefreshStats()V
.line 146
return-void
.end method
.method public setRunningTask(Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService$RunningTask;)V
.registers 2
.prologue
.line 151
iput-object p1, p0, Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService;->mRunningTask:Lcom/ijinshan/kbatterydoctor/powermanager/PowerUsageRankService$RunningTask;
.line 152
return-void
.end method