今後の Google Play でのアプリのセキュリティおよびパフォーマンスの改善について
2017年12月26日火曜日
この記事は Android プロダクト マネージャー、Edward Cunningham による Android Developers Blog の記事 "Improving app security and performance on Google Play for years to come" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
Google Play は、毎年何十億ものアプリのインストールやアップデートを支えています。あらゆるユーザーが適切な体験を通してお気に入りのアプリやゲームを見つけてインストールできるように、私たちは妥協することなくセキュリティやパフォーマンスに注力しています。本日は、Android デベロッパーの皆さんに、この目的を達成するための 3 つの変更点についてお知らせします。また、各変更の理由と、長期的に見てこの変更が Android 端末の安全性とパフォーマンスの向上にどのように役立つのかについても説明します。
私たちは、デベロッパー エコシステムに深く感謝しており、この早い段階での事前予告が皆さんのアプリのリリースに役立つことを願っています。今後も、皆さんの準備をサポートするため、重要な日付が近づいてきた際にお知らせやデベロッパー リソースの共有を行ってまいります。
こういった変更の多くは、新しい API の動作をサポートすることを
ユーザーにできる限り最高の Android 体験を提供するため、Google Play Console のアプリのターゲットに最新の API レベルを指定することが義務づけられます。
この変更はアップデートを行っていない既存のアプリには影響しません。また、デベロッパーが任意の
今年は、今までの Android でもっとも安全でパフォーマンスのよい Android Oreo がリリースされました。また、最新リリースが早く端末に行き渡るように、Project Treble も導入されています。ぜひ本日より、Android 8.1 Oreo をターゲットにしたアプリの構築を始めてください。
64 ビットのコードのみをサポートする今後の Android 端末に備えるため、Play Console における新しいアプリとアプリのアップデートは、32 ビットをサポートしていない端末でも実行できるようにすることが義務づけられます。32 ビット ライブラリを含むアプリは、64 ビット版のものも含める必要があります。これは、同じ APK の中に配置しても、公開している複数の APK の 1 つとしてでも構いません。ネイティブ コードを含まないアプリには影響ありません。
この変更は、2019 年 8 月から適用されます。まだ 64 ビットをサポートしていないデベロッパーが十分な時間を使って移行計画を立てられるように、本日事前予告を行っています。今後、Android での 64 ビット ネイティブ ライブラリのパフォーマンス上のメリットについて深く掘り下げた記事を投稿する予定なので、ぜひご注目ください。NDK についての詳細は、CPU とアーキテクチャ ガイドをご覧ください。
デベロッパーやユーザーは、特にアクションを行う必要はありません。Play の最大 APK サイズは、この小さなメタデータの追加を考慮して調整されます。このデータは APK 署名ブロックに挿入されるので、アプリの機能が変わることはありません。このメタデータによって、Play のモバイルアプリのエコシステムの整合性が向上します。またデベロッパーにとっては今後新たな配布機会が得られ、アプリを最新に保つユーザーが増えることにもつながります。
このブログ投稿はどのくらい役に立ちましたか?
★ ★ ★ ★ ★
Reviewed by Hak Matsuda - Developer Relations Team
Google Play は、毎年何十億ものアプリのインストールやアップデートを支えています。あらゆるユーザーが適切な体験を通してお気に入りのアプリやゲームを見つけてインストールできるように、私たちは妥協することなくセキュリティやパフォーマンスに注力しています。本日は、Android デベロッパーの皆さんに、この目的を達成するための 3 つの変更点についてお知らせします。また、各変更の理由と、長期的に見てこの変更が Android 端末の安全性とパフォーマンスの向上にどのように役立つのかについても説明します。
- 2018 年の後半より、Play では、新しいアプリやアプリのアップデートは最新の Android API レベルをターゲットに指定することが義務づけられます。これが必須となるのは、新規アプリは 2018 年 8 月、既存アプリのアップデートは 2018 年 11 月です。これによって、セキュリティとパフォーマンスが最適化された最新の API でアプリがビルドされることが保証されます。
- 2019 年 8 月に、Play ではネイティブ ライブラリを含む新しいアプリとアプリのアップデートは、32 ビット版に加えて 64 ビット版を提供することが義務づけられます。
- さらに、2018 年初めに、アプリが本物であることを確認するための小規模なセキュリティ メタデータを各 APK に追加する作業が始まります。この変更に対しては、特にアクションは必要ありません。
私たちは、デベロッパー エコシステムに深く感謝しており、この早い段階での事前予告が皆さんのアプリのリリースに役立つことを願っています。今後も、皆さんの準備をサポートするため、重要な日付が近づいてきた際にお知らせやデベロッパー リソースの共有を行ってまいります。
2018 年後半からのターゲット API レベル要件
API の動作の変更により、Android のセキュリティやプライバシー保護が強化されます。これは、デベロッパーがアプリを保護したり、ユーザーを不正なソフトウェアから守る上で役立ちます。最近バージョンのプラットフォームでは、次のような変更点があります。- bindService() での暗黙的インテントのサポート終了(Android 5.0)
- 実行時パーミッション(Android 6.0)
- 保護された接続において、デフォルトでユーザーが追加した CA を信頼しない(Android 7.0)
- ユーザーが明示的に同意しないと、アプリはユーザー アカウントにアクセスできない(Android 8.0)
こういった変更の多くは、新しい API の動作をサポートすることを
targetSdkVersion
マニフェスト属性で明示的に宣言したアプリにのみ適用されます。たとえば、実行時パーミッションを通してアプリがアクセスできる個人情報(連絡先や位置情報など)をユーザーが完全に制御できるのは、targetSdkVersion
が 23(Android 6.0 の API レベル)以降のアプリのみです。同様に、最新リリースには、アプリが意図せずに電池やメモリなどのリソースを使いすぎることを防ぐユーザー エクスペリエンスの改善も含まれています。バックグラウンド実行の制限は、この種の改善の代表的な例です。 ユーザーにできる限り最高の Android 体験を提供するため、Google Play Console のアプリのターゲットに最新の API レベルを指定することが義務づけられます。
- 2018 年 8 月: 新しいアプリで、ターゲット API レベル 26(Android 8.0)以降が必須になります。
- 2018 年 11 月: 既存のアプリのアップデートで、ターゲット API レベル 26 以降が必須になります。
- 2019 年以降: 毎年、
targetSdkVersion
の要件が上がります。Android の各デザート リリースの後 1 年以内に、新しいアプリとアプリのアップデートは、対応する API レベル以降にターゲットを指定することが義務づけられます。
この変更はアップデートを行っていない既存のアプリには影響しません。また、デベロッパーが任意の
minSdkVersion
を使用できる点は変わらないので、古いバージョンの Android 向けにアプリをビルドできる点も変わりません。デベロッパーの皆さんには、現実的に可能な範囲で下位互換性を提供することをお勧めします。今後のバージョンの Android でも、最新の API レベルをターゲットに指定しておらず、パフォーマンスやセキュリティに悪影響を及ぼすアプリは制限を受けることになります。私たちは、積極的にアプリのエコシステムにおける断片化を減らし、安全でパフォーマンスのよいアプリを確実に提供できるようにしたいと考えています。さらに、デベロッパーの皆さんが事前に計画を立てることができるように、早い段階から多くの通知を行う予定です。 今年は、今までの Android でもっとも安全でパフォーマンスのよい Android Oreo がリリースされました。また、最新リリースが早く端末に行き渡るように、Project Treble も導入されています。ぜひ本日より、Android 8.1 Oreo をターゲットにしたアプリの構築を始めてください。
2019 年の 64 ビットサポート要件
64 ビット アーキテクチャ プラットフォームのサポートは、Android 5.0 で導入されました。現在、オンラインに接続している 40% 以上の Android 端末で 64 ビットがサポートされていますが、32 ビットとの互換性はまだ維持されています。通常、ネイティブ ライブラリを利用するアプリでは、64 ビットのコードは追加のレジスタや新しい命令を使えるため、大幅にパフォーマンスが高くなります。64 ビットのコードのみをサポートする今後の Android 端末に備えるため、Play Console における新しいアプリとアプリのアップデートは、32 ビットをサポートしていない端末でも実行できるようにすることが義務づけられます。32 ビット ライブラリを含むアプリは、64 ビット版のものも含める必要があります。これは、同じ APK の中に配置しても、公開している複数の APK の 1 つとしてでも構いません。ネイティブ コードを含まないアプリには影響ありません。
この変更は、2019 年 8 月から適用されます。まだ 64 ビットをサポートしていないデベロッパーが十分な時間を使って移行計画を立てられるように、本日事前予告を行っています。今後、Android での 64 ビット ネイティブ ライブラリのパフォーマンス上のメリットについて深く掘り下げた記事を投稿する予定なので、ぜひご注目ください。NDK についての詳細は、CPU とアーキテクチャ ガイドをご覧ください。
2018 年初頭のセキュリティ メタデータ
来年、Google Play によって公式に配布されていることを確認するための小規模なセキュリティ メタデータを各 APK に追加する作業が始まります。物理製品を購入すると、その製品が本物であることを証明する公式のラベルやバッジがついていることがあります。今回 APK に追加されるメタデータは、Android アプリが本物であることを証明する Play のバッジのようなものです。デベロッパーやユーザーは、特にアクションを行う必要はありません。Play の最大 APK サイズは、この小さなメタデータの追加を考慮して調整されます。このデータは APK 署名ブロックに挿入されるので、アプリの機能が変わることはありません。このメタデータによって、Play のモバイルアプリのエコシステムの整合性が向上します。またデベロッパーにとっては今後新たな配布機会が得られ、アプリを最新に保つユーザーが増えることにもつながります。
今後の予定
2017 年は、Google Play で拡大や成功を成し遂げたデベロッパーにとってすばらしい年でした。私たちは、アプリの質やビジネスの業績の向上に役立てていただけるように、さまざまな機能(I/O 2017 や Playtime で発表された内容など)についての作業を懸命に行っています。こういった機能や今後のアップデートによって、2018 年以降も Android や Play のエコシステムが繁栄し続けることを願っています。このブログ投稿はどのくらい役に立ちましたか?
★ ★ ★ ★ ★
Reviewed by Hak Matsuda - Developer Relations Team