Windows での Android 開発の概要

Windows 10 または Windows 11 のマシンで Android アプリを開発するための開発環境をセットアップするのに役立つガイドです。 Android は Google LLC の商標です。 このガイドは、Windows オペレーティング システムを使って、Android デバイスや他のデバイス プラットフォームで動作するアプリを構築することに関心がある開発者向けに書かれています。

Android™️ 用 Windows サブシステムを使用して Android アプリケーションを更新およびテストし、Amazon Appstore を使用して Windows 11 デバイスで実行されるようにする方法についても説明します。 詳細情報 を参照してください。

開発環境としての Windows

Windows オペレーティング システムを使用した Android デバイス アプリの開発には、複数のパスがあります。 これらのパスは、ネイティブ Android 開発クロスプラットフォーム開発Android ゲーム開発という主な 3 つの種類に分類されます。 この概要では、Android アプリの開発に使用する開発パスを決定するための情報を提供し、Windows で次のものを使用して開発を開始するための次の手順を示します。

*クロスプラットフォーム アプリに Xamarin を使っている場合は、Xamarin から .NET MAUI への移行に関する記事をご覧ください。

また、このガイドでは Windows を使用して次のことを行うためのヒントを提供します。

ネイティブ Android

Windows でのネイティブ Android 開発は、アプリが Android のみを対象としている (iOS や Windows のデバイスではない) ことを意味します。 Android Studio または Visual Studio を使用して、Android オペレーティング システム専用に設計されたエコシステム内で開発を行うことができます。 Android デバイス向けにパフォーマンスが最適化され、ユーザー インターフェイスの外観がデバイス上の他のネイティブ アプリと一貫性を持つようになります。また、ユーザーのデバイスのすべての機能に、簡単にアクセスして使用できます。 ネイティブ形式でアプリを開発すると、Android デバイス専用に確立されたすべての操作パターンとユーザー エクスペリエンスの標準に従っているため、"安心感" があります。

クロスプラットフォーム

クロスプラットフォーム フレームワークでは、Android、iOS、Windows のデバイス間で (ほとんど) 共有できる単一のコードベースが提供されます。 クロスプラットフォーム フレームワークを使用すると、各デバイスのプラットフォームでアプリを同じ外観、操作性、エクスペリエンスにすることができ、更新や修正プログラムを自動ロールアウトできる利点もあります。 さまざまなデバイス固有のコード言語を理解する必要はなく、アプリは共有されたコードベース (通常は 1 つの言語) で開発されます。

クロスプラットフォーム フレームワークは、可能な限りネイティブ アプリに近い外観を目標としていますが、ネイティブに開発されたアプリのようにシームレスに統合されないため、速度の低下とパフォーマンスの劣化の影響を受ける可能性があります。 また、クロスプラットフォーム アプリの作成に使用されるツールには、各デバイスのプラットフォームで提供されるすべての機能が含まれていない場合があり、回避策が必要になる可能性があります。

コードベースは、通常、ページ、ボタン コントロール、ラベル、リストなどのユーザー インターフェイスを作成するための UI コードと、Web サービスの呼び出し、データベースへのアクセス、ハードウェア機能の呼び出し、状態の管理のためのロジック コードで構成されています。 平均では、これの 90% を再利用できますが、通常はデバイスのプラットフォームごとにコードを若干カスタマイズする必要があります。 この汎用性は、作成しているアプリの種類によって大きく異なりますが、意思決定に役立つ可能性があるコンテキストについて以下に示します。

クロスプラットフォーム フレームワークの選択

.NET MAUI

  • C# と XAML でネイティブのモバイルおよびデスクトップ アプリを作成するためのクロスプラットフォーム フレームワーク。
  • 1 回書けばどこでも実行できる開発エクスペリエンスを実現する単一の統合 API から各ネイティブ プラットフォームのあらゆる側面に深くアクセスし、1 つの共有コード ベースから Android、iOS、macOS、Windows 上で実行できるアプリを開発します。
  • プラットフォーム間で UI のレイアウトと設計を共有する。
  • パフォーマンスと拡張性のために構築し直された UI コントロールで、モバイルからデスクトップのシナリオに拡張された、Xamarin.Forms のオープンソースの進化。
  • Xamarin.Android プロジェクトを .NET MAUI に移行します

React Native

  • UI コード: JavaScript
  • ロジック コード: JavaScript
  • React Native の目的は、コードを 1 回記述して任意のプラットフォームで実行することではなく、(React の方法を) 1 回学習して任意の場所で記述することです。
  • Xcode や Android Studio を使用せずにアプリを作成できるように、コミュニティによって Expo や Create React Native App などのツールが追加されました。
  • .NET MAUI (C#) と同様に、React Native (JavaScript) はネイティブな UI 要素を呼び出します (Java/Kotlin または Swift を記述する必要はありません)。

プログレッシブ Web アプリ (PWA)

  • UI コード: HTML、CSS、JavaScript
  • ロジック コード: JavaScript
  • PWA は、Web アプリの機能とネイティブ アプリの機能の両方を利用できるように、標準パターンで構築された Web アプリです。 フレームワークを使用せずに作成することもできますが、考慮すべき一般的なフレームワークとして IonicApache Cordova の 2 つがあります。
  • PWA は、デバイス (Android、iOS、または Windows) にインストールすることができ、サービス ワーカーを組み込むことにより、オフラインで使用することができます。
  • PWA は、アプリ ストアを経由せずに Web URL のみを使用して配布およびインストールすることができます。 Microsoft Store と Google Play ストアでは PWA が表示されますが、現在のところ、Apple ストアでは表示されません。ただし、12.2 以降が実行されている iOS デバイスでは引き続きインストールできます。
  • 詳細については、MDN の PWA の概要に関するページを参照してください。

ゲーム開発

通常、ゲームでは OpenGL または Vulkan で記述されたカスタム レンダリング ロジックが使用されるため、Android 用のゲーム開発は、標準の Android アプリの開発とは異なります。 この理由と、ゲーム開発をサポートする多くの C ライブラリを使用できるため、開発者が C/C++ (Visual Studio) と Android のネイティブ開発キット (NDK) を使用して Android 用のゲームを作成することが一般的です。 C/C++ を使用してゲーム開発を始めましょう

Android ゲームの開発に関する詳細なガイダンスについては、Android 開発者向けサイトの「ゲーム開発の基本」をご覧ください。 ゲーム エンジン (Unity、Unreal、Defold、Godot など) と IDE (Android Studio や Visual Studio など) の使用に関するガイダンスがあります。

次のステップ