Android 11 には、開発者向けオプションに新しい「アプリの互換性」設定が追加され、アプリ開発者がプラットフォームの動作変更をテストしやすくなります。
Google は毎年 Google I/O で、Android の次期バージョンに加えられる最もエキサイティングな変更点をいくつか紹介します。 ほとんどのユーザーは、エクスペリエンスに影響を与える視覚的な変更によって Android のバージョンを判断しますが、Android の各アップデートには大量の機能も含まれています。 APIの変更 そして プラットフォームの動作. これらの変更は、エンドユーザーによるアプリの利用方法を根本的に変える可能性があるため、アプリ開発者が注意してアプリを準備することが重要です。 Android の次期バージョンである Android 11 では、開発者向けオプションの新しい「アプリの互換性」設定により、開発者が今後の変更に向けてアプリをテストして準備することが容易になります。
Google が新しい Android バージョンをリリースするたびに、積極的なメンテナンスに関心のあるアプリ開発者は、 彼らのアプリケーションは、新しい変更とそれに伴うドキュメントを読む必要があります。 変化します。 その後、必要に応じてアプリを更新してこれらの新しい API 機能を追加するか、既存の API の使用を新しい API に移行するかを決定できます。このパスはオプションである場合とそうでない場合があります。 アプリ開発者は、アプリのターゲット API をすぐに更新する必要はありませんが、最終的には、 Google Play ストアのターゲット API 要件の変化. この後、開発者は新しい Android バージョンでアプリを実際にテストする必要もあります。これは、エミュレートされたデバイス、クラウドでホストされているデバイス、またはローカル デバイスで実行できます。 テストは開発ルーチンの一部ですが、大きな変更が含まれる場合、テストはさらに重要になります。
さらに、Google がプラットフォームの動作に大きな変更を導入したい場合、その変更を新しい Android バージョンのリリースにすぐに実装するわけではありません。 これは、多くのアプリが破損したり、機能が失われたりすることからユーザーを保護するためであり、また、開発者がアプリを更新するためのより多くの時間を与えます。 たとえば、Android 7 Nougat では、Google は次のことを決定しました。
一部の暗黙的なブロードキャストを制限する バッテリーの寿命を節約するため。 Android 8 Oreo では、Google アプリが暗黙的なブロードキャスト レシーバーを登録することを完全に制限. しかし、Android 8 Oreo がリリースされる前に、Google は開発者に対し、アプリが暗黙的なブロードキャスト レシーバーを登録できなくなるシナリオに備えるよう求めていました。 このために、開発者は次のことを行うことができます。 Android 7 Nougat で ADB コマンドを使用して、暗黙的なブロードキャストが利用できない状況をシミュレートする:adb shell cmd appops set RUN_IN_BACKGROUND ignore
上記のような ADB コマンドは、Google がアプリ開発者に Android プラットフォームの動作変更時にアプリがどのように動作するかをテストできるようにする方法の一例です。
もう 1 つの最近の例は、Android Q Beta 2 での方法です。 Googleは開発者に対象範囲別ストレージのテストを要請 次の ADB コマンドを実行して、アプリ上で次のコマンドを実行します。
adb shell cmd appops set your-package-name android: legacy_storage default && \
アプリ開発者は、ADB コマンドに慣れており、これらのプラットフォームの変更をテストするために ADB コマンドを使用することを特に嫌がらないと推測できます。 しかし、常に改善の余地があり、Google はこれらの変更を制御するシンプルな UI を導入することで、このテスト プロセスを容易にしています。
新しい PlatformCompat プロジェクトにより、開発者はプラットフォームの動作が新たに変更されるたびに ADB コマンドを実行する必要がなくなりました。 Android 11 では、Android の開発者向けオプション内に新しいサブメニューが追加され、ADB シェル コマンドを送信することなく、アプリごとに新しいプラットフォームの動作変更をすばやく切り替えることができます。 ターゲット API レベルごとに異なるセクションがあります。たとえば、API レベル > 29 には、 切り替えることができる独自の動作変更セットがあり、API レベル > 30 には独自の一連の動作変更があります。 変化します。
上のスクリーンショットでは、アプリの互換性セクションを示しています (エミュレーター上で実行されているソース ビルドの AOSP からのもの)、「デフォルト 「有効な変更」セクションには、ターゲットに関係なくすべてのアプリでデフォルトで有効になる Android 11 API の変更が含まれています SDK。 「targetSDKversion > 29 で有効」セクションは、Android 11/API レベル 30 をターゲットとするアプリに対してのみ有効になる Android 11 API の変更です。
この特定の変更はエンドユーザーを直接興奮させるものではありませんが、アプリ開発者の仕事を容易にするものであり、それは常に良いことです。
XDA 認定開発者のおかげで ルカ020400 ヒントと添付のスクリーンショットを提供していただきました。
Android 11 に関する詳細は次のとおりです。
- Android 11 では、Android のビデオ録画に対する 4GB のファイル サイズ制限がついに撤廃される可能性があります
- Android 11ではダークモードのスケジュール機能が搭載される可能性がある
- Android 11 R 以降、機内モードで Bluetooth オーディオがシャットダウンされなくなる可能性があります
- GoogleはAndroid 11でAndroidのAsyncTask APIを非推奨にします
- Googleは、Android 11で広範なファイルストレージへのアクセスを取得するためにファイルマネージャー開発者にフォームを送信させる予定
- Android 11 はついに適切なネイティブ Wireless ADB 実装をもたらすかもしれません