2021年2月18日に、GoogleからAndroid 12の開発者向けプレビューであるDeveloper Preview 1(DP1)が発表されました。
この記事では、その変更点と新機能についてまとめています。
では行ってみよう。
Developer Preview 1(DP1)とは?
Androidのリリーススケジュールは、今回のDeveloper Preview 1をはじめとして、いくつかのマイルストーンがあります。

最終的には2021年8月以降に、正式なリリース版が出てくる予定になっています。
今回紹介するDeveloper Preview 1の内容は、アルファ版な立ち位置なので注意ください。
尚、下記の内容は全て公式リファレンスの内容を参考にしているので、そちらも目を通すことをお勧めします。(公式リファレンス)
全体概要
Android11からの進化点をみると、目玉機能があるという感じではなく正常進化という感じです。 プライバシーとかセキュリティとかのアップデートが中心になっています。
例えば、iOS12では「広告ID」の取得がユーザの許可性になったりと、社会的にプライバシー問題が大きなテーマになっていますが、DP1もこの流れを引き継いでいます。
それでは、正常進化のアップデート内容を細かくみていきましょう。
新機能
DP1の新機能としては、ユーザの利便性向上・動画関連の強化・エンタープライズの強化あたりに集約されています。
新体験
コンテンツを受信するための統合型API
下記に示すアニメーションのようにコンテンツをアプリに挿入したり移動したりするのが、楽にできるようになる統合型のAPIが追加されます。

動画
互換性のあるメディアトランスコーディング
特定の動画コーデックをサポートしていないアプリでも自動変換できるような機能を搭載します。
次の形式は、デバイス上で作成されたコンテンツに対しては、自動的にトランスコードできます。

AVIF画像のサポート
より効率的な圧縮でより高い画質を提供するAVIF画像ファイル形式のサポートが提供されます。

オーディオから触覚効果を生成する
スマホのバイブレーターを介して音声結合触覚フィードバックを提供できるようになります。
レーシングゲームで起伏の多い地形をシミュレートしたりできるようです。
セキュリティ
- 非DPCアプリで利用可能なデバイスプロパティの検証
エンタープライズ向けAndroidの強化
- 作業プロファイルのセキュリティとプライバシーの強化
- 管理されていないデバイスの証明書管理
接続性
- Wi-Fi対応(NAN)の機能強化
アプリの動作の変更
Android12向けにしてビルドした場合の影響について解説します。
変更点の概要としては、ジェスチャーナビゲーション・プライバシー・セキュリティ周りの向上となっています。
ユーザ体験
ジェスチャーナビゲーションの没入型モードの改善
イマーシブモードが簡素化され、ビデオの視聴、本の閲覧、ゲームのプレイなど、ジェスチャナビゲーションがより一貫性のあるものになりました。
プライバシー
WebViewでのSameSiteCookie対応
WebViewがCSRF攻撃に対して対策をするためにSameSiteCookie対応の最新アップデートを取り入れます。
SameSiteCookieって何?という気持ちよくわかります。解説します。
まず、Cookieとは、Webページにアクセスしたユーザ情報を保存するブラウザの機能です。
このCookieに対してCSRF(Cross-site Request Forgeries)という攻撃が可能です。ドメインが異なるサイト間でCookieを悪用して攻撃するという手法です。
これまでは各サイトがCSRFに対して対策していましたが、それをWebViewというかChromiumが対策するというのがSameSiteCookieというセキュリティ対策です。
MACアドレスへのアクセス制限
ユーザがリセット不可能な識別子であるデバイスのMACアドレスへのアクセスが制限されています。
今後は、ユーザーがリセット可能な広告IDなどでデバイス識別をするしかなくなります。
セキュリティ
信頼できない画面タッチイベントをブロック
信頼できない画面タッチイベントはブロックされます。
詐欺などで、ユーザが気づかないうちにクレジットカードとかの情報を盗まれる可能性のある画面タッチの透過はブロックされます。
システムダイアログへの干渉が禁止
システムダイアログに干渉することはできなくなります。
コンポーネントのより安全な公開
アプリがアクティビティ等を誤って公開するのを防ぐために、属性の明示が義務付けられます。
<intent-filter>マニフェストファイルで属性を宣言するアプリに影響があります。
android:exported属性を明示的に宣言する必要があります。
インテントの安全な操作
PendingIntentに対して可視性を指定する必要があります。
この追加要件により、アプリのセキュリティが向上します。
バックグラウンド制限
フォアグラウンドサービスの開始制限
いくつかの特別な場合を除いて、バックグラウンドで実行している間はフォアグラウンドサービスを開始できなくなりました。
今後は、WorkManager を使ってスケジュールを設定する事を検討してください。
https://developer.android.com/topic/libraries/architecture/workmanager
背景として、ユーザーが通知を操作すると 、フォアグラウンドサービスを起動するアプリがあるようなのですが、これは大幅な遅延を引き起こし、ユーザーエクスペリエンスに影響を与える可能性があるらしいです。それがもう禁止になるということです。
カスタム通知の変更
現代的で使いやすく、より機能的になったようです。


テストツール改善
Android 12が既存のアプリに影響を与える範囲をテストするツールが改善しました。
個別の機能についてON/OFFしてテストできるようになります。

まとめ
今回の記事は公式リファレンス、ブログ記事の初出情報を元にしておりますが、新しい情報なので誤りを含んでいる場合があるかもしれません。
もし間違っている部分があれば、問い合わせを頂けますと幸いです。