見出し画像

Android 11 Developer Preview

以下の記事を参考に書いてます。

Turning it up to 11: the first Developer Preview of Android 11

1. はじめに

「Android」は、「5G」「折りたたみ式ディスプレイ」「機械学習」などの新しいテクノロジーをコアに組み込んで、モバイルの未来への道を切り開いています。私たちのアプローチの特徴は、早期フィードバックを提供する強力な開発者コミュニティです。これにより、世界中のユーザーを喜ばせるアプリやゲームを提供する堅牢なプラットフォームを実現しています。

そこで本日(2020年2月19日)、最初の「Android 11 Developer Preview」をリリースしました。昨年のフィードバックに基づいて、今年のプレビューをこれまでよりも早く開始します。

「Android 11」では、プライバシーとセキュリティを最優先事項として維持しながら、ユーザーが最新技術を活用できるように注力しています。これまでと同様に、今後数ヶ月間、Google I/Oに新しい機能と更新を共有し、フィードバックに取り組んでいきます。Android 11 開発者サイトにアクセスし、Pixel 2、3、3a、4のシステムイメージをダウンロードして、ご意見をお寄せください。

2. 5G

「5G」は、世界中のユーザーに、高速と低レイテンシをもたらします。「5G」を使用すると、Wi-Fiアプリの経験(4Kビデオのストリーミングや高解像度のゲームアセットの読み込みなど)をモバイルユーザーに拡張したり、「5G」専用に設計された新しい経験を構築したりできます。「Android 11」では、既存の「connectivity API」を強化することで、「5G」を利用可能にしています。

◎ Dynamic meteredness API
この API を使用すると、接続が定額制かどうかを確認することができ、定額制であれば、より高い解像度や品質のデータを提供することができます。

Bandwidth estimator API
5G向けにこのAPIを更新し、ネットワークをポーリングしたり、独自の推定を計算することなく、ダウンストリーム/アップストリームの帯域幅を簡単に確認できるようにしました。

画像1

「5G」は、家庭を超えて、友人や家族から企業まで、あなたの周りの世界とのシームレスな相互作用を提供することにより、「外出先での」体験を向上させることができます。

3. 新しいディスプレイ

端末メーカーは、新しいディスプレイの端末を市場に投入することにより、革新を続けています。プラットフォームでのこれらのサポートを拡張し、APIを使用してアプリを最適化できるようにしました。

ピンホール画面とウォーターフォール画面
アプリは、既存の「display cutout APIs」を使用してピンホール画面とウォーターフォール画面を管理できます。必要に応じて、必要に応じて、新しいAPIを使用すると、エッジを含むウォーターフォール画面全体をアプリで使用できるようになり、インセットを使用して、エッジ付近の操作を管理できます。

4. 会話

友人や同僚とのコミュニケーションは、多くの人が利用する最も重要なタスクです。「Android 11」では、開発者がより深い会話体験を作成するのに役立つ変更が導入されています。そのうちのいくつかは、DP1の初期バージョンに表示されます。

Dedicated conversations section
ユーザーはお気に入りのアプリで、進行中の会話をすぐに見つけることができます。
Bubbles
Bubblesは、スマートフォンでマルチタスクをしながら会話を表示し、アクセスできるようにする方法です。メッセージングアプリとチャットアプリは、通知で「Bubbles API」を使用して、これを利用できるようにする必要があります。

Insert images into notification replies 
アプリが画像のコピー/ペーストをサポートしている場合、ユーザーが通知インライン応答に直接アセットを挿入して、アプリ自体だけでなく、より豊かなコミュニケーションを可能にすることができます。DP1の一部として、Chromeでのイメージコピーのサポートと、Gboardクリップボードによるイメージペーストのサポートを提供しています。

リアルタイムの双方向通信アプリは、共有/会話の「shortcuts API」を使用して、Androidが電話全体に表示するPeopleターゲットと、ユーザーが端末を他の機能で使用しながら会話を続行できるようにする「Bubble API」を提供する必要があります。

5. Neural Networks API 1.3

Neural Networks API 」(NNAPI)は、Android端末で「機械学習」の操作を実行するために設計されています。「Android 11」では、開発者が利用できる「operation」と「control」を拡張しています。このリリースでは、一般的なユースケースの最適化に役立つ新しい操作と実行コントロールを追加しました。

◎ Quality of Service API
モデル実行の優先度とタイムアウトをサポートします。

Memory Domain AP
モデルの連続実行のためのメモリのコピーと変換を削減します。

