はじめに
ここではEclipseとは異なる、Gradleを採用したAndroid Studioにおけるディレクトリ構造の違いを説明します。
ワークスペースとプロジェクト
Eclipseでは、ワークスペースを開き、複数のプロジェクトを参照できる構造になっていました。Android Studioでは、ワークスペースを開くという概念はなく、プロジェクト単位で起動します。(#1or2からやってきたなら)今現在起動している画面が1つのアプリケーションのプロジェクトです。
アプリケーション内部のディレクトリ構造
プロジェクトルート
Android Studioでは、プロジェクトルートにモジュールディレクトリが並んでいます(appディレクトリがそうです)。Androidのライブラリをソースコードごとインポートして使いたい場合は、プロジェクトルートにライブラリのモジュールディレクトリが並びます。(#4でやってみます)
まず新規アプリケーションを作成すると必ず存在しているのがappディレクトリです。
appディレクトリ
アプリケーションの本体です。app/src/main/
以下にソースコードやリソース等の重要なファイルが含まれています。
app/build.gradle
Gradleのappディレクトリ内に適用されるビルドファイルです。ここにアプリケーションの情報(SdkVersionなど)や依存関係(app内で用いるライブラリなど)を記述します。今まではAndroidManifest.xmlで管理していたバージョン情報などが、ビルドファイルに記述することでビルド時にその内容を書き換える(もしくは書き込む)ことができます。
apply plugin: 'com.android.application'
android {
compileSdkVersion 19
buildToolsVersion "20.0.0"
defaultConfig {
applicationId "com.example.helloworld"
minSdkVersion 8
targetSdkVersion 19
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:support-v4:19.1.0'
compile 'com.android.support:appcompat-v7:19.1.0'
}
build.gradle
これはプロジェクトルートにあるbuild.gradle
です。違う階層に同じ名前のファイル(app/build.gradleなど)があって非常に混乱しますので間違えないようにしてください。
ここには、プロジェクト全体に関わるビルド設定を記述します。新規プロジェクトでは使用するリモートリポジトリ(jcenter)が指定されています。
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.13.0'
}
}
allprojects {
repositories {
jcenter()
}
}
settings.gradle
ここには、includeしたいモジュールを指定します。includeすると、モジュールが使えるようになります。