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

Commit ce871128 authored by Martijn Coenen's avatar Martijn Coenen Committed by Android (Google) Code Review
Browse files

Merge "Add useAppZygote attibute to <service>."

parents b9958f1e e066c5c1
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1497,6 +1497,7 @@ package android {
    field public static final int unselectedAlpha = 16843278; // 0x101020e
    field public static final int updatePeriodMillis = 16843344; // 0x1010250
    field public static final int use32bitAbi = 16844053; // 0x1010515
    field public static final int useAppZygote = 16844184; // 0x1010598
    field public static final int useDefaultMargins = 16843641; // 0x1010379
    field public static final int useIntrinsicSizeAsMinimum = 16843536; // 0x1010310
    field public static final int useLevel = 16843167; // 0x101019f
@@ -11713,6 +11714,7 @@ package android.content.pm {
    field public static final int FLAG_ISOLATED_PROCESS = 2; // 0x2
    field public static final int FLAG_SINGLE_USER = 1073741824; // 0x40000000
    field public static final int FLAG_STOP_WITH_TASK = 1; // 0x1
    field public static final int FLAG_USE_APP_ZYGOTE = 8; // 0x8
    field public int flags;
    field public java.lang.String permission;
  }
+5 −0
Original line number Diff line number Diff line
@@ -5337,6 +5337,11 @@ public class PackageParser {
                false)) {
            s.info.flags |= ServiceInfo.FLAG_EXTERNAL_SERVICE;
        }
        if (sa.getBoolean(
                com.android.internal.R.styleable.AndroidManifestService_useAppZygote,
                false)) {
            s.info.flags |= ServiceInfo.FLAG_USE_APP_ZYGOTE;
        }
        if (sa.getBoolean(
                com.android.internal.R.styleable.AndroidManifestService_singleUser,
                false)) {
+17 −0
Original line number Diff line number Diff line
@@ -55,6 +55,23 @@ public class ServiceInfo extends ComponentInfo
     */
    public static final int FLAG_EXTERNAL_SERVICE = 0x0004;

    /**
     * Bit in {@link #flags}: If set, the service (which must be isolated)
     * will be spawned from an Application Zygote, instead of the regular Zygote.
     * The Application Zygote will pre-initialize the application's class loader,
     * and call a static callback into the application to allow it to perform
     * application-specific preloads (such as loading a shared library). Therefore,
     * spawning from the Application Zygote will typically reduce the service
     * launch time and reduce its memory usage. The downside of using this flag
     * is that you will have an additional process (the app zygote itself) that
     * is taking up memory. Whether actual memory usage is improved therefore
     * strongly depends on the number of isolated services that an application
     * starts, and how much memory those services save by preloading. Therefore,
     * it is recommended to measure memory usage under typical workloads to
     * determine whether it makes sense to use this flag.
     */
    public static final int FLAG_USE_APP_ZYGOTE = 0x0008;

    /**
     * Bit in {@link #flags} indicating if the service is visible to ephemeral applications.
     * @hide
+15 −0
Original line number Diff line number Diff line
@@ -2148,6 +2148,21 @@
        <attr name="visibleToInstantApps" />
        <!-- The code for this component is located in the given split. -->
        <attr name="splitName" />
        <!-- If true, and this is an {@link android.R.attr#isolatedProcess} service, the service
             will be spawned from an Application Zygote, instead of the regular Zygote.
             <p>
             The Application Zygote will pre-initialize the application's class loader,
             and call a static callback into the application to allow it to perform
             application-specific preloads (such as loading a shared library). Therefore,
             spawning from the Application Zygote will typically reduce the service
             launch time and reduce its memory usage. The downside of using this flag
             is that you will have an additional process (the app zygote itself) that
             is taking up memory. Whether actual memory usage is improved therefore strongly
             depends on the number of isolated services that an application starts,
             and how much memory those services save by preloading. Therefore, it is
             recommended to measure memory usage under typical workloads to determine
             whether it makes sense to use this flag. -->
        <attr name="useAppZygote" format="boolean" />
    </declare-styleable>

    <!-- The <code>receiver</code> tag declares an
+1 −0
Original line number Diff line number Diff line
@@ -2921,6 +2921,7 @@
        <public name="interactiveUiTimeout" />
        <public name="importantForContentCapture" />
        <public name="supportsMultipleDisplays" />
        <public name="useAppZygote" />
    </public-group>

    <public-group type="drawable" first-id="0x010800b4">