summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/pm/BackgroundDexOptService.java21
1 files changed, 19 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/pm/BackgroundDexOptService.java b/services/core/java/com/android/server/pm/BackgroundDexOptService.java
index 27db2f90ab25..05a51ccfaca7 100644
--- a/services/core/java/com/android/server/pm/BackgroundDexOptService.java
+++ b/services/core/java/com/android/server/pm/BackgroundDexOptService.java
@@ -37,6 +37,7 @@ import android.os.PowerManager;
import android.os.Process;
import android.os.RemoteException;
import android.os.ServiceManager;
+import android.os.SystemClock;
import android.os.SystemProperties;
import android.os.Trace;
import android.os.UserHandle;
@@ -146,6 +147,11 @@ public final class BackgroundDexOptService {
@GuardedBy("mLock")
@Status private int mLastExecutionStatus = STATUS_OK;
+ @GuardedBy("mLock")
+ private long mLastExecutionStartTimeMs;
+ @GuardedBy("mLock")
+ private long mLastExecutionDurationMs;
+
// Keeps packages cancelled from PDO for last session. This is for debugging.
@GuardedBy("mLock")
private final ArraySet<String> mLastCancelledPackages = new ArraySet<String>();
@@ -218,9 +224,15 @@ public final class BackgroundDexOptService {
writer.print("mDexOptCancellingThread:");
writer.println(mDexOptCancellingThread);
writer.print("mFinishedPostBootUpdate:");
- writer.print(mFinishedPostBootUpdate);
- writer.print(",mLastExecutionStatus:");
+ writer.println(mFinishedPostBootUpdate);
+ writer.print("mLastExecutionStatus:");
writer.println(mLastExecutionStatus);
+ writer.print("mLastExecutionStartTimeMs:");
+ writer.println(mLastExecutionStartTimeMs);
+ writer.print("mLastExecutionDurationMs:");
+ writer.println(mLastExecutionDurationMs);
+ writer.print("now:");
+ writer.println(SystemClock.elapsedRealtime());
writer.print("mLastCancelledPackages:");
writer.println(String.join(",", mLastCancelledPackages));
writer.print("mFailedPackageNamesPrimary:");
@@ -514,12 +526,17 @@ public final class BackgroundDexOptService {
/** Returns true if completed */
private boolean runIdleOptimization(PackageManagerService pm, ArraySet<String> pkgs,
boolean isPostBootUpdate) {
+ synchronized (mLock) {
+ mLastExecutionStartTimeMs = SystemClock.elapsedRealtime();
+ mLastExecutionDurationMs = -1;
+ }
long lowStorageThreshold = getLowStorageThreshold();
int status = idleOptimizePackages(pm, pkgs, lowStorageThreshold,
isPostBootUpdate);
logStatus(status);
synchronized (mLock) {
mLastExecutionStatus = status;
+ mLastExecutionDurationMs = SystemClock.elapsedRealtime() - mLastExecutionStartTimeMs;
}
return status == STATUS_OK;