# 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 ルーパーが存在しないためです。また、`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)を作成する場合は、この制約を理解しておくことが重要です。

## コレオグラファー##plug-in-compatibility

GameActivity を使用する場合、Unity は [NDK コレオグラファー](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 コレオグラファー](https://developer.android.com/reference/android/view/Choreographer)を使用します。

## 追加リソース##choreographer

* [Activity アプリケーションのエントリーポイント](/engine/6000.0/manual/platform-specific/android/developing/application-entries/activity.md)
