| # Metalava usage by clients |
| |
| This doc lists out known usages of Metalava with specific features used by each user. The main users are Android |
| platform and AndroidX libraries. |
| |
| ## Features used by both androidx and Android platform |
| - Signature generation of `*.txt` e.g. `current.txt` (`--api`) |
| - API change compatibility checking of current API vs previous version txt (`--check-compatibility:api:released`) |
| - API lint for compliance with [Android API guidelines](https://s.android.com/api-guidelines) (`--api-lint`) |
| |
| ## Features used exclusively by androidx |
| - Kotlin sources as inputs |
| |
| ## Features used exclusively by Android platform |
| - Support for partial signature files (opposite of `--show-unannotated`) where `@SystemApi` txt file omits public APIs |
| - Java stubs for jar generation (`--stubs`) for generating android.jar, etc for SDK |
| - Java stubs for docs generation (`--doc-stubs`) for passing to documentation tools |
| - Documentation stub enhancement (`--enhance-documentation`) |
| - Injecting `added in API level` into documentation stubs (`--apply-api-levels`) |
| - Generating API levels information for documentation and SDK (`--generate-api-levels`) |
| - Documentation rewriting for documentation stubs (`--replace-documentation`) used by libcore |
| - Rewriting of nullness annotations to @RecentlyNull/NonNull (`--migrate-nullness`, |
| `--force-convert-to-warning-nullability-annotations`) for SDK |
| - Tracking @removed APIs (`--removed-api`) |
| - DEX API signature generation (`--dex-api`) for for hidden API enforcement |
| - XML API signature generation (`--api-xml`) for CTS tests and test coverage infrastructure |
| - Annotation include, exclude, rewrite, passthrough in stubs (`--include-annotations`, `--exclude-all-annotations`, |
| `--pass-through-annotation`, `--exclude-annotation`) |
| - Annotation extraction (`--extract-annotations`, `--include-annotation-classes`, `--rewrite-annotations`, |
| `--copy-annotations`, `--include-source-retention`) for generating SDK |
| - Generating SDK metadata (`--sdk-`values`) |