Consolidate the Proguard rules for @Keep annotations for:
* android.support.annotation.Keep (existing)
* androidx.annotation.Keep (existing)
* com.android.internal.annotation.Keep (new)
This ensures consistent semantics for clients using these annotations
across the codebase. Ideally there would be a single annotation, but
the support libraries are not available everywhere. In practice, this
change should be a no-op.
Bug: 210510433
Test: m + validate identical artifact sizes
Change-Id: Iab494e03269e5758d7f860331e971826ecc08cdd
With this change, use:
* LOCAL_PROGUARD_ENABLED := obfuscation # to enable obfuscation
* LOCAL_PROGUARD_ENABLED := optimization # to enable optimization
* LOCAL_PROGUARD_ENABLED := obfuscation optimization # to enable both
Now the meaning of the LOCAL_PROGUARD_ENABLED options:
* full:
Use the build system's default configurations:
with shrink but no obfuscation or optimization,
global proguard flags in build/core/proguard.flags
are applied.
* custom:
The same as "full" except no aapt-generated resource-related
proguard flags.
* nosystem:
Don't use any build system's default configurations; but
aapt-generated proguard flags are still applied. You are
responsible for any other flags.
* disabled:
Disable proguard.
* obfuscation:
The same as "full" but with obfuscation enabled.
* optimization:
The same as "full" but with optimization enabled.
* no value (the default):
The build system chooses the proper value: "full" if it's an
app; "disabled" if it's a library.
You can use more than 1 of them in a meaningful combination,
for example:
LOCAL_PROGUARD_ENABLED := obfuscation optimization
Bug: 10307372
Change-Id: Id248caca3048e99547f16559fae74f4afe85c354
So all most commonly-used flags go to proguard_basic_keeps.flags
and they will still be applied when LOCAL_PROGUARD_ENABLED=nosystem.
Bug: 9203442
Change-Id: If018076dc625ac1efe31898b179dbba850218aaf
The support library contains references to newer platform versions.
Don't warn about those in case this app is linking against an older
platform version. We know about them, and they are safe.
Change-Id: Ia2a90398b1db1858d005ec09ded56751cc6ffb00