am 485c2f8c: am 4f4d54f3: am 1c24a8cd: Merge "If we\'re out of space, retry background dexopting later" into mnc-dev
* commit '485c2f8c5715c12bd84a20f9746ce40a1ff15e70':
If we're out of space, retry background dexopting later
diff --git a/services/core/java/com/android/server/pm/BackgroundDexOptService.java b/services/core/java/com/android/server/pm/BackgroundDexOptService.java
index 7e66cd1..7b1ac5ca 100644
--- a/services/core/java/com/android/server/pm/BackgroundDexOptService.java
+++ b/services/core/java/com/android/server/pm/BackgroundDexOptService.java
@@ -16,6 +16,7 @@
package com.android.server.pm;
+import android.app.AlarmManager;
import android.app.job.JobInfo;
import android.app.job.JobParameters;
import android.app.job.JobScheduler;
@@ -34,6 +35,8 @@
public class BackgroundDexOptService extends JobService {
static final String TAG = "BackgroundDexOptService";
+ static final long RETRY_LATENCY = 4 * AlarmManager.INTERVAL_HOUR;
+
static final int BACKGROUND_DEXOPT_JOB = 800;
private static ComponentName sDexoptServiceName = new ComponentName(
"android",
@@ -46,11 +49,12 @@
final AtomicBoolean mIdleTime = new AtomicBoolean(false);
- public static void schedule(Context context) {
+ public static void schedule(Context context, long minLatency) {
JobScheduler js = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
JobInfo job = new JobInfo.Builder(BACKGROUND_DEXOPT_JOB, sDexoptServiceName)
.setRequiresDeviceIdle(true)
.setRequiresCharging(true)
+ .setMinimumLatency(minLatency)
.build();
js.schedule(job);
}
@@ -62,6 +66,7 @@
(PackageManagerService)ServiceManager.getService("package");
if (pm.isStorageLow()) {
+ schedule(BackgroundDexOptService.this, RETRY_LATENCY);
return false;
}
final ArraySet<String> pkgs = pm.getPackagesThatNeedDexOpt();
@@ -77,7 +82,7 @@
for (String pkg : pkgs) {
if (!mIdleTime.get()) {
// stopped while still working, so we need to reschedule
- schedule(BackgroundDexOptService.this);
+ schedule(BackgroundDexOptService.this, 0);
return;
}
if (sFailedPackageNames.contains(pkg)) {
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index d3fa923..d575516 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -953,7 +953,7 @@
try {
Slog.i(TAG, "BackgroundDexOptService");
- BackgroundDexOptService.schedule(context);
+ BackgroundDexOptService.schedule(context, 0);
} catch (Throwable e) {
reportWtf("starting BackgroundDexOptService", e);
}