サイトのトップへ戻る

Android Studio ドキュメント 日本語訳

サイト内検索

プロジェクトの概要

Android Studio のプロジェクト には、アプリのワークスペースの定義、ソースコードおよびアセット、コードのテストやビルド設定、といった全てのものが含まれています。 新規にプロジェクトを開始すると、 Android Studio は全てのファイルのために必要なディレクトリ構造を作成し、IDE の画面左側にあるProject ウィンドウに表示します (View> Tool Windows > Projectの順にクリック)。 このページでは、プロジェクト内の主要コンポーネントの概要について説明します。



モジュール

モジュール とはソースファイルとビルド設定の集まりのことで、これによりプロジェクトを機能ごとの単位に分割することが出来ます。 あなたのプロジェクトは一つ以上のモジュールを持つことができ、モジュールは他のモジュールを依存ファイルとして使用することが出来ます。 各モジュールは独立してビルド、テスト、デバッグを行うことが出来ます。

プロジェクト内でライブラリを作成したい場合や、携帯・タブレットといった異なる端末ごとに異なるコードやリソースを作成したい場合にはモジュールを追加すると便利です。 ですが、全てのファイルは同一プロジェクト内から参照できるようにし、コードは共有してください。

File > New > New Moduleの順にクリックして、プロジェクトに新たなモジュールを追加することができます。

Android Studio では、いくつかの異なるタイプのモジュールが用意されています:

Android アプリモジュール
アプリのソースコード、リソースファイル、モジュールレベルビルドファイルやAndroid マニフェスト といったアプリレベル設定のコンテナを提供します。 新規プロジェクトを作成した時、既定のモジュール名は "app"となります。

Create New Module ウィンドウ内では、 Android Studio では以下の アプリモジュールが用意されています:

  • Phone & Tablet モジュール
  • Android Wear モジュール
  • Android TV モジュール
  • Glass モジュール

これらには、対応するアプリや端末タイプ用の、必要なファイルやいくつかのコードテンプレートが用意されています。

モジュールを追加する際の詳細については新しい端末用のモジュールを追加するを参照してください。

ライブラリモジュール
他のアプリモジュールで依存ファイルとして使用したり、他のプロジェクトでインポートできたりする、再利用可能コードのコンテナを提供します。 構造的に、ライブラリモジュールはアプリモジュールと同じものですが、ビルドした時にAPKファイルではなくコードアーカイブファイルを作成します。 このファイルは端末にインストールすることはできません。

Create New Module ウィンドウ内では、 Android Studio では以下の ライブラリモジュールが用意されています:

  • Android Library: このタイプのライブラリは、ソースコード・リソース・マニフェストファイルを含む、Android プロジェクトでサポートされている全てのタイプのファイルを含めることができます。ビルドするとAndroid Archive (AAR)ファイルが出力されます。このファイルは、 Android アプリモジュールの依存関係として追加することができます。
  • Java Library: このタイプのライブラリは、 Java ソースファイルのみ含めることができます。 ビルドすると Java Archive (JAR) ファイルが出力されます。このファイルは、Andriod アプリモジュールやその他Javaプロジェクトの依存関係として追加することができます。
Google Cloud module
Google Cloud バックエンドコードのコンテナを提供します。 このモジュールでは、 Java App Engineバックエンドで必要なコードや依存ファイルを追加します。 Java App Engineバックエンドは、簡単なHTTP、Cloudエンドポイント、Cloud メッセージ機能を使ってあなたのアプリと接続します。 バックエンドを開発して、アプリに必要なサービスを用意することができます。

Android Studio を使って Google Cloud module の作成や開発を行うことで、同一プロジェクト内で アプリ用のコード と バックエンド用コードを管理できます。 また、バックエンド用コードの実行やテストもローカルで行ったり、Android Studioを使って Google Cloud moduleをデプロイすることも出来ます。

Google Cloud module の追加に関する詳細については。 App Engine Java Servlet モジュールの追加を参照してください。 Google Cloud moduleの実行とデプロイに関する詳細については、 バックエンドの実行、テスト、デプロイを参照してください。

人によってはモジュールをサブプロジェクトとして参照するでしょうが、それは問題ありません。 Gradle でも、モジュールをプロジェクトとして参照しているからです。 例えば、ライブラリモジュールを作成してそれをAndroid app モジュールの依存ファイルとして追加したい場合、 以下のように宣言する必要があります。:

dependencies {
  compile project(':my-library-module')
}


プロジェクトのファイル

既定では、 Android Studio はAndroid ビュー内に プロジェクトのファイル群を表示します。 このビューは、ディスク上の実際のファイル階層を反映したものではありません。 プロジェクト内の重要なファイルの操作を簡単にするためにモジュールやファイルタイプごとに分けられ、あまり使われない特定のファイルやディレクトリは非表示にしています。 実際のディスク上のファイル構造と比較して、以下のような違いがあります。:

  • トップレベルGradle Script グループ内に、全てのプロジェクトのビルドリリース設定ファイルを表示します。
  • モジュールレベルグループ内に、各モジュールのマニフェストファイルを全て表示します(異なるプロダクトフレーバーやビルドタイプごとに、異なるマニフェストファイルを用意している場合)。
  • リソース修飾子ごとの個別フォルダーごとにではなく、一つのグループに全ての代替リソースを表示します。 例えば、全ての密度版の起動アイコンが並べて表示されます。

