Using EOS SDK on Android

Android Studio を使用して Android プロジェクトで EOS SDK を実装する方法を説明します。

7 分で読めます

この操作ガイドは、Android StudioEpic Online Services (EOS) SDK を追加する方法、ビルド システムに確実に SDK を認識させる方法、および SDK を Android 向けに初期化する方法を説明します。

Android で SDK を実装する前に、プラットフォーム実装のための 一般的なガイドラインとリファレンス を再度ご確認ください

1. 必要なセットアップ

この操作ガイドは、Android NDK を使用して C/C++ コードをビルドできる Android Studio プロジェクトがすでに存在することを前提としています。まだプロジェクトの設定をしていない場合は、ガイド (https://developer.android.com/ndk/guides) に従って設定してください。また、このガイドでは、プロジェクトのビルドに Gradle を使用することを想定しています。その他のビルド ツールでも機能しますが、公式なサポートはされていません。

EOS SDK ではご使用のアプリケーションで libc++_shared をバンドルする必要があります。 Standard Template Library (STL) を使用する場合、.apk または .aab でバンドルする方法は を参照してください。

異なる STL を使用している場合でも、NDK リリースのために関連づけられた libc++_shared ライブラリが必要となります。sources\cxx-stl\llvm-libc++\libs\{arch}\ndk フォルダに .so ファイルがあります。これらはビルド ツールを使って最終ビルドでインクルードする必要があります。

2. EOS SDK を Android Studio プロジェクトへ追加する

Developer Portal から SDK をダウンロードすると、以下のアーティファクトを含む zip ファイルが提供されます。

  • EOS SDK から公開されたすべてのヘッダが含まれる include フォルダ。
  • アプリケーションのビルド時に使用することができる arm64-v8aarmeabi-v7a 用にビルドされた EOS SDK .so ファイルが含まれる lib フォルダ。
  • 正しいライブラリとアプリケーションを自動的にバンドルし、要求される許可と付随する java コードをプロジェクトに追加する EOSSDK.aar ファイル。

使用するビルド システムに関係なく、モジュールとして EOSSDK.aar をプロジェクトに作る必要があります。以下の手順に従って行います。

  1. [File]->[New]->[New Module…] をクリックします。
Select New Module in the File menu
  1. オプションのリストから [Import .JAR/.AAR Package (.JAR/.AAR パッケージをインポート)] を選択して [Next (次へ)] を選択します。
Select Import .JAR/.AAR Package
  1. 展開した zip ファイルから .aar ファイルを選択します。サブプロジェクト名 が自動的に「EOSSDK」と入力されます。そうならない場合は、手入力するか、別の名前を選択します。「EOSSDK」はプロジェクト内にインポートされたモジュールとして表示されます。

  2. EOSSDK フォルダに置かれているアプリケーションの build.gradle ファイルを開きます。

EOSSDK appears in the project with the build.gradle file.
  1. 依存関係ブロックに実装 androidx.security:security-crypto:1.0.0-rc01 と実装プロジェクト (path: :EOSSDK) を追加します。
dependencies {
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.security:security-crypto:1.0.0-rc01'
implementation project(':EOSSDK')
}

これにより SDK がプロジェクトにインポートされ、ビルド内にインクルードされました。aar ファイルにより、ビルド プロセス中に正しい .so ファイルが .apk/.aab に自動的に作成されます。

SDK 内に C ライブラリを直接統合する方法を次のセクションで説明します。

3. SDK をビルド システムと統合する

CMake または ndk-build を使って EOS SDK をプロジェクトに追加することができます。CMakendk-build は共に公式にサポートされた NDK との併用が可能なビルド システムです。このセクションでは、これらのシステムを使ってプロジェクトに SDK を使用する方法を説明します。

EOS With CMake を使用する

プロジェクトで CMake を使用している場合、プロジェクト内に「CMakeLists.txt」ファイルがあります。EOS SDK を NDK プロジェクトに作成するためには、CMake にライブラリの場所を伝える必要があります。

これを行うには、「CMakeLists.txt」ファイルを編集して以下のコマンドを追加します。

CMakeLists.txt

add_library(EOSSDK SHARED IMPORTED)
set(EOSSDKDIR PUT_PATH_TO_EXPANDED_ZIP_HERE)
set_property(TARGET EOSSDK PROPERTY IMPORTED_LOCATION ${EOSSDKDIR}/lib/${ANDROID_ABI}/libEOSSDK.so)
set_property(TARGET EOSSDK PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${EOSSDKDIR}/include/)

CMakeLists.txt と同じディレクトリに zip を展開する場合は、このようになります。

CMakeLists.txt

add_library(EOSSDK SHARED IMPORTED)
set(EOSSDKDIR ${CMAKE_SOURCE_DIR})
set_property(TARGET EOSSDK PROPERTY IMPORTED_LOCATION ${EOSSDKDIR}/lib/${ANDROID_ABI}/libEOSSDK.so)
set_property(TARGET EOSSDK PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${EOSSDKDIR}/include/)

最後に、EOS SDK がプロジェクトで適切なライブラリとリンクしているか確認します。Android Studio において C++ プロジェクトが 新規プロジェクト ウィザード で作成されます。以下のようになります。

CMakeLists.txt

target_link_libraries( # Specifies the target library.
native-lib
#Links the target library to the EOSSDK
EOSSDK
# Links the target library to the log library
# included in the NDK.