Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  Android.bp   Sprache: unbekannt

 
Spracherkennung für: .bp vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

// ART APEX module
//
// Contains both the Android Managed Runtime (ART) and the Android Core Library
// (Libcore).

package {
    // See: http://go/android-license-faq
    // A large-scale-change added 'default_applicable_licenses' to import
    // all of the 'license_kinds' from "art_license"
    // to get the below license kinds:
    //   SPDX-license-identifier-Apache-2.0
    default_applicable_licenses: ["art_license"],
}

// Create combined library which is used for compiling run-tests.
// This is much easier than trying to make the test depend on them directly,
// or than trying to make the test compilation depend on the apex module.
// Some of the components are only visible here (but not in test Android.bp).
java_library {
    name: "art-run-test-bootclasspath",
    sdk_version: "core_platform",
    static_libs: [
        "framework-annotations-lib",
        // Core Java libraries. This list must be the same as
        // art-bootclasspath-fragment because it's that which is pulled in
        // through bootclasspath_fragments in com.android-art-base-defaults.
        "core-oj",
        "core-libart",
        "okhttp",
        "bouncycastle",
        "apache-xml",
    ],
}

java_system_modules {
    name: "art-run-test-system-module",
    visibility: ["//visibility:public"],
    libs: [
        "art-run-test-bootclasspath",
        "libcore-string-concat-stub",
    ],
}

android_app_certificate {
    name: "com.android.art.certificate",
    certificate: "com.android.art",
}

apex_key {
    name: "com.android.art.key",
    public_key: "com.android.art.avbpubkey",
    private_key: "com.android.art.pem",
}

linker_config {
    name: "art-linker-config",
    src: "linker.config.json",
    installable: false,
}

prebuilt_etc {
    name: "com.android.art.init.rc",
    src: "art.rc",
    filename: "init.rc",
    installable: false,
}

prebuilt_etc {
    name: "dirty-image-objects-art",
    src: "dirty-image-objects",
    filename: "dirty-image-objects",
    installable: false,
}

// Default shared by all ART APEXes.
apex_defaults {
    name: "com.android.art-base-defaults",
    defaults: ["s-launched-apex-module"],

    manifest: "manifest-art.json",
    key: "com.android.art.key",
    certificate: ":com.android.art.certificate",
    bootclasspath_fragments: ["art-bootclasspath-fragment"],
    systemserverclasspath_fragments: ["art-systemserverclasspath-fragment"],
    compat_configs: ["libcore-platform-compat-config"],
    prebuilts: [
        "art-linker-config",
        "com.android.art.init.rc",
        "current_sdkinfo",
        "dirty-image-objects-art",
    ],

    compile_multilib: "both",

    native_shared_libs: [
        // ART
        // External API (having APEX stubs).
        "libdexfile",
        "libnativebridge",
        "libnativehelper",
        "libnativeloader",
        "libsigchain",
        // These libraries are loaded at runtime from libart (either through
        // dlopen() or by instructing the user to load with -Xplugin), but they
        // cannot be runtime_lib dependencies from there because of cyclic
        // dependencies (b/124505714).
        "libadbconnection",
        "libopenjdkjvmti",
        "libperfetto_hprof",
        // Likewise libart is loaded at runtime from libnativeloader and also must
        // be specified explicitly due to cyclic dependencies. However, it's not
        // listed directly here since test_broken_com.android.art uses a different
        // implementation.

        // Libcore
        // External API (having APEX stubs).
        "libandroidio",
        // This library is loaded at runtime from libart but cannot be a runtime_lib
        // dependency from there because of cyclic dependencies (b/124505714).
        "libopenjdk",
        // These libraries are internal dependencies in libcore, but they don't get
        // pulled in automatically into apex_test modules.
        "libexpat",
        "libopenjdkjvm",
    ],

    multilib: {
        both: {
            binaries: [
                "dalvikvm",
                "dex2oat",
            ],
        },
        first: {
            binaries: [
                "art_boot",
                "art_exec",
                "artd",
                "dexdump",
                "dexlist",
                "dexopt_chroot_setup",
                "dexoptanalyzer",
                "oatdump",
                "profman",
            ],
            jni_libs: [
                "libartservice",
            ],
        },
    },

    licenses: [
        "art_license",
        "opensourcerequest",
    ],
}

// Default values shared by Debug and Testing ART APEXes.
apex_defaults {
    name: "com.android.art-devel-defaults",
    defaults: ["com.android.art-base-defaults"],

    native_shared_libs: [
        "libadbconnectiond",
        "libdexfiled",
        "libopenjdkd",
        "libopenjdkjvmtid",
        "libperfetto_hprofd",
    ],

    multilib: {
        both: {
            binaries: [
                "dex2oatd",
                "imgdiag",
                "imgdiagd",
            ],
        },
        first: {
            binaries: [
                "dexanalyze",
                "dexoptanalyzerd",
                "oatdumpd",
                "profmand",
            ],
        },
    },
}