各 Android アプリモジュール内では、ファイルは以下のグループごとに表示されます。:

manifests
AndroidManifest.xml ファイルを含みます。
java
パッケージ名ごとに分けられ、JUnit テストコードを持つJava ソースファイルを含みます。
res
XML レイアウト、 UI 文字列、bitmap 画像のような、全てのコードでないリソースを含みます。各リソースは対応するサブディレクトリに分けられています。 使用可能な全てのリソースタイプについては、リソースの提供を参照してください。


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/
Java Native Interface (JNI)を使ったネイティブコードが含まれます。詳細についてはAndroid NDK のドキュメントを参照してください。
gen/
R.java ファイルやAIDL ファイルに作成されたインタフェースのような、Android Studioによって生成されたJavaファイルが含まれます。
res/
drawable ファイルやレイアウトファイルや UI stringのような、アプリケーションのリソースが含まれます。 詳細についてはアプリケーションリソース を参照してください。
assets/
.apk ファイルにそのままコンパイルする必要があるファイルが含まれます。 このディレクトリはURIを使った典型的なファイルシステムと同じ方法で参照し、 AssetManagerを使ってファイルをバイトストリームとして読み込むことができます。 例えば、このフォルダーはテクスチャやゲームデータを置くには絶好の場所です。
test/
ホストJVM上で実行するローカルテスト用コードが含まれます。
build.gradle (module)
モジュール固有のビルド構成を定義します。
build.gradle (project)
全てのモジュールに適用するビルド構成を定義します。 This file is integral to the project, so you should maintain them in revision control with all other source code.

他のビルドファイルの詳細については、ビルド構成を設定するを参照してください。



プロジェクト構造の設定

Android Studio プロジェクトの様々な設定を変更するには、File > Project StructureをクリックしてProject Structureダイアログを開きます。 このダイアログには以下の項目があります:

  • SDK Location:プロジェクトで使用する JDK, Android SDK, Android NDK の位置を設定します。
  • Project: Gradle と Gradle用 Android pluginのバージョン、リポジトリのロケーション名を設定します。
  • Developer Services: Google やサードパーティによって作成された、Android Studio内蔵コンポーネントの設定が出来ます。後述の開発者向けサービスを参照してください。
  • Modules: ターゲットSDKや最小SDK、アプリの署名、ライブラリの依存関係といったモジュール固有のビルド構成を編集できます。 後述のモジュールを参照してください。


開発者向けサービス

Project Structureダイアログボックス内のDeveloper Services の項目には、アプリ内で使用できる様々なサービスを設定するページがあります。 設定ページには以下があります:

  • AdMob: Googleの AdMob コンポーネントを有効にできます。これは、ユーザーについて理解し、彼らに相応しい広告を表示するのに役立ちます。
  • Analytics: Google Analyticsを有効にできます。これは様々な端末と環境にまたがって、ユーザーのアプリ操作を計測するのに役立ちます。
  • Authentication: ユーザーが Google Sign-In を使い、自分のGoogleアカウントであなたのアプリにログインできるようになります。
  • Cloud:あなたのアプリで、クラウドベースのサービスである Firebase を有効に出来ます。
  • Notifications: Google Cloud Messagingを使ってあなたのアプリとサーバー間の通信を行えます。

これらのサービスのうちのいずれかを有効にすると、 Android Studioは必要な依存ファイルとパーミッションをアプリに追加します。 各設定ページでは、それらに加えて関連サービスを有効にした時にAndroid Studioが行う動作の一覧が表示されます。



モジュール

Modules の設定項目では、各プロジェクトのモジュールの構成オプションを変更することが出来ます。 各モジュールの設定ページは以下のタブに分けられています:

  • Properties: モジュールのコンパイルに使用する SDK とビルドツールのバージョンを指定します。
  • Signing: APKへの署名に使用する証明書を指定します。
  • Flavors: 複数のビルドフレーバーが作成する際に、 モジュールの最小SDKバージョンと対象SDKバージョン、バージョンコードとバージョン名 といったような各フレーバーの構成設定を指定できます。 例えば、最小SDKが15で対象SDKが21のフレーバーと、もう一つ最小SDKが19で対象SDKが23のフレーバーを定義することができます。
  • Build Types: Gradleビルドの設定で説明しているような、ビルド構成の作成と編集ができます。既定では全てのモジュールは debugrelease のビルドタイプを持っていますが、必要に応じてさらに定義することが出来ます。
  • Dependencies:このモジュールが依存しているライブラリ、ファイル、モジュールの一覧を表示します。 このページから、依存ファイルの追加や編集や削除が行えます。モジュールの依存関係に関する詳細についてはGradleビルドの設定を参照してください。