参照動画:
https://www.youtube.com/watch?v=D2cU_itNDAI&ab_channel=AndroidDevelopers
- @Deprecated アノテーションを非推奨
- ドキュメント生成がバグってただけで本当は非推奨ではない
- Android 12
- Material NEXT
- Color and motion
- Color palette の変更
- Pixel のデバイスデフォルトではユーザが選択した壁紙に基づいて自動的にカラースキームが変更される
- 上記以外を適用したい場合には 2800 ものカラーのAPIから取得することができる
- Widgets
- 84% ものユーザがホーム画面にウィジェットが1つ以上追加されている
- 2/3 ものユーザがホーム画面にウィジェットが2つ以上追加されている
- カラーパレットを Widget からも利用できデザインの調和をとることができる
- Launch Animations
- これまではライブラリを読み込む(DIのインスタンス生成するなど)までアプリ起動時に空白画面、空虚なグラデーションや Gignerbread のようなタイトルバーだけの画面が最初に表示されていた
- 上記に対してスプラッシュ画面をOSでサポートするようにした。カスタマイズも可能。
- Notifications
- カラーパレット、テーマ、タイポグラフィ、角の丸みも変わった
- 開発者はテンプレートを利用することで複雑な実装は必要ない。
- 独自の RemoteViews を使いたい場合は多くの作業が必要になる(見た目ものよくないかも)
- これは非推奨とした。
- trampoline
- Toasts
- これまではどのアプリがトーストを出したのかわからなかったのを改善した
- トーストに表示できる文字数を減らしたので1行2行くらいにしてほしい
- Picture in Picture
- これまでユーザがホーム画面に戻ってきた時にシステムはアプリから PIP 移行のアニメーションをするまでに待たなければならずアプリ側にとっては制御が困難でした
- そのためのコールバック APIが増えた
- PIP に移行する際にピクチャーサイズ(コンテンツサイズ)を変更するようなアニメーションがあったが代わりにクロスフェードするような API を追加した
- コンテンツサイズを変更するのは動画のパフォーマンスにとってはよいですが UI には適していない
- Blur
- View に setRenderEffect という API が増え、リアルタイムでブラーを適用できる
- ビューだけではなく、ウィンドウなどもぼかしたい場合には Theme で windowBackgroundBlurRadius, windowBlurBehindEnables, windowBlurBehindRadius を適用することができる
- これまで Blur は描画パフォーマンスが悪かったので避けてきたが、CPU と GPU の性能向上により今回追加することができた
- Ripples
- 新しいスパークル効果を適用することができる(Android 12の視覚言語の一つ)
- 開発者が特別に実装する必要はない
- Edge(ScrollView などのオーバースクロール)
- Gingerbread から変わってなかったので、今回刷新した
- デフォルトで有効
- 詳細は今後数ヶ月で詳しく紹介していく
- Graphics
- AVIF 画像形式のサポート(JPEGやPNGよりいくらか優れた)
-(Android 4.x 以上は WebP、Android 12 以上は AVIF という使い方をすることになるかも)
- Chrome などの一部の Web ブラウザは既にサポートしている
- What's new in Android Media で詳細が聞ける
- Videos
- 最新のビデオコーデックに対応していないアプリの場合に、自動的にトランスコードすることができる
- 動画が HDR10+ だった場合に、自動的に再生する時には H.265 になるなど
- manifest に <media-capabilities> で対応するファイル形式を指定することができる
- https://developer.android.com/reference/android/media/ApplicationMediaCapabilities
- Haptic
- 例えば、音楽やゲームで音声に基づいて端末を振動させたい場合に HapticGenerator に送ることができる。
- Privacy
- 例えば 新しい Bluetooth 使用許可権限が追加された。
- これまで近くの Bluetooth デバイスをペアリングするときに位置情報を取得するなどがあった
- 正確な位置情報が必要ないとき、大まかな位置情報を取得できるような権限が増えた
- Clipbords
- これまでクリップボードを取得する前にトーストが表示されていた(アクセスのたび)が、必要なときのみでるようになった
- Foreground
- Android 12 からアプリがバックグラウンドの場合はフォアグラウンドサービスを起動できなくなった
- WorkManager API の setExpedited を呼び出す必要がある(Pre-Android 12 はこれまで通りフォアグラウンドサービスを呼ぶ)
- さらに詳細は「What's new in Android privacy」を見てください
- Drag and Drop, Copy and Paste, Keyboard Stickers
- これらの API をまとめて一つにした
- Coming soon AndroidX API
- まだ AndroidX API に追加できていないものもあるので、直接 Platform API を使用して試してみてください
- 下位互換の対応が必要なため長期的には AndroidX API を使うようにしてほしいけど
- Performance
- 新しい Macrobenchmark ライブラリがある
- スタートアップやスクロールなどのパフォーマンスを計測できる
- Wear
- 詳細は「What's new in Wear」で各タイルの新機能について話します
- Android Tools(Android Studio)
- Android 4.2 がステーブル
- 詳細は「What's new in Android development tools」「What's new in design tools」「What's new in Android Gradle plugin」
- Jetpack
- 詳細は「What's new in Jetpack」「What's new in Jetpack Compose」「Using Jetpack libraries in Compose」