Android Studioプロジェクトのファイル構成

Android Studioで作成したプロジェクトのファイル構成をまとめました。


1 必要最低限の構成

以下の必要最低限の構成を用いると、Android Studioでビルドすることができます。

ただし、"Open an existing Android Studio project"を用いた初期化が必要となります。

存在しないファイルやディレクトリはAndroid Studioが自動生成します。

.
├── .gitignore
├── app
│   ├── .gitignore
│   ├── build.gradle
│   ├── proguard-rules.pro
│   └── src
│       ├── androidTest
│       │   └── java
│       │       └── com
│       │           └── hiroom2
│       │               └── myapplication
│       │                   └── ApplicationTest.java
│       └── main
│           ├── AndroidManifest.xml
│           ├── java
│           │   └── com
│           │       └── hiroom2
│           │           └── myapplication
│           │               └── MainActivity.java
│           └── res
│               ├── layout
│               │   └── activity_main.xml
│               ├── menu
│               │   └── menu_main.xml
│               ├── mipmap-hdpi
│               │   └── ic_launcher.png
│               ├── mipmap-mdpi
│               │   └── ic_launcher.png
│               ├── mipmap-xhdpi
│               │   └── ic_launcher.png
│               ├── mipmap-xxhdpi
│               │   └── ic_launcher.png
│               ├── values
│               │   ├── dimens.xml
│               │   ├── strings.xml
│               │   └── styles.xml
│               ├── values-v21
│               │   └── styles.xml
│               └── values-w820dp
│                   └── dimens.xml
├── build.gradle
├── gradle.properties
├── gradlew
├── gradlew.bat
└── settings.gradle

22 directories, 23 files

1.1 buildディレクトリ、app/buildディレクトリ

コンパイルされた成果物が格納されます。

リポジトリに追加しないでおきましょう。

2 トップディレクトリ

 

.gitignore Android Studioが提供する.gitignore
app モジュールのディレクトリ
build.gradle Gradleによるビルドスクリプトの本体
gradle.properties Gradleの並列実行等を制御
gradlew GradleのUnix/Linux向けラッパースクリプト
gradlew.bat GradleのWindows向けバッチファイル
settings.gradle Gradleの起動時に読み込まれるビルドスクリプト

 

2.1 トップディレクトリの.gitignoreについて

Android Studioが提供する.gitignoreは以下の通りです。

.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures

私は以下のように変更しています。

.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures
/.idea/vcs.xml
/.idea/.name
*.iml

.idea/vcs.xmlはリポジトリからソースコードを追加してプロジェクトを作成した時にダイアログが表示されて設定できます。

 

.nameにプロジェクト名が記載されます。.nameがない場合はリポジトリのパスから自動生成されるので、プロジェクト名とリポジトリのパスが一致している場合は不要です。

 

*.imlファイルについては.gitignoreで排除すべきという意見と排除すべきでないという意見が混在している状況です。個人的には排除しても問題ないと思っています。

3 .ideaディレクトリ、gradleディレクトリ

.ideaディレクトリ、gradleディレクトリ、*.imlファイルは存在しない場合にAndroid Studio起動時に自動生成されます。

しかし、.ideaディレクトリとgradleディレクトリはプロジェクト固有の設定が含まれる場合があるので、.gitignoreで排除せず、リポジトリに追加して良いと思います。

4 モジュールのディレクトリ

 

app/.gitignore Android Studioが提供する.gitignore(buildを排除)
app/build.gradle Gradleのビルドスクリプト
app/libs ライブラリ(jarファイル)を格納するディレクトリ
app/proguard-rules.pro ProGuardの設定ファイル
app/src モジュールのソースツリー

 

5 モジュールのソースツリー

 

app/src/androidTest テストプロジェクト
app/src/androidTest/java テストプロジェクトのJavaコード
app/src/main プロジェクト
app/src/main/AndroidManifest.xml プロジェクトのマニフェストファイル
app/src/main/java プロジェクトのJavaコード
app/src/res リソースファイルディレクトリ

 

リソースファイルディレクトリについて、Eclipseでdrawable-xxxだったものがAndroid Studioではmipmap-xxxになっています。