# GameActivity 요구 사항 및 호환성

> Understand the system requirements and feature compatibility of the GameActivity application entry point.

GameActivity에는 다음과 같은 종속성이 있습니다.

* CMake 빌드 시스템
* AndroidX

## CMake##unity-and-gameactivity-library-version-compatibility

GameActivity는 빌드 프로세스 동안 CMake를 사용하여 브리지 코드(`libgame.so`)를 생성합니다.

**참고**: 커스텀 Android SDK를 제공하는 경우 SDK에 CMake 3.22.1이 포함되어 있어야 합니다.

### AndroidX##cmake

GameActivity에는 다음 AndroidX Gradle 종속성이 필요합니다.

* `androidx.appcompat:appcompat`
* `androidx.games:games-activity`
* `androidx.core:core`
* `Androidx.constraintlayout`

Gradle은 AndroidX와 이러한 종속성을 자동으로 설치합니다.

## 플러그인 호환성##dependencies

GameActivity를 사용하는 경우 애플리케이션 플레이어 루프는 Java 스레드가 아닌 네이티브 스레드에서 실행됩니다. 즉, [플러그인](/engine/6000.0/manual/platform-specific/android/developing/plugins-for.md)에서 [myLooper](https://developer.android.com/reference/android/os/Looper#myLooper\(\))와 같은 Java API 호출이 실패합니다. `myLooper`의 경우 네이티브 스레드에 Java looper가 없기 때문입니다. 또한 `myLooper`와 같은 API를 사용하는 API도 실패합니다. 예를 들어 핸들러가 null이면 [registerInputDeviceListener](https://developer.android.com/reference/android/hardware/input/InputManager#registerInputDeviceListener\(android.hardware.input.InputManager.InputDeviceListener,%20android.os.Handler\))가 실패합니다. [Android 플러그인](/engine/6000.0/manual/platform-specific/android/developing/plugins-for.md)을 만들 때 이 제한을 이해하는 것이 중요합니다.

## Choreographer##plug-in-compatibility

GameActivity를 사용하는 경우 Unity는 프레임 시간을 동기화하기 위해 [NDK Choreographer](https://developer.android.com/ndk/reference/group/choreographer)를 사용하려고 합니다. [기기 API 레벨](/engine/6000.0/script-reference/unity-editor/android-sdk-versions.md)이 24보다 낮거나 애플리케이션이 32비트 플레이어를 사용하고 기기 API 레벨이 29보다 낮으면 Unity는 [Java Choreographer](https://developer.android.com/reference/android/view/Choreographer)를 사용합니다.

## 추가 리소스##choreographer

* [Activity 애플리케이션 엔트리 포인트](/engine/6000.0/manual/platform-specific/android/developing/application-entries/activity.md)
