## Relacionado - [[Android seguro]] - [Battery Historian](https://developer.android.com/topic/performance/power/setup-battery-historian): Herramienta para analizar el uso de batería ## Desarrollo en Alpine Estas instrucciones están parcialmente tomadas de [esta respuesta en StackOverflow](https://stackoverflow.com/a/66316335). 1. Para instalar el SDK en Alpine, primero instalemos `android-tools` para instalar las herramientas básicas de Android (`adb` por ejemplo) junto a sus versiones de Java: ```sh # Correr como root: apk add android-tools ``` 2. Después tenemos que crear un `ANDROID_SDK_ROOT`: ```sh mkdir ~/android-sdk # ¡Poner en ~/.profile! export ANDROID_SDK_ROOT="$HOME/android-sdk" export PATH="$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin" ``` 3. Bajamos [commandlinetools](https://developer.android.com/studio#command-tools) (que incluye `sdkmanager`) y lo extraemos dentro de `~/android-sdk/cmdline-tools/latest`. 4. Finalmente, instalamos las cosas que necesitamos. Por ejemplo, para [Lunar](https://0xacab.org/lunaramaturitmo/app/) (acorde a [la documentación](https://0xacab.org/lunaramaturitmo/app/-/blob/master/docs/prepare.md)): ```sh sdkmanager 'build-tools;29.0.2' 'platforms;android-29' ``` 5. Instalamos [`gcompat`](https://git.adelielinux.org/adelie/gcompat) que nos permite correr binarios que requieren [Glibc](https://es.wikipedia.org/wiki/Glibc) en Alpine que no lo tiene: ```sh # Correr como root: apk add gcompat ``` ## `adb reverse` roto En algunos dispostivos, cuando están conectados a través de ADB TCP/IP se rompen al intentar usar `adb reverse`: ``` $ adb reverse tcp:42069 tcp:42069 more than one device/emulator ``` Aún cuando no hay otros dispositivos. La solución es hacer el `adb reverse` antes de conectarse mientras está conectado por USB: ``` adb tcpip 5555 adb reverse tcp:42069 tcp:42069 adb connect IP:5555 ```