初めて Android プロジェクトを作成した直後、Android Studio では複数のプロジェクト表示モードを選択できます。Project モードはプロジェクトの実際の物理ディレクトリ構造を表示するため、プロジェクト全体を把握するのに適しており、特に初心者におすすめです。以下では Project モードをベースに、プロジェクト内の主要なファイルとフォルダについて解説します。


外側のディレクトリ(プロジェクトのルートディレクトリ)
1. app ディレクトリ
プロジェクト内のほぼすべてのコードやリソースファイルがここに集約されています。以降の開発では、主にこのディレクトリを操作することになります。
2. gradle ディレクトリ
Gradle Wrapper の設定ファイルが含まれています。Gradle Wrapper を使うメリットは、事前に Gradle を手動でダウンロードする必要がなく、ローカルのキャッシュ状況に応じて自動的にネットワーク経由でダウンロードするかどうかを判断してくれる点です。
Android Studio ではデフォルトで Gradle Wrapper が有効になっていません。有効にするには、ナビゲーションバーの
File → Settings → Build, Execution, Deployment → Gradleから設定を行ってください。
3. .gitignore
指定したディレクトリやファイルをバージョン管理から除外するために使用します。このファイルを開くと、一般的に以下のような除外項目が含まれています:
*.iml
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures
.externalNativeBuild
4. build.gradle
プロジェクト全体の Gradle ビルドスクリプトです。通常、変更する必要はありません。
5. gradle.properties
グローバルな Gradle 設定ファイルです。ここで設定したプロパティは、プロジェクト内のすべての Gradle コンパイルスクリプトに影響します。
6. build ディレクトリ
コンパイル時に自動生成されるファイルが含まれています。特に気にする必要はありません。
7. MyApplication.iml
IntelliJ IDEA(Android Studio のベースとなっているプラットフォーム)が自動生成するファイルで、IDEA プロジェクトであることを識別するために使用されます。手動で変更しないでください。
8. gradlew および gradlew.bat
コマンドラインから Gradle コマンドを実行するために使用します:
gradlew:Linux / Mac システム用gradlew.bat:Windows システム用
9. local.properties
ローカルの Android SDK パスを指定します。このファイルの内容は Android Studio によって自動生成されます。SDK の場所が変更されない限り、変更する必要はありません。
sdk.dir=C\:\\Users\\YY\\AppData\\Local\\Android\\Sdk
10. settings.gradle
プロジェクトに含まれるすべてのモジュールを指定するために使用します。現在は app モジュールのみが含まれているため、ファイル内にも app のみが記述されています。モジュールの追加は通常自動的に行われるため、手動で変更する必要はほとんどありません。
重要:app ディレクトリの詳細
app ディレクトリには、実際の開発に必要なすべてのコアコンテンツが含まれています:
1. build
外側の build ディレクトリと同様に、コンパイル時に自動生成されるファイルが含まれています。内容はより多岐にわたりますが、特に気にする必要はありません。
2. libs
サードパーティ製の .jar ファイルを保存します。このディレクトリに配置された JAR ファイルは、自動的にビルドパスに追加されます。
3. androidTest
Android Test のテストケースを作成するために使用し、プロジェクトの自動テストを実行できます。
4. java
すべての Java / Kotlin コードを配置する場所です。ディレクトリを展開すると、システムが自動生成した MainActivity ファイルが表示されます。

5. res
リソースディレクトリで、プロジェクトで使用されるすべての画像、レイアウト、文字列などのリソースが含まれています:
| リソースの種類 | 保存場所 |
|---|---|
| 画像 | drawable ディレクトリ |
| レイアウト | layout ディレクトリ |
| 文字列 | values ディレクトリ |
適切に分類されているため、煩雑にはなりません。
6. AndroidManifest.xml
Android プロジェクト全体の設定ファイルです。四大コンポーネント(Activity、Service、BroadcastReceiver、ContentProvider)はすべてここに登録する必要があり、アプリに必要な権限もここで宣言します。

7. test
Unit Test のテストケースを作成するために使用し、別の自動テスト手法となります。
8. .gitignore
app モジュール内の指定したディレクトリやファイルをバージョン管理から除外するために使用し、外側の .gitignore と同様の役割を果たします。

9. app.iml
IntelliJ IDEA が自動生成するファイルです。気にする必要も、変更する必要もありません。
10. build.gradle(モジュールレベル)
app モジュールの Gradle ビルドスクリプトです。依存ライブラリ、コンパイルバージョン、アプリケーション ID など、ビルドに関連する多数の設定が含まれており、開発中に最も頻繁に変更する設定ファイルの一つです。
11. proguard-rules.pro
プロジェクトのコード難読化ルールを指定します。正式リリース用にパッケージングする際、難読化を有効にすると、リバースエンジニアリングによるコード解析を効果的に防ぐことができます。
プロジェクトの解析とディレクトリ構造