このガイドでは、品質の高い堅牢なアプリを作成するためのおすすめの方法と推奨アーキテクチャを紹介します。
モバイルアプリのユーザー エクスペリエンス
標準的な Android アプリは、さまざまなアプリ コンポーネント(アクティビティ、フラグメント、サービス、コンテンツ プロバイダ、ブロードキャスト レシーバなど)で構成されています。これらのアプリ コンポーネントのほとんどを、アプリ マニフェストで宣言しておきます。Android OS ではこのアプリ マニフェスト ファイルを基に、デバイスの全体的なユーザー エクスペリエンスにアプリをどのように組み込むかを決定します。一般的な Android アプリには複数のコンポーネントが含まれており、ユーザーが短時間に複数のアプリを頻繁に操作することを考慮すると、アプリはユーザー主導のさまざまなワークフローとタスクに適応する必要があります。
また、モバイル デバイスはリソースに限りがあるため、オペレーティング システムは新たなアプリのリソースを確保するために、アプリプロセスを任意のタイミングで強制終了する場合があります。
このような環境の条件を考慮すると、アプリ コンポーネントは個別に順不同で起動され、オペレーティング システムやユーザーによって随時破棄される可能性があります。デベロッパーはこうしたイベントを制御できないため、アプリのデータや状態をアプリ コンポーネント内に保存したり、メモリ内に保持したりしないでください。また、アプリ コンポーネントは互いに依存してはなりません。
アーキテクチャに関する共通の原則
アプリのデータや状態の保存にアプリ コンポーネントを使用できないとなると、アプリをどのように設計すればよいのでしょうか。
Android アプリのサイズが大きくなるにつれ、アプリを拡張し、堅牢性を高め、アプリをテストしやすくするアーキテクチャを定義することが重要になります。
アプリ アーキテクチャは、アプリの各部分の境界と、各部分が担う役割を定義します。前述のニーズを満たすには、具体的な原則に沿ってアプリ アーキテクチャを設計する必要があります。
関心の分離
最も重要な原則は関心の分離です。すべてのコードを 1 つの Activity
または Fragment
に記述するのはよくある間違いです。これらの UI ベースのクラスには、UI やオペレーティング システムとのやり取りを処理するロジックのみを含めます。これらのクラスをできる限りシンプルに保つことで、コンポーネントのライフサイクルに関連する多くの問題を回避し、クラスのテストのしやすさを向上させることができます。
Activity
と Fragment
の実装はデベロッパーが管理するものではないことにご注意ください。これらのクラスは、Android OS とアプリの間のコントラクトを体現する単なる結合クラスです。Android OS は、ユーザーの操作に基づいて、またはシステムの状態(メモリ不足など)を理由として、いつでもこれらのクラスを破棄できます。十分なユーザー エクスペリエンスを実現し、アプリを管理しやすくするために、クラスへの依存を最小限に抑えることをおすすめします。
UI をデータモデルで操作する
もう 1 つの重要な原則は、UI をデータモデルで操作することです(永続モデルをおすすめします)。データモデルはアプリのデータを表し、アプリの UI 要素やその他のコンポーネントから独立しています。つまり、UI とアプリ コンポーネントのライフサイクルには関連付けられませんが、OS がアプリのプロセスをメモリから削除することを決定したときは、破棄されます。
永続モデルが望ましい理由として、次の点が挙げられます。
Android OS がアプリを破棄してリソースを解放してもデータが失われない。
ネットワーク接続が不安定または利用不可の場合でもアプリが動作し続ける。
アプリ アーキテクチャをデータモデル クラスに基づいて構築すると、アプリのテストのしやすさと堅牢性を高めることができます。
信頼できる唯一の情報源
アプリ内で新しいデータ型を定義するときは、信頼できる唯一の情報源(SSOT)を割り当てる必要があります。SSOT はそのデータの「オーナー」であり、SSOT のみがそのデータを変更またはミューテーションできます。そのために、SSOT は不変の型を使用してデータを公開します。SSOT がデータを変更するには、関数を公開するか、他の型が呼び出すことができるイベントを受け取ります。
このパターンには、次のようないくつかのメリットがあります。
- 特定のデータ型に対するすべての変更を 1 か所に集約できる。
- 他の型によって改ざんされないようにデータを保護できる。
- データに対する変更が追跡しやすくなり、それによりバグを見つけやすくなる。
オフライン ファーストのアプリでは、アプリデータの信頼できる情報源は、通常はデータベースです。場合によっては、ViewModel や UI が信頼できる情報源になります。
単方向データフロー
単方向データフロー(UDF)パターンに関する Android のガイドでは、信頼できる唯一の情報源の原則がよく使用されます。UDF では、状態は一方向にのみ流れます。データを変更するイベントはその反対方向に流れます。
Android では、一般的に状態またはデータは、上位スコープの階層の型から下位スコープの階層の型に流れます。一般的にイベントは、下位スコープの型からトリガーされ、対応するデータ型の SSOT に到達するまで流れます。たとえば、一般的にアプリデータはデータソースから UI に流れます。ボタンの押下などのユーザー イベントは UI から SSOT に流れ、SSOT でアプリデータが変更されて、不変の型で公開されます。
このパターンにより、データの整合性の保証が向上し、間違いの発生が減り、デバッグが簡単になります。つまり、SSOT パターンのすべてのメリットが実現されます。
アプリの推奨アーキテクチャ
このセクションでは、推奨されるベスト プラクティスに沿ってアプリを構築する方法について説明します。
前のセクションで説明したアーキテクチャに関する一般的な原則を考慮すると、各アプリに少なくとも 2 つのレイヤが必要です。
- 画面にアプリデータを表示する UI レイヤ。
- アプリのビジネス ロジックを含み、アプリデータを公開するデータレイヤ。
ドメインレイヤというレイヤを追加することで、UI レイヤとデータレイヤの間のやり取りを簡素化でき、再利用できます。