// "Broken" test APEX, only used for testing, including module
// `libart-broken` instead of `libart`.
apex_test {
    name: "test_broken_com.android.art",
    defaults: ["com.android.art-base-defaults"],
    manifest: "test_apex_manifest.json",
    file_contexts: ":com.android.art-file_contexts",
    installable: false,
    compressible: false,

    native_shared_libs: ["libart-broken"],
    unwanted_transitive_deps: ["libart"],
}

apex_test {
    name: "test_jitzygote_com.android.art",
    defaults: ["com.android.art-base-defaults"],
    manifest: "test_apex_manifest.json",
    file_contexts: ":com.android.art-file_contexts",
    installable: false,

    native_shared_libs: ["libart"],
    multilib: {
        first: {
            binaries: ["odrefresh_broken"],
        },
    },
}

// Same as "com.android.art" APEX, but also contains "imgdiag" binary.
// Used to collect dirty-image-objects.
apex_test {
    name: "test_imgdiag_com.android.art",
    defaults: ["com.android.art-base-defaults"],
    manifest: "test_apex_manifest.json",
    file_contexts: ":com.android.art-file_contexts",
    installable: false,

    native_shared_libs: ["libart"],
    multilib: {
        both: {
            binaries: [
                "imgdiag",
                "pageinfo",
                "find_unshared_pages",
            ],
        },
        first: {
            binaries: ["odrefresh"],
        },
    },
}

// Release version of the ART APEX module (not containing debug
// variants nor tools), included in user builds. Also used for
// storage-constrained devices in userdebug and eng builds.
apex {
    name: "com.android.art",
    defaults: ["com.android.art-base-defaults"],

    native_shared_libs: ["libart"],
    multilib: {
        first: {
            binaries: ["odrefresh"],
        },
    },

    visibility: [
        "//art/build/sdk",
        "//art/tools/fuzzer",
        "//packages/modules/common/build",
    ],
}

// "Debug" version of the ART APEX module (containing both release and
// debug variants, as well as additional tools), included in eng builds.
apex {
    name: "com.android.art.debug",
    defaults: ["com.android.art-devel-defaults"],
    // Use a different manifest for this APEX (which has no prebuilts and is
    // thus always built from sources), with a high version number that ensures
    // that these packages can be installed on virtually all Android dessert
    // releases.
    manifest: "manifest-art-debug.json",

    native_shared_libs: [
        "libart",
        "libartd",
    ],
    multilib: {
        first: {
            binaries: ["odrefresh"],
            jni_libs: ["libartserviced"],
        },
    },

    visibility: [
        "//packages/modules/common/build",
    ],

    overrides: [
        "com.google.android.art",
        "com.google.android.go.art",
    ],
}

// ART gtests with dependencies on internal ART APEX libraries.
art_gtests = [
    "art_cmdline_tests",
    "art_compiler_tests",
    "art_dex2oat_tests",
    "art_dexanalyze_tests",
    "art_dexdump_tests",
    "art_dexlist_tests",
    "art_disassembler_tests",
    "art_dexoptanalyzer_tests",
    "art_imgdiag_tests",
    "art_libartbase_tests",
    "art_libdexfile_tests",
    "art_libdexfile_support_tests",
    "art_libprofile_tests",
    "art_oatdump_tests",
    "art_profman_tests",
    "art_runtime_tests",
    "art_sigchain_tests",
]

// ART gtests for which the "first" version is preferred.
art_gtests_first = [
    "art_odrefresh_tests",
]

// "Testing" version of the ART APEX module (containing both release
// and debug variants, additional tools, and ART gtests), for testing
// purposes only.
apex_test {
    name: "com.android.art.testing",
    defaults: ["com.android.art-devel-defaults"],
    file_contexts: ":com.android.art.debug-file_contexts",
    tests: art_gtests,
    binaries: ["signal_dumper"], // Need signal_dumper for run-tests.
    // Use a different manifest for this APEX (which has no prebuilts and is
    // thus always built from sources), with a high version number that ensures
    // that these packages can be installed on virtually all Android dessert
    // releases.
    manifest: "manifest-art-debug.json",
    // Mark this test APEX as non-updatable, as its contains
    // additional files (used only for testing) that would not pass
    // dependency checks performed on updatable APEXes (see
    // go/apex-allowed-deps-error).
    updatable: false,
    // Because this APEX is non-updatable, some of its native shared
    // libraries (implicitly added as dependencies) are eligible to
    // the symlink optimization. As we want this APEX to be
    // self-contained (for testing purposes), we want to package
    // these dependencies in this APEX, instead of symbolic links to
    // their counterparts on the `system` partition, which may not
    // even exist, as in the case of `libbacktrace` (see b/232790938
    // and b/233357459). Marking this APEX as "future updatable"
    // disables all symlink optimizations for it.
    future_updatable: true,

    native_shared_libs: [
        "libart",
        "libartd",
        "libarttest",
        "libarttestd",
        "libtiagent",
        "libtiagentd",
        "art_fake_libstatspull",
    ],
    multilib: {
        first: {
            tests: art_gtests_first,
            binaries: ["odrefresh"],
            jni_libs: ["libartserviced"],
        },
    },
}

