[Android]ビルドの設定ファイル(build.gradle)に登場する色んなバージョンの違い(compileSdkVersion / buildToolsVersion / minSdkVersion / targetSdkVersion)

モジュールレベル(appレベル)のビルドの設定ファイル(build.gradle)には、様々なバージョン(version)と名のつくものが登場しますが、その違いが一体何やねんということを解説しています。

android {
    compileSdkVersion 27 ← こういうの
    buildToolsVersion '27.0.3' ← こういうの
    defaultConfig {
        applicationId "net.minpro.straightmachine"
        minSdkVersion 15 ← こういうの
        targetSdkVersion 27 ← こういうの
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

 

「compileSdkVersion」と「buildToolsVersion」

 

ビルドは、上のような2つのステップになっていて

  1. ソースコードやアプリで使うリソース(画像・音・データなど)を、コンピューターが読める言葉(バイトコード)に翻訳して、【コンパイルする】
  2. それをアプリに仕立て上げる【ビルドする】

という感じになっていますが、

この

  • 1のプロセスで使うAPIレベルのバージョンが「compileSdkVersion」で、
  • 2のプロセスで使うAPIレベルのバージョンが「buildToolsVersion」

のようです。

「buildToolsVersion」は、build.gradleに必ずしも記述しておく必要はないらしく、その場合はAndroid Studioくんが、自動的にバージョンを設定してくれるようです。

 If you’re using Android plugin for Gradle 3.0.0 or higher, your project automatically uses a default version of the build tools that the plugin specifies.

また、「compileSdkVersion」の数字は「targetSdkVersion」より低いとエラーになるようです。

 

「minSdkVersion」と「targetSdkVersion」

「minSdkVersion」は、プロジェクト作成時に設定した、アプリがインストールできる端末の最低のAPIレベル(Androidのバージョン)のことです。

 

「targetSdkVersion」は、公式の説明では

Specifies the API level used to test the app.

と書いてあり、アプリをテストするときに設定するAPIレベル(Androidのバージョン)ということのようです。

テストするときに使うバージョンということですから、「ターゲット」ということなのかもしれませんが、少なくともここでは、

「compileSdkVersion」の数字は「targetSdkVersion」より低いとエラーになる

ということを知っておけば、よさそうです。

(詳しくは下の動画で解説していますので、よろしければご覧ください)

こんな記事も読まれています

みんプロにかける想い

  1. こんな無駄な苦労をするのはぼくで最後にしたい(ぼくがプログラミング講座をはじめたわけ)

  2. ぼくが別に言う必要のない挫折の黒歴史をあえてさらけ出している理由(自分の中にある「ブロック」を外すきっかけにしてほしい)

  3. プログラミングはみんなのもの!(プログラミングの醍醐味である「楽しさ」を伝えたい)

  4. プログラミングを通じて「やわらかい世の中」を作りたい(ぼくがプログラミング講座をやっている本当の理由②)

  5. プログラミングは手段の1つに過ぎない(目的は自分のアイデアを形にすること)

みんプロ作成アプリ




みんプロ代表の黒歴史


TOP