--- name: android_app_clear kind: function lang: bash domain: infra version: "1.0.0" purity: impure signature: "android_app_clear([--serial ], package: string) -> void" description: "Wipe app data + cache via pm clear. App keeps installed but factory-state. Multi-emulator via --serial." tags: [android, adb, app, clear, reset, pendiente-usar] params: - name: "--serial " desc: "Optional target device/emulator serial. Auto-detected if omitted." - name: package desc: "App package whose data to clear (e.g. com.example.app)." output: "Stdout 'cleared data for on '. Exit 0 si pm clear OK." uses_functions: ["adb_wsl_bash_infra"] uses_types: [] returns: [] returns_optional: false error_type: "error_go_core" imports: [] tested: false tests: [] test_file_path: "" file_path: "bash/functions/infra/android_app_clear.sh" --- ## Ejemplo ```bash # Limpiar datos de una app (autodetecta device) android_app_clear com.example.myapp # Con serial explícito android_app_clear --serial emulator-5554 com.example.myapp # Llamada directa bash bash/functions/infra/android_app_clear.sh com.example.myapp bash bash/functions/infra/android_app_clear.sh --serial emulator-5554 com.example.myapp ``` ## Notas - Usa `pm clear` internamente — borra SharedPreferences, bases de datos internas, caché y archivos de la app. La app queda como recién instalada. - El source de `adb_wsl.sh` resuelve el binario `adb.exe` Windows desde WSL2. Se puede sobreescribir con `ADB=...` o `ANDROID_SDK_WIN=` antes de invocar. - `adb_pick_serial` consume `--serial ` de los args y deja el resto en `ADB_PICK_REST`. Si no se da, autodetecta el primer device/emulador activo. - Exit 3 si no hay ningún device conectado (propagado desde `adb_pick_serial`). - Exit 1 si no se pasa package.