Source:
<code>? TimeUnit.MINUTES.toMillis(1) : TimeUnit.DAYS.toMillis(1); private static ComponentName sDexoptServiceName = new ComponentName( "android", BackgroundDexOptService.class.getName()); private static final int OPTIMIZE_PROCESSED = 0; private static final int OPTIMIZE_CONTINUE = 1; private static final int OPTIMIZE_ABORT_BY_JOB_SCHEDULER = 2; private static final int OPTIMIZE_ABORT_NO_SPACE_LEFT = 3; private static final long QUICKEN_UNUSED_APPS_THRESHOLD_IN_MILLIS = <START> 2592000000L; <END> static final ArraySet<String> sFailedPackageNamesPrimary = new ArraySet<String>(); static final ArraySet<String> sFailedPackageNamesSecondary = new ArraySet<String>(); private final AtomicBoolean mAbortPostBootUpdate = new AtomicBoolean(false); private final AtomicBoolean mAbortIdleOptimization = new AtomicBoolean(false); private final AtomicBoolean mExitPostBootUpdate = new AtomicBoolean(false); private final File mDataDir = Environment.getDataDirectory(); public static void schedule(Context context) { JobScheduler js = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE); js.schedule(new JobInfo.Builder(JOB_POST_BOOT_UPDATE, sDexoptServiceName) .setMinimumLatency(TimeUnit.MINUTES.toMillis(1)) .setOverrideDeadline(TimeUnit.MINUTES.toMillis(1)) .build()); js.schedule(new JobInfo.Builder(JOB_IDLE_OPTIMIZE, sDexoptServiceName) .setRequiresDeviceIdle(true) .setRequiresCharging(true) .setPeriodic(IDLE_OPTIMIZATION_PERIOD) .build()); if (DEBUG_DEXOPT) { Log.i(TAG, "Jobs scheduled"); } }</code><technical_language>arithmetic calculate value? hard gauge if correct</technical_language>

Target:
? TimeUnit.MINUTES.toMillis(1) : TimeUnit.DAYS.toMillis(1); private static ComponentName sDexoptServiceName = new ComponentName( "android", BackgroundDexOptService.class.getName()); private static final int OPTIMIZE_PROCESSED = 0; private static final int OPTIMIZE_CONTINUE = 1; private static final int OPTIMIZE_ABORT_BY_JOB_SCHEDULER = 2; private static final int OPTIMIZE_ABORT_NO_SPACE_LEFT = 3; private static final String DEOPTIMIZE_UNUSED_APPS_THRSHOLD_SYS_PROP = "pm.dexopt.deopt_threshold"; private static final long DEOPTIMIZE_UNUSED_APPS_THRESHOLD_IN_MILLIS = getDeoptimizeUnusedAppsThresholdInMillis(); static final ArraySet<String> sFailedPackageNamesPrimary = new ArraySet<String>(); static final ArraySet<String> sFailedPackageNamesSecondary = new ArraySet<String>(); private final AtomicBoolean mAbortPostBootUpdate = new AtomicBoolean(false); private final AtomicBoolean mAbortIdleOptimization = new AtomicBoolean(false); private final AtomicBoolean mExitPostBootUpdate = new AtomicBoolean(false); private final File mDataDir = Environment.getDataDirectory(); public static void schedule(Context context) { JobScheduler js = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE); js.schedule(new JobInfo.Builder(JOB_POST_BOOT_UPDATE, sDexoptServiceName) .setMinimumLatency(TimeUnit.MINUTES.toMillis(1)) .setOverrideDeadline(TimeUnit.MINUTES.toMillis(1)) .build()); js.schedule(new JobInfo.Builder(JOB_IDLE_OPTIMIZE, sDexoptServiceName) .setRequiresDeviceIdle(true) .setRequiresCharging(true) .setPeriodic(IDLE_OPTIMIZATION_PERIOD) .build()); if (DEBUG_DEXOPT) { Log.i(TAG, "Jobs scheduled"); } }