ARM Mali Graphics Debugger (MGD) を使えば、デベロッパーは Vulkan、OpenGL ES、EGL、OpenCL API コールをアプリケーション内でトレースして、フレームごとのエフェクトを理解してコードのボトルネックになりそうな要因の特定に役立ちます。このブログでは root 化されていない端末上で MGD のサポートをアンリアル エンジン アプリケーションに追加する方法を説明します。
手順はとてもシンプルです。
- インターセプタ ライブラリをビルド システムに追加する
- インターセプタ ライブラリをロードするために、アクティビティを編集する
- MGD Daemon アプリケーションをターゲット デバイスにインストールする
まず最初に、GitHub で入手可能なソースからアンリアル エンジンをダウンロードする必要があります。ダウンロード方法の詳細は、エピック サイトの アンリアル エンジン ソースコードのダウンロード方法 をご覧ください。
作業用のエンジンをコピーできたら、次は MGD を動かします。まず、MGD installation directory の中から android non-root フォルダと Unreal Engine installation フォルダ (レポジトリのクローン先) を検索します。見つかった android non-root フォルダ を Engine\Build\Android\Java\ にコピーします。
次に、インターセプタをエンジン ビルド内に正しくパッケージ化するために、Android メイクファイルを変更する必要があります。このためには、最後にこの行が追加されるように “Engine/Build/Android/Java/jni/” の Android.mk ファイルを編集して $(LOCAL_PATH)/../android-non-root/MGD.mk. をインクルードします。以下のようになります。
MGD library のロードに必要なメイン ゲーム アクティビティを指定して、Engine\Build\Android\Java\src\com\epicgames\ue4\ で GameActivity.java を検索して、onCreate 関数をこのように編集します。
エンジン側の準備はこれで完了でず。ではデバイスの設定に移りましょう。android-non-root フォルダの中で、以下のコマンドを使ってターゲット端末に MGD daemon をインストールします。
アプリケーションを実行する前に、ホスト端末から以下のコマンドを実行する必要があります (adb デバイスを先に実行して、そのデバイスを表示させておいてください):
MGD daemon アプリケーションをターゲット端末で実行し、daemon そのものを起動します:
この時点でホスト端末で MGD に接続できますので、アプリケーションを開いてデバッグを開始します。操作方法の詳細については、MGD マニュアルを参照してください。
この手順に従えば、すべてのメールベース プラットフォーム上でアンリアル アプリケーションで MGD を使うことができます。操作の詳細、またはご質問等ございましたら、ARM Mali graphics Connected Community へお問合せくさだい。