Expanded quantization support
符号付き整数を浮動小数点数の代わりに使用して、より小さなモデルと高速な推論を可能にする符号付き整数非対称量子化を追加しました。

これらの新しいAPIの使用例 については、NDKサンプルコードを参照してください。また、今後のプレビューでさらなる更新を予定しているので、注目していてください。ハードウェアベンダーやTensorFlowなどの機械学習フレームワークと協力して、NNAPI 1.3のサポートを最適化しています。

6. プライバシー

「プライバシー」は常にAndroidの中核をなすものであり、ユーザーを安全に保ち、透明性と制御を向上させる方法を毎年追加しています。これらの変更はユーザーに人気があります。たとえば、「Android 10」では、「アプリの使用中」権限オプションを追加して、ユーザーが現在地をより詳細に制御し、バックグラウンドでの現在地へのアクセスを制限できるようにしました。これまでのところ、「アプリの使用中」オプションを指定すると、約半分のユーザーがそれを選択します。

「Android 11」では、新しい権限オプション、「Scoped storage」の更新など、ユーザーのプライバシーに引き続き重点を置いています。これらの機能をすぐにアプリで試して、感想をお聞かせください。

◎ One-time permission
最も機密性の高い種類のデータ(場所だけでなく、マイクやカメラも含む)の場合、ユーザーは1回限りのアクセス許可で一時的なアクセスを許可できるようになりました。この権限は、ユーザーがアプリから離れるまでアプリがデータにアクセスできることを意味し、次のアクセスのために再度権限をリクエストする必要があります。詳細はこちら

画像2

Android 11の1回限りの権限ダイアログ。

◎ Scoped storage
外部ストレージ上のアプリとユーザーデータをより適切に保護するための取り組みを継続し、開発者がより簡単に移行できるように改善しました。このプレビューリリースには、メディアのopt-in rawファイルパスアクセス、更新されたDocumentsUI、MediaStoreでのバッチ編集操作など、いくつかの拡張機能が含まれています。これらの技術的な変更に加えて、お客様の入力に基づいて、移行を行うためのより多くの時間を提供しており、変更が「Android 11」をターゲットとするアプリに適用されます。詳細はこちら

7. セキュリティ

「Android」では常にセキュリティ基準を引き上げることに焦点を当てています。毎月のセキュリティアップデートはもちろん、最新のプラットフォームではより多くの保護を組み込んでいます。

◎ Biometrics
幅広い端末のニーズを満たすために、「Biometrics」のサポートを拡大しました。「BiometricPrompt」は、粒度の異なる3つの認証タイプをサポートするようになりました。「strong」「weak」「device credential」の3つです。また、「BiometricPrompt」フローをアプリのアクティビティライフサイクルから切り離し、さまざまなアプリとの統合を容易するため、トランザクションUIを改善しました。生体認証を使用するすべてのアプリは、「BiometricPrompt API」に移行する必要があります。これは、以前のバージョンのAndroidとの互換性のために「AndroidX」でも利用できます。

◎ Platform hardening
「BoundSan」「IntSan」「CFI」「Shadow-Call Stack」など、セキュリティが重要なコンポーネントでのコンパイラベースのサニタイザーの使用を拡大しました。また、アプリが本番環境でメモリの問題を検出できるように、「Android 11」以降を対象とするアプリのヒープポインターのタグ付けを有効にします。これらにより、コードでより再現性の高いアプリのクラッシュが発生する可能性があります。アプリをテストしてください。「HWAsan」を使用してシステム内の多くのメモリエラーを検出および修正してきましたが、「HWAsan」対応のシステムイメージを提供して、アプリでこのような問題を見つけるのに役立ちます。

「BoundSan」「IntSan」「CFI」「Shadow-Call Stack」などのセキュリティクリティカルなコンポーネントでは、コンパイラベースのサニタイザの使用を拡大しました。また、「Android 11」以降をターゲットにしたアプリではヒープポインタのタグ付けを有効にして、本番環境でメモリの問題を検出できるようにしています。これらの改善により、コード内でより再現性の高い/再現性の高いアプリクラッシュが表面化する可能性がありますので、アプリをテストしてください。弊社ではHWAsanを使用してシステム内の多くのメモリエラーを発見し、修正してきましたが、HWAsan-enabled system imageを提供することで、アプリ内のこのような問題を発見できるようになりました。

◎ Secure storage and sharing of data
アプリは、「BlobstoreManager」を通じて他のアプリと簡単かつ安全にデータBLOBを共有できるようになりました。同じユーザーの複数のアプリ間でMLモデルを共有するようなユースケースに最適です。

