iOSアプリ専門でやっていたが、Androidアプリも少しずつやることになりAndroidアプリの勉強をしている。
AndroidにはiOSにはないサポートライブラリというものがある。
まぁそのうち調べようと思って、コピペとかしていたが、何回もエラーが出ていい感じに動かない。
なので調べてみたよというメモです。
そもそもサポートライブラリとは?
Androidは標準のAndroid SDKとは別にアプリ開発をサポートするSupport Libraryというものがある。
つまりAndroidアプリは Android SDK + Support Library (+ サードパーティライブラリ)
を使ってアプリを作るという感じ。
サポートライブラリはざっくり分けると
- エンハンス系・・・RecyclerViewやマテリアルデザインライブラリなどイケてるアプリ開発をサポート
- バックポート系・・・APIレベルが低いものでもいい感じにその新しい機能が使えるようにサポート
の2種類があるっぽい。
よくわからなかった部分
サポートライブラリのどの数字が何に対応するのか😓
たとえば
compile "com.android.support:appcompat-v7:22.2.1"
compile "com.android.support:recyclerview-v7:25.1.1"
compile "com.android.support:support-v4:22.2.0"
の
-v7:22.2.1'
-v7:25.1.1'
-v4:22.2.0"
の部分。
で、調べてみたら
v4 Support Library
このライブラリは、Android 2.3(API レベル 9)以上で使用するよう設計されています。
や
v7 Support Library
ライブラリには、Android 2.3(API レベル 9)以上で使用するよう設計されているものがいくつかあります
v4やv7でもAPIレベル9以上で使用されるように設計されている
とか書いてある。
ネットであさると、-v◯の部分はサポートする最小APIレベル
と書いてあるが、今は特にそういうわけではなさそう🤔
確かにv13 Support Libraryとかは -v◯の部分がサポートする最小APIレベル
だが。
[追記]
http://vividcode.hatenablog.com/entry/android-app/android-support-library
↑にあるように昔は-v◯の部分がサポートする最小APIレベル
だったっぽいです。
複数のサポートライブラリを使うときのバージョンは?
アプリに v14 Preference Support library と v17 Leanback library の両方を追加する場合は、最低 SDK バージョンを 17 以上にしてください。
複数のサポートライブラリを使う場合のAPI Levelは高いほうに合わせる。
結論
ポイントは
- Androidは標準のAndroid SDKとは別にアプリ開発をサポートするSupport Libraryというものがある
-
-v◯
の部分はサポートライブラリ自体のバージョンではない。 -
-v◯
の部分はあまり気にしなくても良さそう。そういう名前のライブラリと思っても? - サポートライブラリ自体のバージョンは
:◯.◯.◯
の部分 - サポートライブラリは頻繁に更新があるため、すべてのサポートライブラリは以下のように一元管理しておくほうが良さそう
(別のサードパーティライブラリはもちろん別のバージョンで管理する)
supportPackageVersion = 24.1.0
dependencies {
compile "com.android.support:appcompat-v7:${supportPackageVersion}"
compile "com.android.support:cardview-v7:${supportPackageVersion}"
compile "com.android.support:recyclerview-v7:${supportPackageVersion}"
compile "com.android.support:support-v4:${supportPackageVersion}"
compile 'com.jakewharton:butterknife:7.0.0'
}