Android P の非 SDK の制限についてお知らせ
2018年6月28日木曜日
この記事は ソフトウェア エンジニア、David Brazdil、Nicolas Geoffray による Android Developers Blog の記事 "An Update on non-SDK restrictions in Android P" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
Android で特に重視していることは、ユーザーとデベロッパーに最高のエクスペリエンスを提供することです。各 OS がリリースされるたびに、新しい機能を使用してユーザーにすばらしいエクスペリエンスを提供できるようになりますが、一部のアプリ デベロッパーが非 SDK インターフェースを使用していることを認識しています。非 SDK インターフェースを使用すると、ユーザーがクラッシュに遭遇する回数が増加し、デベロッパーは緊急リリースを配布する必要性にせまられる場合があります。私たちはこうした状況を改善したいと考えており、新しい各 OS で Android の安定性を確保するためにデベロッパーからの支援を必要としています。
3 か月前に、Android P で非 SDK インターフェースの使用を制限することを開始する計画を発表しました。私たちは、これらの制限がデベロッパーのリリース ワークフローに影響を及ぼすことを理解しており、非 SDK インターフェースの使用を検出するツールをデベロッパーに提供するとともに、新しいポリシーへの対応を計画して、フィードバックをお寄せいただくための時間を確保したいと考えています。
デベロッパー プレビューと Beta 1 では、これらの制限がアプリに及ぼす影響を視認する方法を提供しました。デベロッパー プレビューでは、制限された API の使用がログとトースト メッセージで表示されます。また、Beta 1 には、プログラムでこれらの制限を検出し、独自のロギングを行えるようにする StrictMode ポリシーを提供しました。次に例を示します。

複数の理由により、アプリで非 SDK インターフェースを使用する必要があることを理解しています。Android P でアプリが引き続き動作できるようにすることは、Google にとって重要なことです。多くのデベロッパーの皆さんから、Issue Tracker でユースケースを提示していただきました(感謝します)。お寄せいただいたほとんどのリクエストに応えて、Android P 向けの特定の非 SDK インターフェースをグレーリストに追加し、その制限を解除しています。また、私たちのチームは、多数のアプリに対して静的な解析を実行し、社内および外部のベータ版テスターからの数千個におよぶ自動レポートを処理しています。この解析を通じて、アプリが依存しているその他の非 SDK インターフェースを特定し、グレーリストに追加しています。グレーリストに含まれているすべてのインターフェースについて、今後のリリースに向けて代替となるパブリック SDK を調査します。ただし、一部の非 SDK インターフェースの使用を見落としている可能性があるため、ターゲット SDK が Android Oreo 以前のアプリでは、大部分の非 SDK インターフェースを利用できるようにしています。
まとめると、Android P で実行されるアプリには、非 SDK インターフェースの使用制限が適用されます。Android P をターゲットにしている場合、引き続き利用できる非 SDK インターフェースがグレーリストに表示されますが、その他のすべての非 SDK インターフェースにアクセスすることはできなくなります。Android Oreo 以前をターゲットにしている場合、ほとんどの制限は適用されませんが、グレーリストに含まれていない非 SDK インターフェースにアクセスすると、logcat に警告が表示されます(ユーザーには警告が表示されないことに注意してください)。
新しい Beta 2 リリースを試して、StrictMode を使用して非 SDK インターフェースの使用を検出してみてください。Beta 2 の機能は、非 SDK インターフェースの使用を制限するために最終リリースに実装される機能とほぼ同じです。また、新しいよくある質問をご覧ください。機能に関するあらゆる質問への回答が用意されていれば幸いですが、回答がない場合は、お知らせください。
Reviewed by Yuichi Araki - Developer Relations Team
Android で特に重視していることは、ユーザーとデベロッパーに最高のエクスペリエンスを提供することです。各 OS がリリースされるたびに、新しい機能を使用してユーザーにすばらしいエクスペリエンスを提供できるようになりますが、一部のアプリ デベロッパーが非 SDK インターフェースを使用していることを認識しています。非 SDK インターフェースを使用すると、ユーザーがクラッシュに遭遇する回数が増加し、デベロッパーは緊急リリースを配布する必要性にせまられる場合があります。私たちはこうした状況を改善したいと考えており、新しい各 OS で Android の安定性を確保するためにデベロッパーからの支援を必要としています。
3 か月前に、Android P で非 SDK インターフェースの使用を制限することを開始する計画を発表しました。私たちは、これらの制限がデベロッパーのリリース ワークフローに影響を及ぼすことを理解しており、非 SDK インターフェースの使用を検出するツールをデベロッパーに提供するとともに、新しいポリシーへの対応を計画して、フィードバックをお寄せいただくための時間を確保したいと考えています。
デベロッパー プレビューと Beta 1 では、これらの制限がアプリに及ぼす影響を視認する方法を提供しました。デベロッパー プレビューでは、制限された API の使用がログとトースト メッセージで表示されます。また、Beta 1 には、プログラムでこれらの制限を検出し、独自のロギングを行えるようにする StrictMode ポリシーを提供しました。次に例を示します。
複数の理由により、アプリで非 SDK インターフェースを使用する必要があることを理解しています。Android P でアプリが引き続き動作できるようにすることは、Google にとって重要なことです。多くのデベロッパーの皆さんから、Issue Tracker でユースケースを提示していただきました(感謝します)。お寄せいただいたほとんどのリクエストに応えて、Android P 向けの特定の非 SDK インターフェースをグレーリストに追加し、その制限を解除しています。また、私たちのチームは、多数のアプリに対して静的な解析を実行し、社内および外部のベータ版テスターからの数千個におよぶ自動レポートを処理しています。この解析を通じて、アプリが依存しているその他の非 SDK インターフェースを特定し、グレーリストに追加しています。グレーリストに含まれているすべてのインターフェースについて、今後のリリースに向けて代替となるパブリック SDK を調査します。ただし、一部の非 SDK インターフェースの使用を見落としている可能性があるため、ターゲット SDK が Android Oreo 以前のアプリでは、大部分の非 SDK インターフェースを利用できるようにしています。
まとめると、Android P で実行されるアプリには、非 SDK インターフェースの使用制限が適用されます。Android P をターゲットにしている場合、引き続き利用できる非 SDK インターフェースがグレーリストに表示されますが、その他のすべての非 SDK インターフェースにアクセスすることはできなくなります。Android Oreo 以前をターゲットにしている場合、ほとんどの制限は適用されませんが、グレーリストに含まれていない非 SDK インターフェースにアクセスすると、logcat に警告が表示されます(ユーザーには警告が表示されないことに注意してください)。
新しい Beta 2 リリースを試して、StrictMode を使用して非 SDK インターフェースの使用を検出してみてください。Beta 2 の機能は、非 SDK インターフェースの使用を制限するために最終リリースに実装される機能とほぼ同じです。また、新しいよくある質問をご覧ください。機能に関するあらゆる質問への回答が用意されていれば幸いですが、回答がない場合は、お知らせください。
Reviewed by Yuichi Araki - Developer Relations Team