◎ Identity credentials
「Android 11」は、ISO 18013-5準拠のモバイルドライビングライセンスなど、検証可能な識別ドキュメントの安全な保管と取得のためのプラットフォームサポートを追加します。詳細については、間もなくお知らせします。

8. Google Playシステムアップデート

Android 10以降、エコシステム全体のセキュリティ、プライバシー、一貫性を向上させるために、「Google Playシステムアップデート」(プロジェクトメインライン)への投資を拡大しています。端末メーカーとの強力なコラボレーションのおかげで、この目標に向けて大きな進歩を遂げ、インフラを拡大して、より幅広い端末に、より安全かつ迅速に提供できるようになりました。

「Android 11」では、12個の新しい更新可能なモジュールが追加され、合計22個のモジュールが追加されました。ハイライトには、Android端末の重要なプライバシー制御へのユーザーと開発者のアクセスを標準化するアクセス許可モジュール、「Scoped Storage」に関するプライバシーへの取り組みに不可欠なメディアプロバイダーモジュール、パフォーマンスを最適化して一貫したAPIを保証する「NNAPI」(Neural Networks API)モジュールが含まれます。詳細はこちら

9. アプリの互換性

新しいプラットフォームバージョンをロールアウトする際に、アプリの互換性を優先することで、更新をより迅速かつスムーズに行えるように取り組んでいます。「Android 11」では、プラットフォームの更新による影響を最小限に抑えるために、新しいプロセス、開発者ツール、リリースマイルストーンを追加しました。

◎ Minimizing the impact of behavior changes
Androidに加えた変更により、OSがより便利で安全になり、パフォーマンスが向上しますが、一部の変更は開発者のアプリに影響を与える可能性があります。「Android 11」を構築するにあたり、アプリで「targetSdkVersion」を「R」に設定するまで、アプリに与える影響を最小限に抑えるようにしました。「Android 11」ですぐに使えるアプリが増えることを願っています。

◎ Easier testing and debugging
互換性のテストを支援するために、互換性を損なう変更の多くを切り替え可能にしました。つまり、開発者オプションまたはadbから変更を個別に強制的に有効または無効にできます。この変更により、基本的なテストのためにtargetSdkVersionを変更したり、アプリを再コンパイルしたりする必要がなくなりました。詳細はこちら

画像3

アプリの互換性は開発者向けオプションで切り替えます。

◎ Updated greylists
制限された非SDKインターフェースのリストを更新しました。

◎ Dynamic resource loader
非SDKインターフェースからの移行の一環として、開発者はリソースとアセットを実行時に動的にロードするpublic APIを求めました。「Android 11」に「Resource Loaderフレームワーク」を追加しました。

◎ New platform stability milestone
開発者は、早期のアプリの互換性への準備は、最終的な変更の明確な日付のない課題であるとも語っています。そのため、「Android 11」では、「プラットフォームの安定性」と呼ばれる新しいリリースマイルストーンを追加します。これは6月上旬に到達する予定です。このマイルストーンには、最終的なSDK/NDK APIだけでなく、アプリに影響を与える可能性のある最終的な内部APIおよびシステム動作も含まれます。この新しいマイルストーンを使用して、最終的な開発とテストを計画してください。詳細はこちら

10. 接続性

◎ Call screening service improvements
「call-screening」アプリは、ユーザーを支援するためにより多くのことができるようになりました。アプリは、通話の詳細の一部として、着信通話のSTIR/SHAKEN確認ステータスを取得できます。また、システム提供の通話後の画面をカスタマイズして、通話をスパムとしてマークしたり、連絡先に追加したりするなどのアクションをユーザーが実行できるようにすることができます。

◎ Wi-Fi suggestion API enhancements
Wi-Fi suggestion API 」を拡張して、接続管理アプリが独自のネットワークを管理する機能を強化しました。たとえば、ネットワークの提案を削除することで強制的に切断したり、Passpointネットワークを管理したり、接続されたネットワークの品質に関する詳細情報を受け取ったり、その他の管理上の変更を加えたりできます。

◎ Passpoint enhancements
Androidは、Passpointプロファイルの有効期限を適用および通知し、プロファイルのCommon Name仕様をサポートし、Passpoint R1プロファイルの自己署名プライベートCAを許可します。接続アプリは、「Wi-Fi suggestion API」を使用してPasspointネットワークを管理できるようになりました。

11. 画像とカメラの改善

