platform_build_soong/sdk
Jiakai Zhang cb13b5d1bd Refactor dexpreopt for boot jars to make it flexible to config changes.
In the past, dexpreopt for boot jars was very inflexible, and it was
incredibly hard to make a change that is as simple as adding a jar to a
boot image. Boot image generation was handled by
"platform_bootclasspath" and "bootclasspath_fragment" separately. This
caused not only code duplication but also the inflexiblity as such a
design did not fit today's use cases, where a boot image may take jars
from multiple mainline modules and the platform, and a mainline module
can contribute to multiple boot images. The design casued a huge
maintenance burden as any change to the boot image cost multi-week
efforts.

In recent years, efforts have been made to improve this a bit by a bit.
This change is another step towards making dexpreopt reasonable.

After this change, all boot images are generated by "dex_bootjars",
which is in build/soong and is therefore available on both the full
source tree and the thin manifest (master-art). The change decouples
profile generation/extraction from boot image generation. Profiles for
mainline modules are still handled by "bootclasspath_fragment"
because they need to be packed into APEXes when building mainline
modules and extracted from APEXes whem building the system image from
prebuilt modules. Boot images are not handled by
"bootclasspath_fragment" anymore.

Bug: 290583827
Test: m (all existing tests are still passing)
Test: Manually checked that the boot images are exactly the same as
  before.
Change-Id: Ib5a5f401bee334ffcab5c26618e0c8888b84575a
2023-07-14 12:13:28 +01:00
..
Android.bp Support handling build releases in sdk snapshot 2021-10-01 17:17:34 +01:00
bootclasspath_fragment_sdk_test.go Refactor dexpreopt for boot jars to make it flexible to config changes. 2023-07-14 12:13:28 +01:00
bp.go don't export systemserverclasspath_fragment if contents are empty 2023-06-30 15:25:16 -04:00
bp_test.go Replace AssertPanic with AssertPanicMessageContains 2021-03-20 12:08:51 +00:00
build_release.go Add UpsideDownCake to the releases for which snapshots can be built 2022-09-30 09:41:08 +01:00
build_release_test.go Add UpsideDownCake to the releases for which snapshots can be built 2022-09-30 09:41:08 +01:00
cc_sdk_test.go Remove support for generating versioned snapshots 2022-05-24 20:10:05 +00:00
compat_config_sdk_test.go Export any platform_compat_config used by apex to sdk snapshot 2022-07-20 14:18:24 +00:00
exports.go Remove support for generating versioned snapshots 2022-05-24 20:10:05 +00:00
exports_test.go Remove support for generating versioned snapshots 2022-05-24 20:10:05 +00:00
java_sdk_test.go Dynamically link static libs for sdk_library created java_library 2023-06-15 18:18:09 +00:00
license_sdk_test.go Remove support for generating versioned snapshots 2022-05-24 20:10:05 +00:00
member_trait.go Reformat build/soong for go 1.19 2022-08-17 10:43:13 -07:00
member_trait_test.go Remove support for generating versioned snapshots 2022-05-24 20:10:05 +00:00
member_type.go Reformat build/soong for go 1.19 2022-08-17 10:43:13 -07:00
sdk.go Remove memberMutator and use DepsMutator instead 2022-12-12 17:33:06 +00:00
sdk_test.go Dynamically link static libs for sdk_library created java_library 2023-06-15 18:18:09 +00:00
systemserverclasspath_fragment_sdk_test.go don't export systemserverclasspath_fragment if contents are empty 2023-06-30 15:25:16 -04:00
testing.go Add current build release 2022-08-19 17:39:49 +00:00
update.go don't export systemserverclasspath_fragment if contents are empty 2023-06-30 15:25:16 -04:00