Android Studio 初心者が眺める build.gradle あれこれ

一応、使う前に眺めておいたほうがよい。
おおまかな流儀と設定できる内容。

AndroidStudio「新規プロジェクト」で書き出したやつ。
ブランクなやつ。support-compat-v4を利用。最小基本構成。

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}
apply plugin: 'android'

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 18
    buildToolsVersion "18.0.1"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 16
    }
}

dependencies {
    compile 'com.android.support:support-v4:18.0.0'
}

初心者な簡単なやつをあれこれみてみる。


HTTPクライアントライブラリ「volley」をライブラリプロジェクトに。(テスト付き)
エンコーディングをUTF-8として指定。

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.4'
    }
}

allprojects {
    tasks.withType(Compile) {
        options.encoding = 'UTF-8'
    }
}

project(':libraries:volley') {
    apply plugin: 'android-library'

    android {
        compileSdkVersion 17
        buildToolsVersion "17.0.0"

        sourceSets {
            main {
                manifest.srcFile 'AndroidManifest.xml'
                java.srcDirs = ['src']
            }

            instrumentTest.setRoot('tests')
        }
    }
}

android-gradle-build-system-sample/build.gradle at master · nobuoka/android-gradle-build-system-sample · GitHub


ライブラリに jarファイルとプロジェクトソースを指定。

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.4'
    }
}
apply plugin: 'android'

dependencies {
    compile files('libs/android-support-v4.jar')
    compile project(':MyLibrary')
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 16
    }
}

ソース群位置をEclipseな構成で指定。

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.4'
    }
}
apply plugin: 'android'

dependencies {
}

android {
    compileSdkVersion 10
    buildToolsVersion "10"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 17
    }
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        instrumentTest.setRoot('tests')
    }
}

ディレクトリ階層化された複数ライブラリプロジェクトを指定。
テストコードとAndroidManifest.xmlを切り替え。
ライブラリjarファイルをワイルドカード(*)指定。

buildscript {
  repositories {
    mavenCentral()
  }

  dependencies {
    classpath 'com.android.tools.build:gradle:0.5.+'
  }
}

apply plugin: 'android'

dependencies {
  compile project(':plugins:ActionBarSherlock:library')
  compile project(':plugins:Android-PullToRefresh:library')
  compile project(':plugins:ckChangeLog:library')
  compile project(':plugins:HoloColorPicker')
  compile fileTree(dir: 'libs', include: '*.jar')
}

android {
  compileSdkVersion 17
  buildToolsVersion '17'

  sourceSets {
    main {
      manifest.srcFile 'AndroidManifest.xml'
      java.srcDirs = ['src']
      res.srcDirs = ['res']
    }

    instrumentTest {
      manifest.srcFile 'tests/AndroidManifest.xml'
      java.srcDirs = ['tests/src']
    }
  }
}

k-9/build.gradle at master · k9mail/k-9 · GitHub


SDKツール内ソースをライブラリプロジェクトとして指定。
デバッグ/リリース版のプロジェクトルートを切り替え。

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}
apply plugin: 'android'

dependencies {
    compile 'com.google.android.gms:play-services:3.1.36'
    compile fileTree(dir: 'libs', include: '*.jar')
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        // Move the tests to tests/java, tests/res, etc...
        instrumentTest.setRoot('tests')

        // Move the build types to build-types/<type>
        // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
        // This moves them out of them default location under src/<type>/... which would
        // conflict with src/ being used by the main source set.
        // Adding new build types or product flavors should be accompanied
        // by a similar customization.
        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }
}

Glucloser/Android/build.gradle at master · nlefler/Glucloser · GitHub


柔軟にいろいろなことができすぎて困る。


関連ワード:  AndroidAndroidStudio初心者開発