Skip to main content

android-api-diff

Inspect Android framework Java and AIDL APIs across versions with the android-api-diff CLI. Use when resolving an Android API to frameworks/base source, fetching the complete content of a tagged source file, comparing signatures or availability by Android version, explaining missing APIs, generating Java hidden-API access code, or explicitly prewarming the local query cache.

Datos de origen

Repositorio
gkd-kit/gkd
Última actividad en el origen
31 de julio de 2026 a las 06:25
Idioma detectado de SKILL.md
inglés
Estrellas
42.703
Forks
2027

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Explorador de archivos
2 archivos

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
android-api-diff
description
Inspect Android framework Java and AIDL APIs across versions with the android-api-diff CLI. Use when resolving an Android API to frameworks/base source, fetching the complete content of a tagged source file, comparing signatures or availability by Android version, explaining missing APIs, generating Java hidden-API access code, or explicitly prewarming the local query cache.
# Android API Diff Use the `android-api-diff` CLI as the only tool interface. Keep its default JSON output so results remain machine-readable. ## Route the request - Run `generate` when the user wants Java hidden-API access code. It performs the version query internally, so never call `query` first. - Run `query` when the user wants signatures, version ranges, availability, missing reasons, or source metadata. - Run `resolve` when the user only needs the matching `frameworks/base` file and target kind. - Run `source` when the user wants the complete content of a known source path at an exact Android release tag. If only an API name is known, run `resolve` first and use its `source.path`. - Run `preload` only when the user explicitly asks to preload several APIs. Always quote API names because constructors and member references can contain shell-sensitive characters. ```sh android-api-diff resolve "ContentObserver()" android-api-diff source android-17.0.0_r1 core/java/android/accessibilityservice/AccessibilityButtonController.java android-api-diff query "IActivityManager.getTasks" --min-sdk 28 android-api-diff generate "ActivityThread.currentApplication" --min-sdk 28 android-api-diff preload "ContentObserver()" "IActivityManager.getTasks" --min-sdk 28 ``` Omit `--min-sdk` unless the user provides a minimum Android API level. The CLI then uses its built-in default. ## Interpret results Treat exit code `0` together with top-level `ok: true` as success. Read the operation result from the top-level `result` field. For `query`, describe range endpoints as the first or last tag checked in the current snapshot. A `last-checked` endpoint is not a promise that no later revision exists. For member queries, treat `result.overloads` as the source of truth. Each item has a stable `overloadId`, its latest checked `signature` and `member`, and independent `ranges`. A range with `missingReason: "overload-not-found"` means the member name exists in that source revision but that specific parameter signature does not. Use top-level `result.ranges[].overloadIds` only when describing which overloads were available together. On a nonzero exit code, read the structured JSON error from stderr and report its `error.code` and `error.message`. Do not add an automatic retry: the CLI network layer already retries transient fetches. ## Handle a missing CLI If `android-api-diff` is not installed, stop and tell the user to run: ```sh npm install --global android-api-diff@latest android-api-diff skill install ``` Run the Skill command from the root of the current Git or Gradle project so it remains project-scoped. Do not implement or simulate version checks. The package manager owns CLI update detection and upgrades.
Ver en GitHub