# Matter Android Virtual Device App Example

This is a Matter Android Device app that can be used as a commissionee device.

This app offers the following features:

-   Work as a commissionee device on Android environment
-   Make custom payload information and display Matter QR code
-   Provide UI for the user to change the cluster attribute values and create
    the cluster event

<hr>

-   [Matter Android Virtual Device App Example](#matter-android-virtual-device-app-example)
    -   [Requirements for building](#requirements-for-building)
    -   [Preparing for build](#preparing-for-build)
    -   [Building & Installing the app](#building--installing-the-app)

<hr>

<a name="requirements"></a>

## Requirements for building

For information about how to build the application, see the
[Building Android](../../../docs/platforms/android/android_building.md) guide.

## Preparing for build

Complete the following steps to prepare the Matter build:

1. Check out the Matter repository.

2. Run bootstrap (**only required first time**)

    ```shell
    source scripts/bootstrap.sh
    ```

<a name="building-installing"></a>

## Building & Installing the app

This is the simplest option. In the command line, run the following command from
the top Matter directory:

```shell
./scripts/build/build_examples.py --target android-arm64-virtual-device-app build
```

See the table above for other values of `TARGET_CPU`.

The debug Android package `app-debug.apk` will be generated at
`out/android-$TARGET_CPU-virtual-device-app/VirtualDeviceApp/app/outputs/apk/debug/`,
and can be installed with

```shell
adb install out/android-$TARGET_CPU-virtual-device-app/VirtualDeviceApp/app/outputs/apk/debug/app-debug.apk
```

You can use Android Studio to edit the Android app itself and run it after
build_examples.py, but you will not be able to edit Matter Android code from
`src/controller/java`, or other Matter C++ code within Android Studio.
