Android 12 では、デベロッパー向けに優れた新しい機能と API が導入されました。下記のセクションで、アプリの機能を確認し、関連する API を試すことができます。
新しい API、変更された API、削除された API の一覧については、API 差分レポートをご覧ください。新しい API について詳しくは、Android API リファレンスをご覧ください。新しい API は、見つけやすいようにハイライト表示されています。また、プラットフォームの変更がアプリに影響する領域については、Android 12 の動作変更(Android 12 をターゲットとするアプリの場合とすべてのアプリの場合)をご確認ください。
新しいエクスペリエンス
コンテンツ受信用の Unified API
Android 12 では、使用可能な任意のソース(クリップボード、キーボード、ドラッグ&ドロップ)からリッチ コンテンツを受け取れる新しい Unified API が導入されました。
詳しくは、コンテンツ受信用の Unified API をご覧ください。
メディア
互換性のあるメディアのコード変換
Android 12 は、デバイス上で記録された HEVC(H.265) および HDR(HDR10 および HDR10+)の動画を、幅広い標準的なプレーヤーに対応している AVC(H.264)形式に自動的にコード変換できます。これにより、古いアプリとの互換性を犠牲にすることなく、利用可能な最新のコーデックを活用できます。
詳しくは、互換性のあるメディアのコード変換をご覧ください。
AVIF 画像のサポート
Android 12 では、AV1 画像ファイル形式(AVIF)を使用する画像のサポートが導入されました。AVIF は、AV1 でエンコードされた画像と画像シーケンス用のコンテナ形式です。動画圧縮からのフレーム内エンコード済みコンテンツを活用します。これにより、JPEG などの古い画像形式と比べて、同じファイルサイズでの画質が大幅に向上します。この形式のメリットについては、Jake Archibald 氏のブログ投稿で詳しく説明されています。
オーディオから触覚効果を生成する
Android 12 アプリは、スマートフォンのバイブレーションを使用して、オーディオ セッションから得られる触覚フィードバックを生成できます。これは、ゲームとオーディオのエクスペリエンスの没入感を高めるのに役立ちます。たとえば、触覚で強化した着信音を使って発信者を特定したり、自動車操縦ゲームで荒れ地を走る感触をシミュレートしたりすることができます。
詳しくは、HapticGenerator リファレンス ドキュメントをご覧ください。
アニメーション GIF とアニメーション WebP 用のネイティブ ImageDecoder のサポート
Android 12 では、NDK ImageDecoder
API が拡張され、アニメーション GIF とアニメーション WebP のファイル形式を使用する画像から、すべてのフレームとタイミング データをデコードできるようになりました。この API が Android 11 で導入されたときは、これらの形式のアニメーションに含まれる最初の画像のみをデコードしていました。
サードパーティ ライブラリの代わりに ImageDecoder
を使用すると、さらに APK サイズを縮小できます。また、セキュリティとパフォーマンスに関連する今後のアップデートを利用できます。
この API について詳しくは、API リファレンスと GitHub のサンプルをご覧ください。
セキュリティ
非 DPC アプリに拡張されたデバイス プロパティ検証
Android 12 では、アプリが新しい鍵を生成したときにアテステーション証明書内のデバイス プロパティを検証できるアプリのセットが拡張されました。
Android 9(API レベル 28)以降、Keymaster 4.0 以上を使用するデバイス ポリシー オーナー(DPO)は、アテステーション証明書内のデバイス プロパティを検証できます。Android 12 以降は、Android 12 をターゲットとするすべてのアプリで、setDevicePropertiesAttestationIncluded()
メソッドを使用してこの検証を実行できます。
生成されるデバイス プロパティには、次の Build
フィールドが含まれています。
BRAND
DEVICE
MANUFACTURER
MODEL
PRODUCT
接続
Wi-Fi Aware(NAN)の機能強化
Android 12 では、Wi-Fi Aware で次の機能強化が行われました。
- Android 12 以上を搭載したデバイスでは、サービスの中断や圏外への移動が原因でアプリが検出済みのサービスを喪失したときに、
onServiceLost()
コールバックを使用してアラートを受け取ることができます。 - 複数のデータパス(NAN データパス)を設定する方法は、より効率化されています。以前のバージョンでは L2 メッセージを使用してイニシエータのピア情報を交換していたため、レイテンシが発生していました。Android 12 以上を搭載したデバイスでは、応答側(サーバー)がピアを承認するように構成できます。つまり、イニシエータ情報を事前に認識する必要がありません。これにより、データパスの確立が高速化され、1 つのネットワーク リクエストのみで複数のポイントツーポイント リンクが有効になります。
- Android 12 以上を搭載したデバイスでは、リソース不足を理由にフレームワークが検出リクエストまたは接続リクエストを拒否することを防ぐため、
WifiAwareManager.getAvailableAwareResources()
を呼び出せるようになりました。このメソッドの戻り値から、使用可能なデータパスの数、使用可能なパブリッシュ セッションの数、使用可能なサブスクライブ セッションの数を取得できます。