プロダクトで使いやすくて大好きなSupport Libraryなのでメモとして残しておきます。
抜けているところがあると思いますのでご指摘お願いします。
驚いたところを太字にしておきます。
動画はここにあるのでこれを見れば間違いないです
https://www.youtube.com/watch?v=w45y_w4skKs
v4 Support Library
FragmentにcommitNow() 24.0で追加
同期的にFragmentのtransactionが可能
(ライフサイクルで悩まされにくくなるかも?)
詳細は what the fragmentのセッションで説明があるようです。
NotificationCompat.MessagingStyle 24.0で追加
(API Level 18からNotificationListenerServiceを使った面白い機能も追加されて使える?)
NotificationManagerCompat.areNotificationsEnabled()がAPI 19から利用できる(ユーザーが通知をブロックしているか取得できる)
一応通知を出すアプリはどの程度ブロックされているのか見ておく良さそうですね。
MediaBrowserServiceCompatとMediaBrowserCompat 23.2で追加
音楽の再生などができる。Compatibilityがあるので便利そう(ちょっと良くわかっていません)
Universal Android Music Playerで使っているのでサンプルによい
https://github.com/googlesamples/android-UniversalMusicPlayer
Custom Tab
24.0で改善
Minimum SDK:15
アプリ内WebViewの代わりに使え、ページ内にいるかのようにChromeなどで開くことができる
コンテンツのプリロードができるので一瞬で開いたりできる
良くないところとして、メモリが足りないと消えたりする
FireFoxなど他のブラウザでもカスタムタブが開けるようになる
ToolbarやBottomBarの設置などUIカスタマイズなどが可能
VectorDrawable
ベクトル画像が利用できる
Android StudioによるサポートとSupportLibraryによるサポートが有る
SupportLibraryによるサポートはbuild.gradleに明示的に書く必要がある
apkサイズが小さくできる
StateListDrawbleなどでVectorDrawableを利用できる機能はメモリの問題がある
それを許容して23.4.0で利用できる
以下をActivityに書くことで許容する
static {
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
NightMode
NIGHT_MODE_AUTOで自動で昼と夜でUIを切り替えできる
ColorStateLists
24.0で追加
selectorで色を指定できる
Viewがdisableになっている時に色を使って透明度を入れるといったことができる
これ欲しかったやつです。
プログラムでは以下で取得
AppCompatResources.getColorStateList(getContext(), R.color.tint_nomal);
AppBarLayoutの閉じている時と、開いている時のElevationがStateListAnimatorを使って制御できるようになった
今後
Support v4のminmumSdkVersionを上げるかもしれない
Support v4をsupport-fragmentやsupport-mediaなどに分割する