This reverts commit b832ae19d8.
Reason for revert: Reland Switch to JDK 21 when related issues are resolved.
Bug: 313924276
Change-Id: Ibb5031d9892d1ddc5bc4d2af9885c3192b8ac8ad
Test: TH
This reverts commit 5a2e36b755.
Reason for revert: Preparing revert to have it ready in case of breakages relating to using JDK 21.
Change-Id: I153c4933f6891c7fff43e522a4d128acad6b6d47
New soong module type `TestModuleConfig`
This module type allows to write:
test_module_config {
name: "DerivedFrameworks1",
base: "FrameworksServicesTests",
include_filters: ["com.android.server.accessibility.FingerprintGestureDispatcherTest"],
}
This goal is to put the test options (include_fitler in this case) in
Android.bp rather than TEST_MAPPING to be able to name a set of options
and to allow the CI to more precise about which part of a TestModule
might be failing.
In general, it is recommended to split up tests rather than use this
approach, but that isn't always feasible.
More details on project here: https://docs.google.com/document/d/1MpA4BS6mTr-1D-K9MVmzdHkSufAvIkkM4gPEUglNodk/edit?tab=t.0
Migration plan here: https://docs.google.com/document/d/1x3w-BvKO3E-GbY8YOSBuzJC6-pkLkuhfjSyZ1hJQBYM/edit?tab=t.0
Some details of final output:
* All the [data] files from Derived are the same as base.
* The apk names is changed to be the Module name
* The test options are added to .config file
* test-file-name in the .config file (for base.apk) is changed to be
new apk.
* module-info.json is hand inspected between base and derived.
* I added a .manifest file so future tools know what base is, if they
need it.
We are working a mechanism to use a CAS so the zip of the testcases
won't explode. (however the trident disk image will get bigger)
% tree -ls out/target/product/shiba/testcases/DerivedFrameworks1 out/target/product/shiba/testcases/FrameworksServicesTests
[ 4096] out/target/product/shiba/testcases/DerivedFrameworks1
├── [ 4096] arm64
│ └── [ 72346281] DerivedFrameworks1.apk
├── [ 20887] BstatsTestApp.apk
├── [ 4096] data
│ └── [ 851] broken_shortcut.xml
├── [ 3157] DerivedFrameworks1.config
├── [ 12695] JobTestApp.apk
├── [ 8599] MediaButtonReceiverHolderTestHelperApp.apk
├── [ 16791] SimpleServiceTestApp1.apk
├── [ 16791] SimpleServiceTestApp2.apk
├── [ 16791] SimpleServiceTestApp3.apk
├── [ 1017540] SuspendTestApp.apk
└── [ 36] test_module_config.manifest
[ 4096] out/target/product/shiba/testcases/FrameworksServicesTests
├── [ 4096] arm64
│ └── [ 72346281] FrameworksServicesTests.apk
├── [ 20887] BstatsTestApp.apk
├── [ 4096] data
│ └── [ 851] broken_shortcut.xml
├── [ 2866] FrameworksServicesTests.config
├── [ 12695] JobTestApp.apk
├── [ 8599] MediaButtonReceiverHolderTestHelperApp.apk
├── [ 16791] SimpleServiceTestApp1.apk
├── [ 16791] SimpleServiceTestApp2.apk
├── [ 16791] SimpleServiceTestApp3.apk
└── [ 1017540] SuspendTestApp.apk
Fixes: 314148134
Test: atest DerivedFrameworks1 DerivedFrameworks2
Test: m blueprint_tests
Change-Id: Ib73a3404557e0bd583b065f0cf2fd55fba9ccdbe
Reverse the order of transitive R.jar classpath entries so that
the R.jar from the current module comes first, and so that R.jar
from any direct dependency comes before the R.jar of any transitive
dependencies through the direct dependency. Also swap the order of
shared and static dependencies so that static dependencies come first
in the final classpath.
Bug: 294256649
Test: m javac-check
Test: TestAndroidResourceProcessor
Change-Id: Id9ea5b53ca563f79d0a25fb52b24552dbea70605
This CL uses OverrideName to ensure that the LOCAL_MODULE does not
contain any version information.
Test: Created CaptiveLoginPortalGoogle.v2, and checked that its
LOCAL_MODULE is CaptiveLoginPortalGoogle
Change-Id: I177441bcd55ca538759b69aafb73d0a8b7261179
The apex_contributions in next builds use prebuilt apexes with source
java_sdk_library for javac. The dexpreopt rules of the source
java_sdk_library are disabled via
RELEASE_DEFAULT_MODULE_BUILD_FROM_SOURCE coupled with some complicated
special-casing in android/prebuilt.go
This special-casing breaks if we want to use prebuilts of some modules,
and sources of other modules. To enable per mainline module
toggelability, explicitly disable dexpreopt of source variant of
java_sdk_library if we use prebuilt of the containing apex.
Test: In internal, updated trunk_staging.scl's
RELEASE_APEX_CONTRIBUTIONS_ADSERVICES to use prebuilt followed by m
nothing
Change-Id: I32daefbd38338b396d6f07b899826b2869d8f8e1
For multiple mainline prebuilts, we will have multiple versioned
prebuilt apps in the tree. The soong name of these prebuilts will have a
version prefix to prevent name collisions (e.g. MyGoogleApp.v2).
This CL introduces a source_module_name property in android_app_imoprt.
This property will be used for the following
1. Determining installation path. This should be
/system/app/MyGoogleApp/MyGoogleApp.apk
and not
/system/app/MyGoogleApp.v2/MyGoogleApp.apk
(filename prop determines the filename and not the dir name)
2. Preventing duplicate installation rules: This property will be used
to create a dependency to the source app, and call HideFromMake on
all the unflagged apps
Test: presubmits
Test: locally # Created CaptivePortalLoginGoogle.v2 and selected it
using one of the RELEASE_APEX_CONTRIBUTION_* flags
Bug: 326995930
Change-Id: If4ab9f9bd295117c96eb062cf3b3d2efc8bfed12
Use the R.txt files from aar imports directly instead of recreating
one using aapt2 from the embedded resources. Fixes an issue with
com.google.android.material where the jar was referencing
com.google.android.material.R.attr.theme, aapt2 was not producing
"int attr theme 0x0" in R.txt, but the aar's R.txt had it.
Bug: 294256649
Test: builds
Change-Id: Ibe1e5535a75eed59f3b8dbbc12eff9c07af51d37
extraCombinedJars contains the R.jar generated by
ResourceProcessorBusyBox for apps. It needs to go before any
static_libs dependencies so that the finalized R values take
precedence over any non-final R values that may have been included
in the dependencies. Moving after the javac and kotlinc compiled
jars helps minimize differences when turning on use_resource_processor
by default by using the MANIFEST.MF generated by soong_zip instead of
the one generated by ResourceProcessorBusyBox, which contains a
different Created-By field.
Bug: 294256649
Test: m javac-check
Change-Id: I8d060594404121fd36ef650ac317f0c5d5f92b23
Setting use_resource_processor: true can increase the length of the
classpath enough to trigger "command line too long" errors. There are
clockwork libraries with 546 transitive android_library dependencies.
Write classpaths longer than 64kB to a separate file and add them
to the javac and turbine command lines with the @file syntax.
Bug: 294256649
Test: m checkbuild
Change-Id: I2b6a57ae30de03347db3221e9c9a4b2efb490115
This change adds support to generate non-"everything" (i.e. "runtime"
and "exportable") stubs in java_api_library, which generates the stubs
from the api signature files.
Unlike droidstubs module that generates "everything", "exportable" and
"runtime" stubs in a single module, java_api_library generates a single
set of stubs per module, which is set by the default-"everything"
property `stubs_type`. This is because java_api_library is responsible
for both generation and the compilation of the stubs srcjar, and
compilation of the stubs srcjar are done in separate java_library
modules for from-source stubs.
Utilization of this feature will be done in a follow up change that
generates the "exportable" java_api_library modules in java_sdk_library.
Test: m nothing --no-skip-soong-tests
Bug: 318009570
Change-Id: I1051544ac3bcdb3ba1f78bfec28eba4e9fad9c2d
Similar to how the exportable stubs are generated in droidstubs, this
change adds the rule to generate the runtime stubs in droidstubs. Unlike
the exportable stubs, which the artifacts are dist'ed during the sdk
build, the runtime stubs will only used in the hiddenapi flags
generation. Therefore, only the stubs are generated and no other
artifacts are generated during the "runtime" metalava invocation. When
`aconfig_declarations` property is not defined (i.e. no flags are
enabled, thus the exportable and the runtime stubs are identical), the
runtime stubs are simple copied from the exportable stubs.
Note that the runtime stubs are not a dependency of `droid` as of now.
The dependency of the hiddenapi flags will be replaced to the runtime
stubs in the child CL.
Test: m nothing --no-skip-soong-tests && m api-stubs-docs-non-updatable
Bug: 319162970
Change-Id: I14928b7b5619522c4caab1dfc795bc9c7e929639
This change performs additional cleanups in the build rules of the
droidstubs module, specifically optionalizing annotationFlags(...) and
apiLevelsAnnotationsFlags(...). This is required as "runtime" stubs
would not generate other artifacts than the stubs, and thus
`stubsArtifacts` would not be generated for "runtime".
Test: m nothing
Bug: 319162970
Change-Id: Ia009df3d01f49841d5041fb2dfdfa7ef8671bf18
Support the feature with new property combined with architecture and dpi
resolution.
Bug: 319381869
Test: go test -run TestAndroidAppImport_ArchVariants
Change-Id: Ib43cbae8868fc35701e6666867b2325f5abbb2c7