この記事は Chet Haaseによる Android Developers - Medium の記事 "Now in Android #25" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
![]()
Android 開発の最新ニュースやトピックをご紹介する Now in Android。今回は Android 11 リリース、Jetpack DataStore、プライバシーの変更点、Android GPU Inspector、最近公開されたブログ記事・動画・関連ドキュメント、ポッドキャスト エピソードをご紹介します。
Android 11: 2020 年 9 月 9 日公式リリース!
数か月間のプレビューとベータ版リリースを経て、とうとうこの時がやってきました。2020 年 9 月 9 日にAndroid 11 を公式にリリースし、ソースコードを Android オープンソース プロジェクト(AOSP)にプッシュしました。
Android 11 の機能は、既にデベロッパーやユーザーの皆さんに様々な形でご紹介してきましたが、あらためて少し振り返ってみましょう。
- UI の改善: 通知パネルの会話表示、バブル、同期 IME アニメーションなどを改善しました。
- コントロールへのアクセス性向上: ユーザーがすべてのスマート デバイスにすばやくアクセスしてコントロールできる管理機能を強化しました。
- プライバシーの強化: 「今回のみ」のアクセス許可、アクセス許可の自動リセット、対象範囲別ストレージの改善、バックグラウンド位置情報、バイオメトリック認証強度 API(これまでのリリース向けの新しい Jetpack バイオメトリック ライブラリの追加を含む)などを含みます。
- デベロッパー向けの機能強化: 新しい Crash Reasons API、開発者向けオプション パネルでの動作の切り替え、ADB 増分インストール、プラットフォーム API の Kotlin NULL 可能性アノテーションの増加などを実現しました。
Google Play システム アップデートも、さらに機能が向上しました。対応するモジュールを増やし、エコシステム全体でコアシステム機能を頻繁にアップデートできるようになっています。今回のリリースで利用できる機能について、さらに詳しく確認したい方は、Stephanie Saad Cuthbertson によるデベロッパー機能についてのブログ記事や、Dave Burke によるユーザー機能についてのブログ記事をご覧ください。
Jetpack DataStore
Jetpack DataStoreは、Shared Preferences の代わりに利用できる(さらに改善もされている)新しいライブラリです。Kotlin コルーチンと Flow を使っているので、非同期の読み取りや書き込みを簡単に行うことができ、はるかに進化しています。現在はまだアルファ版ですが、今後のために移行方法を確認しておきましょう。
DataStore には、2 種類の API およびアプローチが存在します。Preferences DataStore は本質的に SharedPreferences を完全に置き換えるもので、SharedPreferences と同じようにキーと値のペアを使って単純なデータを格納します。しかし、Preferences DataStore は適切な非同期読み取りと書き込みを自動的に扱えるので、SharedPreferences よりも強力で安定しています(SharedPreferences は同期書き込みを行うので、非同期処理を実現するには、UI スレッドで動作させないようにする方法を見つけなければなりません)。
2 つ目の API は Proto DataStore です。これを使うと、protobuf をベースとした型安全で高度なオブジェクト データ ストレージを利用するためのスキーマを作成できます。
まずは、Prefer Storing Data with Jetpack DataStore(Jetpack DataStore でデータを保管する)記事をご覧ください。次に、Preferences Codelabと Proto Codelabを確認し、内容を理解したらライブラリをダウンロードしてみましょう。
最近公開されたブログ記事と動画
直近の Android のプライバシーの変更点に対応する
デベロッパーの皆さんが直近のプライバシーの変更点について理解し、対応できるように、Fred Chungが記事を書いています。ユーザーデータにアクセスする際の制御と透過性を向上する作業が続いている関係で、リリースのたびにこの領域にいくつかの変更が行われています。Android 11 も例外ではありません。このような変更の多くは targetSdk フラグを変更するまで有効になりませんが、将来的に内容を理解してコードを移行できるように、記事を読んで対応方法を把握しておきましょう。
この記事では、特に以下の内容を扱っています。
- パッケージ アクセス: Android 11 は、端末上のパッケージの可視性を限定します。つまり、ユーザーの端末上にある他の任意のアプリについての情報にアプリからアクセスできなくなります。記事には、この仕組みの説明と実装ガイドへのリンクが含まれています。
- 増分位置情報アクセス許可: Android 11 では、フォアグラウンドとバックグラウンドの両方の位置情報にアクセスする場合、段階的にアクセス許可をリクエストする必要があります(まずフォアグラウンドのアクセスをリクエストします。次にバックグラウンドのアクセスをリクエストすると、設定画面が開き、そこでバックグラウンド位置情報へのアクセス許可を付与します)。
- フォアグラウンド サービス: 位置情報、マイク、カメラへのアクセスに利用。
- リセット不可能な ID: この変更は、端末のリセット不可能な ID へのアクセスを防ぐことを目的として、いくつかのリリースを経て進化してきたものです。Android 11 では、getIccId() を呼び出しても有用な情報は返されません。そのため、他の手段を使って必要な情報を取得する必要があります(ヒント: 代わりに、リセット可能な ID を使います)。まずは、一意の識別子に関するベスト プラクティスに書かれているガイドをご覧ください。
Android GPU Inspector
今年、3D グラフィックスのパフォーマンス調整に役立つ新しいプロファイリング ツールについてお知らせしました。ただし、これは早期プレビューの形式のみで公開され、その後も継続して開発を行っていました。そしてこのたび、Android GPU Inspector が「オープンベータ版」形式で誰でも使えるようになりました(補足: 現在も依然としてベータ版で、チームはまだ開発を続けていますが、多くの方に試していただき、フィードバックを受け付ける準備は整いました)。
Android Studio の CPU プロファイラやスタンドアロンの systrace/perfetto ツールなど、私たちが提供している他のプロファイリング ツールに似ていますが、3D パフォーマンスの調整に役立つ GPU 固有の低レベル情報が含まれています(とりわけ、ゲームなど、パフォーマンスが重視されるグラフィックス アプリの開発に役立ちます)。
Android GPU Inspector は端末のドライバと連携して動作するので、現在のところ、サポートされる端末は Pixel 4 と Pixel 4 XL に限られています。ただし、将来的にはさらに多くの端末をサポートする予定です。ツールは、こちらからダウンロードできます。詳しくは、Android GPU Inspector オープンベータ版の記事と動画をご覧ください。
ADB (Android Developers Backstage) ポッドキャスト 新エピソード
ADB 148: [Constraint|Motion][Layout|Editor]
Sean McQuillan と私が、Nicolas Roardと John Hofordを迎えて MotionEditor について話を聞きます。先日、MotionEditor は Android Studio 4.0 で安定版になりました。このツールについて話を進めながら、MotionLayout や ConstraintLayout などのデザインツール全般についても幅広く取り上げました。
Talking with Apples
Peter-John Welcome 氏のポッドキャストに Sean McQuillanが出演し、Jetpack Compose について語ります。
またお会いしましょう
今回は以上です。次回も Android デベロッパーの世界の最新アップデートをお届けします。お楽しみに。
Reviewed by Yuichi Araki - Developer Relations Team and Hidenori Fujii - Google Play Developer Marketing, APAC