LoginSignup
95
114

More than 5 years have passed since last update.

Android Studio の Gradle の備忘録

Last updated at Posted at 2016-04-14

前置き

ビルドやバージョン管理をするのに便利らしい Gradle ですが難しくて本当に便利なのか分かりません。
以前 Ant や Maven を使っていた方々にとっては、とても素晴らしい機能らしいのですが…。

Android Studio でプロジェクトを作ると、Gradle が勝手に自動的に付いてきます。
どうしても使わせたいみたいですね。

ならばせめて何が書かれているのかくらいは理解したい。
なので Gradle について簡単に調べた事について書き留めて行きます。

環境情報

Android studio 2.0
Gradle 2.10

gradle は Android Studio をインストールすると勝手に同梱されてついてきます。

gradle-path.png

事前準備

「Start a new Android Studio project」 から新しい Android Project(Empty Activity) を作っておきます。

Androidアプリプロジェクトとファイルの構成

project-conf.PNG

Eclipseとは比べ物にならないくらい構成が複雑です。
あと gradle と表示された拡張子(?)ファイルが至る所にあります。

アプリケーション内の build.gradle

ソースコードをビルドしてアプリケーションを作る時に使われる gradle です。
gradle は色々ありますが基本的にここを変更します。

app-build.gradle.png

中を見るとこんな感じになっています。

app/build.gradle

// プラグインの宣言
apply plugin: 'com.android.application'

// androidのビルド設定のメイン
android {
    // コードを コンパイル -> ビルド するのに必要なSDKやbuild-toolのバージョン指定
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    // マニュフェストエントリ
    defaultConfig {
        applicationId "example.com.myapplication"
        minSdkVersion 19
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }

    //ビルド定義
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

// ライブラリ依存関係
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.3.0'
}

各項目の詳細は以下のとおりです。

プラグインの宣言

Android アプリケーション や ライブラリ をビルドする場合は必ず下記の様に宣言する必要があります。
よくわかりませんが取り合えずおまじないと思っておきましょう。

アプリケーションの場合
apply plugin: 'com.android.application'

android ライブラリの場合
apply plugin: 'com.android.library'

androidのビルド設定のメイン

Android Gradle Pluginでは、android {} ブロック内にビルド時の設定などを記述していきます。
コードを コンパイル -> ビルド する時に必要な Android SDK 及び Build-Tools の API Level が指定されています。

android {
    //アプリをビルドする際のSDKの設定
    compileSdkVersion 24        // コンパイルするのに必要(SDK Platform)
    buildToolsVersion "24.0.0"  // ビルドするのに必要(SDK Build-tools)
}

SDK Platform のバージョンが分からない場合は <sdk>/platforms/ のディレクトリを確認してください。
platform.JPG

SDK Build-tools のバージョンが分からない場合は <sdk>/build-tools/ のディレクトリを確認してください。
キャプチャ2.JPG

defaultConfig

Eclipse ADTの場合は、AndroidManifesf.xml に直接記述していましたが、build.gradle に記述しておくことでビルド時に自動で AndroidManifesf.xml に追加(上書き)してくれます。

defaultConfig {
    applicationId "example.com.myapplication"   // パッケージ名
    minSdkVersion 19        // アプリを実行するのに必要な最小APIレベル
    targetSdkVersion 22     // アプリの動作を保障しているAPIレベル
    versionCode 1           // 内部バージョン番号として使用する整数(最大値 2100000000)
    versionName "1.0"       // ユーザーに表示するバージョン番号として使用される文字列
}

targetSdkVersion の API Level は、デフォルトの画面や動作が指定したバージョンになります。
例を出すとtargetSdkVersion 22 ならば Android 5.1.1( Lollipop ) の画面や動作になります。

buildTypes

アプリファイル(.apk)を作成するときに必要となる設定値の定義。

「デバッグ用(debug)」と「リリース用(release)」のビルドという感じで、複数のビルドの種類を記述することができます。
自分で新たにビルドの種類を追加することもできます。

buildTypes {
    release {
        minifyEnabled false     // コード(apkのサイズ)を縮めるかどうか
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'  // Proguard の設定ファイルを指定します
    }
}

ProGuard と言うのは、圧縮、最適化、難読化、事前検証の4つの機能を持ったツールでオプションとして動作させるか指定出来るみたいですね。
Google側は適応を強く勧めている様です。

詳しい内容は、AndroidでのProGuard 使い方を見るのをお勧めします。

その他のブロックたち

android {} の中に設定できるブロック( Configuration blocks )はまだまだあるよ。

aaptOptions { }
adbOptions { }
compileOptions { }
dataBinding { }
dexOptions { }
externalNativeBuild { }
jacoco { }
lintOptions { }
packagingOptions { }
productFlavors { }
signingConfigs { }
sourceSets { }
splits { }
testOptions { }

dependencies

コード上で依存関係にあるライブラリを定義します。
依存関係の種類にはいくつかの種類があります。

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])   // libs フォルダ直下の jar ファイルをコンパイル
    testCompile 'junit:junit:4.12'                      // プロジェクトのテストコードをコンパイルするのに必要な依存関係(src/test)
    compile 'com.android.support:appcompat-v7:23.3.0'   // プロジェクトのプロダクトコードをコンパイルするのに必要な依存関係(必須)
}

最後に

とりあえずここまで。
デフォルトのプロジェクトで作られた app.gradle 中身について簡単にまとめました。

この内容をまとめるにあたり以下のエントリーを参考にしました。
Android studioにおけるbuild.gradleの設定について
ここよりも深い部分(apkを作る際のセキュリティキーのgradle設定とか)に触れられていてとても分かりやすいです。

95
114
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
95
114