python_binary_host {
    name: "art-apex-tester",
    srcs: ["art_apex_test.py"],
    main: "art_apex_test.py",
}

// Genrules so we can run the checker, and empty Java library so that it gets executed.

art_check_apex_gen_stem = "$(location art-apex-tester)" +
    " --deapexer $(location deapexer)" +
    " --debugfs $(location debugfs_static)" +
    " --fsckerofs $(location fsck.erofs)" +
    " --tmpdir $(genDir)"

// The non-flattened APEXes are always checked, as they are always generated
// (even when APEX flattening is enabled).
genrule_defaults {
    name: "art-check-apex-gen-defaults",
    tools: [
        "art-apex-tester",
        "deapexer",
        "debugfs_static",
        "fsck.erofs",
    ],
}

cc_defaults {
    name: "art-check-apex-gen-fakebin-defaults",
    host_supported: true,
    device_supported: false,

    target: {
        darwin: {
            enabled: false, // No python3.
        },
    },
}

java_genrule {
    name: "art-check-release-apex-gen",
    host_supported: true,
    device_supported: false,
    defaults: ["art-check-apex-gen-defaults"],
    device_common_srcs: [":com.android.art"],
    cmd: art_check_apex_gen_stem +
        " --flavor release" +
        " $(in)" +
        " && touch $(out)" +
        " && chmod a+x $(out)",
    out: ["art-check-release-apex-gen.unused"],
}

cc_prebuilt_binary {
    name: "art-check-release-apex-gen-fakebin",
    defaults: ["art-check-apex-gen-fakebin-defaults"],
    srcs: [":art-check-release-apex-gen"],
}

java_genrule {
    name: "art-check-debug-apex-gen",
    host_supported: true,
    device_supported: false,
    defaults: ["art-check-apex-gen-defaults"],
    device_common_srcs: [":com.android.art.debug"],
    cmd: art_check_apex_gen_stem +
        " --flavor debug" +
        " $(in)" +
        " && touch $(out)" +
        " && chmod a+x $(out)",
    out: ["art-check-debug-apex-gen.unused"],
}

cc_prebuilt_binary {
    name: "art-check-debug-apex-gen-fakebin",
    defaults: ["art-check-apex-gen-fakebin-defaults"],
    srcs: [":art-check-debug-apex-gen"],
}

java_genrule {
    name: "art-check-testing-apex-gen",
    host_supported: true,
    device_supported: false,
    defaults: ["art-check-apex-gen-defaults"],
    device_common_srcs: [":com.android.art.testing"],
    cmd: art_check_apex_gen_stem +
        " --flavor testing" +
        " $(in)" +
        " && touch $(out)" +
        " && chmod a+x $(out)",
    out: ["art-check-testing-apex-gen.unused"],
}

cc_prebuilt_binary {
    name: "art-check-testing-apex-gen-fakebin",
    defaults: ["art-check-apex-gen-fakebin-defaults"],
    srcs: [":art-check-testing-apex-gen"],
}

// A zip containing ART binaries and ART bootclasspath jars.
// At the time of writing, this is only for Compiler Explorer (https://godbolt.org).
java_genrule {
    name: "art_release_zip",
    srcs: [
        ":com.android.art",
    ],
    common_os_srcs: [
        ":art-module-host-exports",
    ],
    out: [
        "art_release.zip",
    ],
    tools: [
        "deapexer",
        "debugfs",
        "fsck.erofs",
        "merge_zips",
        "soong_zip",
    ],
    cmd: "$(location deapexer) " +
        "--debugfs_path $(location debugfs) " +
        "--fsckerofs_path $(location fsck.erofs) " +
        "extract $(location :com.android.art) $(genDir)/extracted && " +

        "$(location soong_zip) -o $(out).tmp -P bootjars -j " +
        "-f $(genDir)/extracted/javalib/core-oj.jar " +
        "-f $(genDir)/extracted/javalib/core-libart.jar " +
        "-f $(genDir)/extracted/javalib/okhttp.jar " +
        "-f $(genDir)/extracted/javalib/bouncycastle.jar " +
        "-f $(genDir)/extracted/javalib/apache-xml.jar && " +

        "$(location merge_zips) $(out) $(out).tmp $(location :art-module-host-exports)",
    dist: {
        targets: ["droidcore"],
    },
}

[Dauer der Verarbeitung: 0.23 Sekunden, vorverarbeitet 2026-06-29]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik