【Eclipse】targetSdkVersionとビルド・ターゲットの違い
こんにちは、pencoです。
先日(いや、かなり前ですが…)appcompat_v7\res\values-v21\themes_base.xml というエラーの対応をした時に調べたことをまとめておこうと思います。
minSdkVersion とは?
指定したバージョン以上のシステムでならアプリが動作することを示す値です。ここで指定した値未満のシステムにはアプリはインストールできません。
targetSdkVersion とは?
指定したバージョンでアプリが動作することを保障する宣言です。ここにはアプリが動くことをテスト済みの最新のバージョンを指定します。この値はデフォルトのテーマやメニューキーなどに影響します。
例えば
<uses-sdk android:minSdkVersion="9" />
のように、minSdkVersion のみを指定した場合は、Android4.0の端末で実行しても(デフォルトでは)ActionBarは表示されません。
しかし、
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="14" />
のように、targetSdkVersion をAndroid4.0 に指定することでActionBar が表示されるようになります。
ビルド・ターゲットとは?
ソースコードで使用できるクラスやメソッドが決まる値です。指定したAPIレベルのライブラリを使用してビルドした、ということです。
project.properties の target=android-XX の値がそれになります。
プロジェクトを右クリック -> プロパティ -> Android -> プロジェクト・ビルド・ターゲット から変更できます。
ここにはtargetSdkVersion よりも大きな値も指定できます。ビルド・ターゲットの値が大きいと、「以前は使えたが、API level XX から非推奨になったメソッド」などが出てきます。使用しているクラスやメソッドに取り消し線が表示された場合は、
if(Build.VERSION.SDK_INT < 14){ //APIレベル14以下の場合の処理(非推奨になったメソッド) }else{ //APIレベル14以上の場合の処理(代替メソッド) }
のようにして、APIレベルで処理を分岐するようにします。
公式のリファレンスを見ると、どのAPIレベルから非推奨になったのか、代わりにどのメソッドを使えばよいか、が書いてありますので、それに従い修正すればOKです。
今回はここまで。
ではでは。
コメントをどうぞ