> ## Documentation Index
> Fetch the complete documentation index at: https://momentic.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# App setup

> Install the tools Android testing needs, package your APK, and enable WebView debugging.

Momentic supports Android apps running on **local** and **remote emulators**.
Real devices are not supported.

## Prerequisites

For **local emulators**:

* **Node.js** 22.12.0+ or 24.0.0+
* **Java JDK** 24 (or later)
* **Android Studio** (latest stable) with platform-tools and emulator components
* `ANDROID_HOME` set in your shell

For **remote emulators**, no local Android Studio or `ANDROID_HOME` is required
once you have an APK to upload.

### Install Node.js

Download from [nodejs.org](https://nodejs.org/en/download).

```bash theme={null}
node -v  # v22.12.0 or higher
```

### Install Java

Download [JDK 24](https://www.oracle.com/java/technologies/downloads/) from
Oracle.

```bash theme={null}
java --version  # JDK 24
```

<Info>
  If `java --version` isn't found, re-open your terminal or make sure
  `JAVA_HOME/bin` is on your `PATH`.
</Info>

### Install Android Studio

Download [Android Studio](https://developer.android.com/studio) and complete the
first-run setup. Include:

* Android SDK Platform-Tools (ADB)
* Android Emulator

### Set `ANDROID_HOME`

Point `ANDROID_HOME` at your Android SDK install. Typical locations:

* macOS: `/Users/<username>/Library/Android/sdk`
* Linux: `/home/<username>/Android/Sdk`
* Windows: `C:\Users\<username>\AppData\Local\Android\Sdk`

<Tabs>
  <Tab title="macOS (zsh)">
    ```bash theme={null}
    echo 'export ANDROID_HOME="$HOME/Library/Android/sdk"' >> ~/.zshrc
    echo 'export PATH="$ANDROID_HOME/platform-tools:$ANDROID_HOME/emulator:$PATH"' >> ~/.zshrc
    source ~/.zshrc
    ```
  </Tab>

  <Tab title="Linux (bash/zsh)">
    ```bash theme={null}
    echo 'export ANDROID_HOME="$HOME/Android/Sdk"' >> ~/.bashrc
    echo 'export PATH="$ANDROID_HOME/platform-tools:$ANDROID_HOME/emulator:$PATH"' >> ~/.bashrc
    source ~/.bashrc
    ```
  </Tab>

  <Tab title="Windows">
    Follow the [official guide](https://developer.android.com/tools/variables) to
    set `ANDROID_HOME` in System Properties, then restart your shell.
  </Tab>
</Tabs>

### Verify

```bash theme={null}
node -v          # v22.12.0 or higher
java --version   # JDK 24
echo $ANDROID_HOME   # prints your SDK path
```

## Enable WebView debugging

If your app renders content inside an Android `WebView`, enable WebView
debugging so Momentic can attach and interact with elements inside the WebView.

Add this to your app's startup code, before the `WebView` is used:

```java theme={null}
WebView.setWebContentsDebuggingEnabled(true);
```

<Warning>
  Without this, interactions against WebView elements fail with
  `InternalWebAgentError: No browser controller is attached to the requested
      webview.`
</Warning>

## APK requirements

* Debug builds with `debuggable=true` work without extra configuration.
* Release builds must enable WebView debugging as above if they contain WebView
  content.
* Both ARM64 and x86\_64 APKs are supported. Remote emulators use x86\_64.

## Next steps

<CardGroup cols={2}>
  <Card title="Emulators" icon="tablet-screen-button" href="/platforms/android/emulators">
    Local vs. remote emulators and regions
  </Card>

  <Card title="CI/CD" icon="play" href="/running-tests/ci/github-actions">
    Run Android tests on every pull request
  </Card>
</CardGroup>
