Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 133c5da0 authored by Todd Kennedy's avatar Todd Kennedy
Browse files

enable/disable dexopt for instant apps remotely

Change-Id: I997b8ae515f7bf2570edca4ed7ab4b46198148a5
Fixes: 62591398
Test: Manual; install instant app and see that it doesn't dexopt
Test: Manua; update gservices flag, install instant app and see that it does dexopt
parent c7ea7eff
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -9817,6 +9817,16 @@ public final class Settings {
         */
        public static final String ENABLE_EPHEMERAL_FEATURE = "enable_ephemeral_feature";

        /**
         * Toggle to enable/disable dexopt for instant applications. The default is for dexopt
         * to be disabled.
         * <p>
         * Type: int (0 to disable, 1 to enable)
         *
         * @hide
         */
        public static final String INSTANT_APP_DEXOPT_ENABLED = "instant_app_dexopt_enabled";

        /**
         * The min period for caching installed instant apps in milliseconds.
         * <p>
+4 −2
Original line number Diff line number Diff line
@@ -18160,8 +18160,10 @@ public class PackageManagerService extends IPackageManager.Stub
            // step during installation. Instead, we'll take extra time the first time the
            // instant app starts. It's preferred to do it this way to provide continuous
            // progress to the user instead of mysteriously blocking somewhere in the
            // middle of running an instant app.
            if (!instantApp) {
            // middle of running an instant app. The default behaviour can be overridden
            // via gservices.
            if (!instantApp || Global.getInt(
                        mContext.getContentResolver(), Global.INSTANT_APP_DEXOPT_ENABLED, 0) != 0) {
                Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "dexopt");
                // Do not run PackageDexOptimizer through the local performDexOpt
                // method because `pkg` may not be in `mPackages` yet.