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

Commit 8c220744 authored by Jared Duke's avatar Jared Duke Committed by Android (Google) Code Review
Browse files

Merge "Support preload of org.apache.http.legacy.jar" into main

parents 840d5522 ce088382
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -81,6 +81,7 @@ aconfig_declarations_group {
        "com.android.input.flags-aconfig-java",
        "com.android.internal.compat.flags-aconfig-java",
        "com.android.internal.foldables.flags-aconfig-java",
        "com.android.internal.os.flags-aconfig-java",
        "com.android.internal.pm.pkg.component.flags-aconfig-java",
        "com.android.media.flags.bettertogether-aconfig-java",
        "com.android.media.flags.editing-aconfig-java",
@@ -374,6 +375,19 @@ cc_aconfig_library {
    host_supported: true,
}

// OS Internal
aconfig_declarations {
    name: "com.android.internal.os.flags-aconfig",
    package: "com.android.internal.os",
    srcs: ["core/java/com/android/internal/os/flags.aconfig"],
}

java_aconfig_library {
    name: "com.android.internal.os.flags-aconfig-java",
    aconfig_declarations: "com.android.internal.os.flags-aconfig",
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}

// VirtualDeviceManager
cc_aconfig_library {
    name: "android.companion.virtualdevice.flags-aconfig-cc",
+8 −0
Original line number Diff line number Diff line
@@ -397,6 +397,14 @@ public class ZygoteInit {
                null /*declaringPackage*/, null /*dependentPackages*/, null /*dependencies*/,
                false /*isNative*/));

        if (Flags.enableApacheHttpLegacyPreload()) {
            libs.add(new SharedLibraryInfo(
                    "/system/framework/org.apache.http.legacy.jar", null /*packageName*/,
                    null /*codePaths*/, null /*name*/, 0 /*version*/,
                    SharedLibraryInfo.TYPE_BUILTIN, null /*declaringPackage*/,
                    null /*dependentPackages*/, null /*dependencies*/, false /*isNative*/));
        }

        // WindowManager Extensions is an optional shared library that is required for WindowManager
        // Jetpack to fully function. Since it is a widely used library, preload it to improve apps
        // startup performance.
+10 −0
Original line number Diff line number Diff line
package: "com.android.internal.os"

flag {
    name: "enable_apache_http_legacy_preload"
    namespace: "system_performance"
    description: "Enables zygote preload of non-BCP org.apache.http.legacy.jar library."
    # Fixed read-only is required as the flag is read during zygote init.
    is_fixed_read_only: true
    bug: "241474956"
}
 No newline at end of file
+13 −0
Original line number Diff line number Diff line
@@ -40,6 +40,8 @@ public class ApplicationLoadersTest {
    private static final String LIB_A = "/system/framework/android.hidl.base-V1.0-java.jar";
    // a library installed onto the device which only depends on A
    private static final String LIB_DEP_A = "/system/framework/android.hidl.manager-V1.0-java.jar";
    // a commonly used, non-BCP, app-facing library installed onto the device
    private static final String LIB_APACHE_HTTP = "/system/framework/org.apache.http.legacy.jar";

    private static SharedLibraryInfo createLib(String zip) {
        return new SharedLibraryInfo(
@@ -137,4 +139,15 @@ public class ApplicationLoadersTest {

        loaders.createAndCacheNonBootclasspathSystemClassLoaders(Lists.newArrayList(libB, libA));
    }

    @Test
    public void testCacheApacheHttpLegacy() {
        ApplicationLoaders loaders = new ApplicationLoaders();
        SharedLibraryInfo libApacheHttp = createLib(LIB_APACHE_HTTP);

        loaders.createAndCacheNonBootclasspathSystemClassLoaders(Lists.newArrayList(libApacheHttp));

        assertNotNull(loaders.getCachedNonBootclasspathSystemLib(
                LIB_APACHE_HTTP, null, null, null));
    }
}