Android Studio のプロジェクトには、ソースコードやアセットから、テストコード、ビルド設定にいたるまで、アプリのワークスペースを定義するものがすべて含まれています。新しいプロジェクトを開始すると、Android Studio はすべてのファイルの必要な構造を作成し、IDE の左側にある [Project] ウィンドウに表示します([View] > [Tool Windows] > [Project] をクリック)。このページでは、プロジェクト内の主なコンポーネントの概要を説明します。
モジュール
モジュールとはソースファイルとビルド設定のコレクションであり、モジュールによって機能ごとにプロジェクトを分割できます。プロジェクトには 1 つまたは多数のモジュールを含めることができ、モジュールは別のモジュールを依存関係として使用できます。各モジュールは個別にビルド、テスト、デバッグできます。
追加のモジュールが役立つケースは多々あります。たとえば、独自のプロジェクト内でコード ライブラリを作成したい場合や、スマートフォンやウェアラブルといったデバイスの種類別にコードやリソースのセットを作成し、すべてのファイルのスコープを同じプロジェクト内に維持したまま、一部のコードだけを共有したい場合などです。
新しいモジュールをプロジェクトに追加するには、[File] > [New] > [New Module] をクリックします。
Android Studio では、以下のようなモジュールを提供しています。
- Android アプリ モジュール
- アプリのソースコード、リソース ファイル、モジュール レベルのビルドファイルや Android マニフェスト ファイルなどのアプリレベルの設定を格納するコンテナとして機能します。新しいプロジェクトを作成したときのデフォルトのモジュール名は「app」です。
[Create New Module] ウィンドウには、以下のタイプのアプリ モジュールが表示されます。
- Phone & Tablet Module
- Wear OS Module
- Android TV Module
- Glass Module
各モジュールには、対応するアプリやデバイスタイプに応じて必要となるファイルとコード テンプレートが含まれています。
モジュールの追加方法については、新しいデバイス向けにモジュールを追加するをご覧ください。
- 機能モジュール
-
Play Feature Delivery を利用可能なアプリのモジュール化された機能を表します。たとえば、機能モジュールを使用すると、アプリの特定の機能をオンデマンドで、あるいは Google Play Instant で Instant 版としてユーザーに提供できます。
詳細については、Play Feature Delivery に対するサポートの追加をご覧ください。
- ライブラリ モジュール
- 他のアプリ モジュールで依存関係として使用したり、他のプロジェクトにインポートしたりできる再利用可能なコードのコンテナとして機能します。構造上、ライブラリ モジュールはアプリ モジュールと同じですが、ビルドすると APK ではなくコード アーカイブ ファイルが作成され、デバイスにインストールすることはできません。
[Create New Module] ウィンドウには以下のライブラリ モジュールが表示されます。
- Android ライブラリ: この種類のライブラリには、ソースコード、リソース、マニフェスト ファイルなど、Android プロジェクトでサポートされるすべてのファイル形式を含めることができます。ビルドの結果、Android アプリ モジュールの依存関係として追加できる Android Archive(AAR)ファイルが作成されます。
- Java ライブラリ: この種類のライブラリには、Java ソースファイルのみを含めることができます。 ビルドの結果、Android アプリ モジュールやその他の Java プロジェクトの依存関係として追加できる Java アーカイブ(JAR)ファイルが作成されます。
- Google Cloud モジュール
- Google Cloud バックエンド コードのコンテナとして機能します。このモジュールには、単純な HTTP、Cloud Endpoints、Cloud Messaging を使用してアプリに接続する Java App Engine のバックエンドに必要なコードと依存関係が含まれています。独自のバックエンドを開発して、アプリに必要なクラウド サービスを提供できます。
Android Studio を使用して Google Cloud モジュールを開発すると、アプリコードやバックエンド コードを同じプロジェクトで管理できます。また、バックエンド コードをローカルで実行およびテストしたり、Android Studio を使用して Google Cloud モジュールをデプロイしたりできます。
Google Cloud モジュールの実行およびデプロイの詳細については、バックエンドの実行、テスト、デプロイをご覧ください。
モジュールをサブプロジェクトとして参照しているケースもありますが、Gradle はプロジェクトとしてもモジュールを参照するため問題ありません。たとえば、ライブラリ モジュールを作成し、それを Android アプリ モジュールの依存関係として追加したい場合は、次のように宣言する必要があります。
Groovy
dependencies { implementation project(':my-library-module') }
Kotlin
dependencies { implementation(project(":my-library-module")) }
プロジェクト ファイル