◎ HEIF animated drawables
ImageDecoder API」を使用すると、HEIFファイルに保存されている画像シーケンスアニメーションをデコードおよびレンダリングできるため、ネットワークデータとAPKサイズへの影響を最小限に抑えながら、高品質のアセットを利用できます。HEIF画像シーケンスは、アニメーションGIFと比較すると、画像シーケンスのファイルサイズを大幅に削減できます。開発者は、HEIFソースを使用してdecodeDrawableを呼び出すことにより、アプリにHEIF画像シーケンスを表示できます。ソースに一連の画像が含まれている場合、AnimatedImageDrawableが返されます。

◎ Native image decoder
新しい「NDK API」を使用すると、アプリでグラフィックスや後処理用のネイティブコードからイメージ(JPEG、PNG、WebPなど)をデコードおよびエンコードする一方で、外部ライブラリをバンドルする必要がないため、APKのサイズを小さく保つことができます。ネイティブデコーダーは、Androidのプロセスを利用して、継続的なプラットフォームのセキュリティ更新も行います。例については、NDKサンプルコードを参照してください。

◎ Muting during camera capture
アプリは新しいAPIを使用して、セッションがアクティブな間、着信音、アラーム、通知からのバイブレーションをミュートできます。

◎ Bokeh modes
アプリはメタデータタグを使用して、それをサポートするデバイスのカメラキャプチャリクエストでボケモードを有効にできます。静止画像モードは最高品質のキャプチャを提供し、連続モードはキャプチャがビデオキャプチャなどのセンサー出力に追いつくことを保証します。

12. Low latency

◎ Low-latency video decoding in MediaCodec
低遅延ビデオは、Stadiaなどのリアルタイムビデオストリーミングアプリやサービスに不可欠です。低レイテンシ再生をサポートするビデオコーデックは、デコードの開始後、ストリームの最初のフレームをできるだけ早く返します。アプリは新しいAPIを使用して、特定のコーデックの低遅延再生を確認および構成できます。

◎ HDMI low-latency mode
アプリは、新しいAPIを使用して、外部ディスプレイやテレビで自動低レイテンシモード(ゲームモードとも呼ばれます)をチェックして要求できます。このモードでは、遅延を最小限に抑えるために、ディスプレイまたはTVはグラフィックの後処理を無効にします。

13. Android 11を使ってみる

Developer Previewには、「Android 11」の機能を試したり、アプリをテストしたり、フィードバックしたりするために必要なものがすべて含まれています。はじめに、デバイスのシステムイメージをダウンロードして、Pixel 2/2 XLPixel 3/3 XLPixel 3a / 3a XLPixel 4/4 XLにフラッシュします。さらに、Android StudioからAndroid Emulatorを設定できます。 Android 11システムイメージを実行しているAndroid Emulatorには、64ビットx86 Android EmulatorシステムイメージでARM 32ビットおよび64ビットバイナリアプリコードを直接実行するための実験的サポートが含まれています。最後に、より広範なテストのために、GSIイメージも利用できます。

次に、Android 11 Preview SDKとツールを使用してAndroid Studio環境を更新します。これは、Android Studio内から実行できます。 詳細については、セットアップガイドを参照してください。 Android Studioの最新機能を利用するには、canary channelから最新バージョンのAndroid Studioをインストールすることをお勧めします。

設定が完了したら、次のことができるようになります。

◎ 新機能とAPIを試す
開発者プレビューの初期段階では、フィードバックが重要です。新しいAPIへのご意見を積極的に募集していますが、変更を加える時間はまだあります。新機能の詳細については、APIの概要、APIリファレンス、差分レポートを参照してください。

◎ 現在のアプリの互換性をテストする
ここでの目標は、アプリがAndroid 11のデフォルトの動作変更の影響を受けるかどうかを確認することです。現在公開されているアプリをデバイスまたはエミュレーターにインストールし、すべてのアプリフローをテストします。問題が見つかった場合は、すぐにアプリを更新することをお勧めします。

◎ opt-inの変更を使用してアプリをテストする
以前のリリースと同様に、Android 11にはopt-inの動作の変更があり、新しいプラットフォームを対象とするアプリにのみ影響します。これらの変化を早期に理解して評価することは非常に重要です。影響の評価を簡単にするために、変更のオンとオフを個別に切り替えることができます。

詳しくは、Android 11 開発者サイトを参照してください。このリリースの新機能の概要、動作の変更の詳細、セットアップと移行のガイド、リリースノート、フィードバックチャネルなどが見つかります。


この記事が気に入ったらサポートをしてみませんか?