最新のアプリ アーキテクチャ
この最新のアプリ アーキテクチャでは、特に次の手法の使用が推奨されています。
- リアクティブで階層的なアーキテクチャ。
- アプリのすべてのレイヤにおける単方向データフロー(UDF)。
- UI の複雑さを管理する状態ホルダーを含む UI レイヤ。
- コルーチンとフロー。
- 依存関係挿入のベスト プラクティス。
詳細については、以下の各セクションおよび目次にあるその他のアーキテクチャ ページと、最も重要なベスト プラクティスの概要が記載されている推奨事項ページをご覧ください。
UI レイヤ
UI レイヤ(またはプレゼンテーション レイヤ)の役割は、アプリデータを画面に表示することです。ユーザー操作(ボタンの押下など)または外部入力(ネットワーク レスポンスなど)によってデータが変更されるたびに、変更を反映するように UI を更新する必要があります。
UI レイヤは次の 2 つのもので構成されています。
- データを画面にレンダリングする UI 要素。これらの要素は、View または Jetpack Compose 関数を使用して作成します。
- データを保持して UI に公開し、ロジックを処理する状態ホルダー(ViewModel クラスなど)。

このレイヤについて詳しくは、UI レイヤのページをご覧ください。
データレイヤ
アプリのデータレイヤには、ビジネス ロジックが含まれています。ビジネス ロジックはアプリに価値をもたらすものであり、アプリがデータを作成、保存、変更する方法を決定するルールで構成されています。
データレイヤは、それぞれが 0 から多数のデータソースを含むことができるリポジトリで構成されています。アプリで処理するデータの種類ごとにリポジトリ クラスを作成する必要があります。たとえば、映画に関するデータであれば MoviesRepository
クラス、支払いに関するデータであれば PaymentsRepository
クラスを作成します。