デフォルトで、Android Studio の [Android] ビューにはプロジェクト ファイルが表示されます。このビューは、ディスク上の実際のファイル階層を反映していません。プロジェクトの主なソースファイルに効率良くアクセスできるように、モジュールとファイルの種類別に整理され、あまり使用されない特定のファイルやディレクトリは非表示になっています。ディスク上の構造との違いは次のとおりです。
- 最上位の [Gradle Script] グループには、プロジェクトのビルド関連の設定ファイルがすべて表示されます。
- モジュール レベルのグループには、各モジュールのすべてのマニフェスト ファイルが表示されます(プロダクト フレーバーやビルドタイプごとに異なるマニフェスト ファイルが存在する場合)。
- リソース修飾子ごとのフォルダではなく、1 つのグループ内にすべての代替リソース ファイルが表示されます。たとえば、ランチャー アイコンのすべての画面密度のバージョンが並んで表示されます。
各 Android アプリ モジュールのファイルは、以下のグループに分かれて表示されます。
- manifests
AndroidManifest.xml
ファイルがあります。- java
- パッケージ名ごとに分けられた Java ソースコード ファイルが格納されています。ここには JUnit テストコードも含まれています。
- res
- XML レイアウト、UI 文字列、ビットマップ イメージなど、コード以外のすべてのリソースが格納されています。それぞれ対応するサブディレクトリに分けられています。すべてのリソースタイプの詳細については、リソースの提供をご覧ください。
Android プロジェクト ビュー

Android ビューで非表示になっているすべてのファイルを含め、プロジェクトの実際のファイル構造を表示するには、[Project] ウィンドウの一番上にあるプルダウンで [Project] を選択します。
[Project] ビューを選択すると、さらに多くのファイルとディレクトリが表示されます。特に重要なものを以下に示します。
module-name/
-
build/
- ビルドの出力結果が格納されています。
libs/
- プライベート ライブラリが格納されています。
src/
- モジュールのすべてのコードとリソース ファイルが、以下のサブディレクトリに分割されて格納されています。
androidTest/
- Android デバイス上で実行するインストゥルメンテーション テストのコードが格納されています。 詳細については、Android のテストに関するドキュメントをご覧ください。
main/
- 「main」ソースセット ファイル、つまり、すべてのビルド バリアントで共有される Android コードとリソース(デバッグ ビルドタイプの
src/debug/
など、兄弟ディレクトリ内に存在する他のビルド バリアントのファイル)が格納されています。AndroidManifest.xml
- アプリとその各コンポーネントの性質を記述します。 詳細については、AndroidManifest.xml のドキュメントをご覧ください。
java/
- Java コードソースが格納されています。
jni/
- JNI(Java Native Interface)を使用するネイティブ コードがあります。詳細については、Android NDK に関するドキュメントをご覧ください。
gen/
R.java
ファイルや、AIDL ファイルから作成されたインターフェースなど、Android Studio が生成した Java ファイルが格納されています。res/
- ドローアブル ファイルやレイアウト ファイル、UI 文字列など、アプリのリソースが格納されています。詳細については、アプリリソースをご覧ください。
assets/
- そのままの状態で
.apk
ファイルにコンパイルする必要があるファイルがあります。このディレクトリは、URI を使用して通常のファイル システムと同じようにナビゲートできます。また、AssetManager
を使用してバイト ストリームとしてファイルを読み取ることができます。たとえば、この場所はテクスチャやゲームデータなどの保存に適しています。
test/
- ホスト JVM 上で実行するローカルテストのコードが格納されています。
build.gradle
(モジュール)- モジュール固有のビルド設定を定義します。
build.gradle
(プロジェクト)- すべてのモジュールに適用するビルド設定を定義します。
このファイルはプロジェクトに不可欠であるため、他のすべてのソースコードとともに、リビジョン管理システムで管理する必要があります。
他のビルドファイルについては、ビルドを設定するをご覧ください。
プロジェクト構造の設定
Android Studio プロジェクトの各種設定を変更するには、[File] > [Project Structure] をクリックして、[Project Structure] ダイアログを開きます。このダイアログには次のセクションがあります。
- SDK Location: プロジェクトで使用する JDK、Android SDK、Android NDK の場所を設定します。
- Project: Gradle や Android Plugin for Gradle のバージョン、リポジトリの場所の名前を設定します。
- Modules: ターゲット SDK や最小 SDK、アプリの署名、ライブラリの依存関係など、モジュール固有のビルド設定を編集できます。以下のモジュールをご覧ください。
モジュール
[Modules] 設定セクションでは、各プロジェクトのモジュールの設定オプションを変更できます。各モジュールの設定ページは、以下のタブに分かれています。
- Properties: モジュールのコンパイルに使用する SDK やビルドツールのバージョンを指定します。
- Signing: アプリの署名に使用する証明書を指定します。
- Flavors: 複数のビルド フレーバーを作成し、フレーバーごとにモジュールの最小 SDK バージョンやターゲット SDK バージョン、バージョン コードやバージョン名など、ビルド構成の各種設定を指定できます。たとえば、最小 SDK バージョンが 15、ターゲット SDK バージョンが 21 のフレーバーを定義しつつ、最小 SDK バージョンが 19、ターゲット SDK バージョンが 23 の別のフレーバーを定義することができます。
- Build Types: ビルド構成の作成や編集を行うことができます。詳細については、Gradle ビルドを設定するをご覧ください。すべてのモジュールに対してデフォルトで debug ビルドタイプと release ビルドタイプが用意されていますが、必要に応じてさらに別のビルドタイプを定義することもできます。
- Dependencies: このモジュールのライブラリ、ファイル、モジュールの依存関係のリストを示します。このペインで依存関係を追加、変更、削除できます。モジュールの依存関係の詳細については、Gradle ビルドの設定をご覧ください。