リポジトリ クラスは、次のタスクを行います。
- アプリの他の部分にデータを公開する。
- データの変更を一元管理する。
- 複数のデータソース間の競合を解決する。
- アプリの他の部分からデータソースを抽象化する。
- ビジネス ロジックを格納する。
各データソース クラスは、ファイル、ネットワーク ソース、ローカル データベースなど、1 つのデータソースのみを処理する役割を担う必要があります。データソース クラスは、データ オペレーションのためにアプリとシステムの橋渡しをします。
このレイヤについて詳しくは、データレイヤのページをご覧ください。
ドメインレイヤ
ドメインレイヤは、UI レイヤとデータレイヤの間に位置するオプションのレイヤです。
ドメインレイヤは、複雑なビジネス ロジック、または複数の ViewModel で再利用される単純なビジネス ロジックをカプセル化します。すべてのアプリにこのような要件があるわけではないため、このレイヤはオプションです。複雑さに対処する場合や再利用性を優先する場合など、必要な場合にのみ使用してください。

通常、このレイヤのクラスを「ユースケース」または「インタラクタ」と呼びます。各ユースケースは 1 つの機能を担うべきです。たとえば、複数の ViewModel がタイムゾーンに基づいて適切なメッセージを画面に表示する場合、アプリに GetTimeZoneUseCase
クラスを持たせることができます。
このレイヤについて詳しくは、ドメインレイヤのページをご覧ください。
コンポーネント間の依存関係を管理する
アプリのクラスは、適切に機能するために他のクラスに依存しています。次のいずれかのデザイン パターンを使用して、特定のクラスの依存関係を収集できます。
- 依存関係の注入(DI): 依存関係の注入を利用すると、クラスの依存関係を構築することなく定義できます。ランタイムには、別のクラスがこの依存関係を提供します。
- サービス ロケータ: サービス ロケータ パターンでは、クラスが依存関係を作成せずに取得できるレジストリが提供されます。
こうしたパターンでは、コードが重複して煩雑になることなく依存関係を明確に管理できるため、コードの拡張が可能になります。さらに、テスト版と製品版の実装を簡単に切り替えることができます。
依存関係の注入のパターンに沿って、Android アプリで Hilt ライブラリを使用することをおすすめします。Hilt では、依存関係ツリーをたどって自動的にオブジェクトが構築され、コンパイル時の依存関係が保証され、Android フレームワーク クラスの依存関係コンテナが作成されます。
一般的なベスト プラクティス
プログラミングは創造的な活動であり、Android アプリの作成も例外ではありません。問題の解決方法は数多くあります。複数のアクティビティやフラグメント間でデータをやり取りする、リモートデータを取得してオフライン モード用にローカルで永続化するなど、重要なアプリで対処する一般的なシナリオにはさまざまなものがあります。
以下の推奨事項は必須ではありませんが、ほとんどの場合これに沿うことで、コードベースの堅牢性を高め、テストとメンテナンスを長期にわたって容易に実施できるようになります。
アプリのコンポーネントにデータを格納しないでください。
アプリのエントリ ポイント(アクティビティ、サービス、ブロードキャスト レシーバなど)をデータソースとして指定しないでください。その代わり、そのエントリ ポイントに関連するデータのサブセットを取得する他のコンポーネントとの調整のみを行う必要があります。ユーザーによるデバイスの操作や、システムの現在の全体的な稼働状態によっては、各アプリ コンポーネントの生存期間がかなり短くなります。
Android クラスへの依存を減らします。
アプリ コンポーネントは、Context
や Toast
など、Android フレームワーク SDK API に依存する唯一のクラスにする必要があります。そこからアプリの他のクラスを抽象化すると、テストがしやすくなり、アプリ内の結合を軽減できます。
アプリの各種モジュール間の役割の境界を明確に定義します。
たとえば、ネットワークからデータを読み込むコードを、コードベース内の複数のクラスやパッケージに散在させないでください。同様に、関連のない複数の処理(データ キャッシングとデータ バインディングなど)を同じクラスで定義しないでください。アプリの推奨アーキテクチャに沿うと便利です。
各モジュールからの公開はできるだけ行わないでください。
たとえば、モジュールの内部実装の詳細を公開するショートカットを作成しようとしないでください。短期的には時間を少し節約できるかもしれませんが、コードベースが発展するにつれて何倍もの技術的負債を負うことになる可能性があります。
アプリの特別な部分に焦点を当てて、他のアプリとの差別化を図ります。
同じボイラープレート コードを何度も書いてすでにあるものを作り直すのではなく、アプリを特別なものにすることに時間とエネルギーを集中させましょう。繰り返しのボイラープレート コードの記述には Jetpack ライブラリやその他の推奨ライブラリを利用してください。
アプリの各部分を個別にテストできるようにする方法を検討します。
たとえば、ネットワークからデータを取得するための明確に定義された API を用意することで、そのデータをローカル データベースに永続化するモジュールを簡単にテストできるようになります。そうしないで、2 つのモジュールのロジックを 1 か所に混在させたり、ネットワーク用のコードをコードベース全体に分散させたりすると、テストが不可能にはならないにしても、非常に困難になります。
型は同時実行ポリシーに関する責任を負います。
ある型が時間のかかるブロック処理を実行している場合、その型は適切なスレッドに計算を移動する責任を負います。その特定の型は、実行している計算のタイプと、その計算をどのスレッドで実行する必要があるかを認識します。型はメインセーフである(つまり、ブロックせずにメインスレッドから安全に呼び出せる)ことが必要です。
データの関連性と新鮮さをできる限り維持します。
こうすることで、デバイスがオフライン モードのときでも、ユーザーがアプリの機能を利用できるようになります。すべてのユーザーが常に高速な接続を利用できるわけではなく、たとえ利用できるとしても、混雑した場所では受信不良が起きる可能性があることに留意してください。
アーキテクチャのメリット
優れたアーキテクチャをアプリに実装することは、プロジェクト チームとエンジニアリング チームに次のような多くのメリットをもたらします。
- アプリ全体の保守性、品質、堅牢性が向上します。
- アプリのスケーリングが可能になります。より多くの人々とチームが、コードの競合を最小限に抑えながら、同じコードベースで開発に寄与できます。
- オンボーディングに役立ちます。アーキテクチャによってプロジェクトに一貫性がもたらされるため、新しいメンバーが速やかにチームに適応し、短時間でより効率的に作業できるようになります。
- テストが簡単になります。優れたアーキテクチャでは、一般的にテストしやすいシンプルな型が推奨されます。
- 適切に定義されたプロセスを使用して、体系的にバグを調査できます。
アーキテクチャへの投資は、ユーザーにも直接的な影響を及ぼします。エンジニアリング チームの生産性が高まることで、アプリの安定性と機能性が向上します。ただし、アーキテクチャの実装には事前の準備時間の投資も必要です。社内の各部門に対して実装を正当化するには、こちらのケーススタディが役立ちます。優れたアーキテクチャをアプリに実装した企業の成功事例が紹介されています。
サンプル
以下の Google サンプルは、優れたアプリ アーキテクチャを実証するものです。このガイダンスを実践するためにご利用ください。
Mir 2: Return of the King は、Actoz Soft がライセンスを付与し、 HK ZHILI YAOAN LIMITED が Unity ゲームエンジンを使用して開発した、高品質の Legend IP モバイルゲームです。 このゲームは、韓国のファンタジー MMORPG を代表する Mir 2 の雰囲気を完璧に再現するだけでなく、装備の収集、大規模な砂攻撃、その他のコア ゲームプレイなど、最も人気のあるゲーム コンテンツも数多く提供しています。 Wuthering Waves は、Kuro Games が開発した高品質のアクション RPG ゲームです。長時間のゲーム セッションでプレミアムなユーザー エクスペリエンスを持続的に提供するには、消費電力を最適化することが非常に重要です。 Android Studio では、Hedgehog(2023.1.1)から Power Profiler が導入されました。これは、デベロッパーが On Device Power Rails Godot Engine は、Android を堅牢にサポートする人気の高いマルチプラットフォームのオープンソース ゲームエンジンです。Godot は、ほぼすべてのジャンルのゲームの作成に使用でき、2D グラフィックと 3D グラフィックの両方に対応しています。Godot バージョン 4 では、高忠実度グラフィック向けの高度な機能を備えた新しいレンダリング システムが導入されました。Godot 4 レンダラは、Vulkan などの最新のグラフィック API 向けに設計されています。 Godot Android Dynamic Performance Framework(ADPF)は、アプリケーションのパフォーマンスを最適化したいデベロッパー向けの Google の強力なツールです。ADPF は、サーマル API を介してデバイスの熱状態に関するリアルタイム情報を提供します。この情報は、アプリのグラフィック設定の調整に使用されます。 研究目的で、Arm は Unreal Engine と ADPF を使用してデモを開発し、ADPF NCSoft Lineage W は、NCSoft が開発した大規模多人数同時参加型オンライン ロールプレイング ゲーム(MMORPG)です。このゲームは、元の Lineage W ゲームの遺産を受け継いでおり、世界中のプレーヤーがグローバル サーバーを通じて協力して競い合うことができる環境を提供します。独自の中世ファンタジーの世界を舞台とする Lineage W は、さまざまなクラス、スキル、戦闘システムを通じて、プレイヤーに深いゲーム体験を提供します。 NCSoft は Android パフォーマンスと温度管理の改善は、Android で成功するゲームを開発するために不可欠です。従来、デベロッパーはゲームの忠実度を下げるかレンダラをさらに最適化することで、こうした問題に対処する必要がありました。こうした変更はゲームに固有の傾向があり、多くの場合、柔軟性に欠けます。 Android エコシステムには、アダプティブ パフォーマンス API がデベロッパーに提供されています。アダプティブ パフォーマンス機能の統合を簡素化し、エコシステムの断片化を減らすために、Google と Call of Duty: Warzone Mobile は、人気の コール オブ デューティ シリーズのファースト パーソン アクション ゲームです。非常に人気のあるコンソール ゲームと PC ゲームをモバイルで実現する場合は、モバイルの低レベル API を活用して、優れたプレーヤー エクスペリエンスを提供します。 技術的な観点から見ると、モバイル実装の目標は、幅広い Android モバイル デバイスをサポートすると同時に、コンソール バージョンに可能な限り近い形で実装を維持し、グラフィック サマナーズウォー: クロニクル は、韓国のゲーム デベロッパー Com2uS が 2023 年 3 月に全世界でリリースしたモバイル MMORPG です。これまでに『サマナーズウォー: Sky Arena』は全世界で 1 億 8, 000 万回以上ダウンロードされ、収益は 27 億ドルを超えています。ファンタジーの世界を舞台にさまざまなモンスターを集めてトレーニングし、他のプレーヤーと戦うサマナーズウォーは、世界で最も人気のあるモバイルゲームの一つです。 約 10 Com2uS の Summoners War: Chronicles US(WW) と KR では、Android でのレンダリングに Vulkan のみを使用し、パフォーマンスが最大 30% 向上しています。 Vulkan は、デバイスのグラフィック ハードウェアとゲームの間の抽象化を最小限に抑えるために設計された最新のクロス プラットフォーム 3D グラフィック API です。Vulkan は OpenGL ES と比較して CPU オーバーヘッドが少なく、Vulkan Ares: Rise of Guardians は、アクション RPG シリーズの開発実績で知られる韓国のゲームスタジオ Second Dive が開発したモバイルから PC への SF MMORPG です。このゲームは Kakao Games によって公開されています。 Cat Daddy Games は、ワシントン州カークランドに拠点を置く 2K 完全所有のスタジオで、NBA 2K Mobile のデベロッパーです。チームは、特に「アプリケーション応答なし」エラー(ANR)を減らすことで、ゲームの全体的な品質と安定性を改善する必要がありました。ANR は、Android アプリの UI スレッドが長時間ブロックされると発生します。そのような場合、UI Devsisters はグローバルなモバイルゲーム デベロッパー兼パブリッシャーで、Cookie Run IP に基づいてカジュアル ゲームを制作しています。特に人気の高いゲームには Cookie Run: OvenBreak (ランニング アーケード)や Cookie Run: Kingdom (ソーシャル RPG)などがあり、韓国、台湾、米国のユーザーをはじめ、世界中のユーザーに愛されています。Cookie Run: OvenBreak はカジュアル ゲームですが、5 NEW STATE Mobile は Krafton のバトルロイヤル ゲームで、2021 年 11 月に全世界でリリースされ、リリース 1 か月で 4, 500 万回以上ダウンロードされました。KRAFTON, Inc. は、独立系ゲーム開発スタジオの集合体で、世界中のゲーマーに革新的で魅力的なエンターテイメント体験を生み出しています。PUBG Studios、Bluehole Studio、Striking Distance ポーランドを拠点とする Spokko は、要求の厳しい IP を扱っている意欲的なクリエイターのグループです。Spokko は CD PROJEKT ファミリーの一員ですが、独立企業として『 The Witcher: Monster Slayer ] の素晴らしい世界をスマートフォンに移しました。 ウィッチャー: モンスター スレイヤーは、拡張現実技術を使ったロケーション ベースの RPG ゲームです。このゲームは計算負荷の高いゲームであり、多くのデバイスに挑戦する必要があります。Spokko Cat Daddy Games は、ワシントン州カークランドに拠点を置く 2K 完全所有のスタジオです。NBA 2K Mobile、NBA SuperCard、WWE SuperCard シリーズのチームは、特にユーザーをサポートするデバイスに高品質のアセットを提供することで、ユーザーに提供するゲームの全体的な品質を向上させるソリューションを探していました。 同社は Play Asset Delivery を実装し、各ユーザーのデバイス設定に合わせて最適化された APK Electronic Arts (EA)は、米国カリフォルニア州に本社を置くゲーム会社です。スポーツ、アクション、レース、シミュレーションなど、さまざまなジャンルのゲームが幅広く製造されています。EA の開発スタジオである Firemonkeys は、 Real Racing 3 、 The Sims FreePlay 、 Need For Speed: No Limits のデベロッパーとしてよく知られています。Firemonkeys は、カスタム Unreal Engine は、Epic Games が開発したゲームエンジンです。あらゆる業界のクリエイターが、最先端のエンターテイメント、魅力的な可視化、没入感のある仮想世界を自由かつ制御できるようにします。一部の主要な Android ゲームは Unreal Engine を使用して構築されています。 図 1. Google Pixel 4 で実行されている Unreal Engine Suntemple のサンプルのスクリーンショット Epic などのゲーム ポーランドのワルシャワを拠点とするゲーム デベロッパー、CD Projekt RED(CDPR)は、ウィッチャー 3 内のミニゲーム「 グウェント ウィッチャーカードゲーム 」を一新し、2020 年 3 月に Google Play でスタンドアロンの無料ゲームとしてリリースしました。ファイルサイズの初期値が大きく、定期的なアップデートで追加のデバイス 2000 年、 Gameloft は、ゲームへの情熱と、世界中のプレーヤーにゲームを届けたいという思いから誕生しました。同社はモバイル向けゲーム開発の先駆的企業であり、現在では 190 本以上のゲームを提供しています。Gameloft のモバイルゲームの多くは、グラフィックが多用されているためにダウンロード サイズが大きくなっていました。そのため、同社にとって、App Bundle インフラストラクチャを基盤とするゲームサービス向けの配信機能のセットである Google Play Asset 米国を拠点とするデベロッパー RV AppStudios は、カジュアル ゲーム、子供向け教育アプリ、ユーティリティ アプリのポートフォリオ全体で、これまでに 2 億回以上のダウンロード数を誇っています。開発チームは、同社のアプリ Puzzle Kids - Animals Shape and Jigsaw Puzzles を Google Play Asset Delivery Gameloft は 20 年以上にわたり、モバイルゲームから PC やゲーム機のクロス プラットフォームのゲームに至るまで、デジタル プラットフォーム向けに革新的なゲーム エクスペリエンスを創出してきました。Gameloft は、独自の確立されたシリーズに加え、LEGO、Universal、Hasbro などの人気ブランドのゲームを開発しています。世界 3,600 人のチームを擁する同社のゲームは、毎月 100 か国以上で 5, 500 万人のユニーク プレーヤーに利用されています。 2018 モスクワを拠点とするゲーム開発会社の Pixonic は、モバイルアプリをアップグレードしてさらに多くのゲーマーにリーチできるよう日々努めています。同社の最も有名なタイトルのひとつである War Robots は、12 人のプレーヤー対プレーヤー(PvP)で、カスタマイズしたロボットを操作して戦闘を行えるゲームです。 2014 年のリリース当初、War Robots は初期の Android Gameloft は、常に最新のポータブル ハードウェアに対応したいち早くゲームを提供し、外出先でもゲームにワクワクするようなエクスペリエンスを提供できるよう努めています。同社は、モバイル レーシング シリーズの最新作品、 アスファルト 8: Airborne を、ChromeOS で開発するのが一番だと考えました。 Gameloft は複数のデバイス向けのゲーム開発に慣れていましたが、アスファルトの操作性を Chromebook に移植するのは難しいと思われました。ChromebookMir 2 で Frame Pacing ライブラリを使用してレンダリング パフォーマンスを改善
Kuro Games が Android Studio Power Profiler と ODPM を使用して Wuthering Waves の消費電力を 9.68% 削減
Android 向け Godot Engine Vulkan の最適化
Unreal Engine での Android Dynamic Performance Framework(ADPF)のスタートガイド
NCSoft の Lineage W が ADPF を使用して持続的なパフォーマンスを向上させ、サーマル スロットリングを回避
MediaTek が Android SoC の動的パフォーマンスを強化
Call of Duty Warzone Mobile で Vulkan を使用してグラフィックを改善
Com2uS - PC 版 Google Play Games
Com2uS が Vulkan を使用してグラフィックを改善
Kakao Games: Android への適応性により FPS の安定性が 96% 向上
2K は Android Game Development Kit を使用して ANR 発生率を 35% 削減
クッキーラン: オーブンブレイク - Play Asset Delivery で CDN コストを 20 万ドル以上削減
NEW STATE Mobile、Android GPU Inspector を使用して GPU 使用率を 22% 削減
The Witcher: Monster Slayer - Android Performance Tuner でリーチを拡大
2K が Play Asset Delivery で高品質のグラフィックを実現
Firemonkeys は AGDE を使用して開発とデバッグの時間を短縮
「AGDE はすごい!」Unreal Engine による Android 開発に最適
CD Projekt RED: Play Asset Delivery でアップデート サイズを 90% 削減し、アップデート率が 10% 向上
Gameloft、Google の Play Asset Delivery により新規ユーザーが 10% 増加
RV AppStudios、Google の Play Asset Delivery でユーザー維持率を改善
Gameloft の事例: Game Mode API を使用してデバイスの消費電力を 70% 削減し、プレイ時間を 35% 延長
Pixonic: 大画面向けに最適化することで ChromeOS でエンゲージメントを 25% 増加
Gameloft の事例: ChromeOS 向けに最適化することで収益を 9 倍に拡大
現在、おすすめはありません。
Google アカウントにログインしてください。