Android 9 (Pie) バージョン変更概要 (API レベル 28)

Android9のバージョン

Android 9 の概要

https://developer.android.google.cn/about/versions/pie?hl=zh-cn

公式情報をもとに記事を抜粋しています

動作の変更: すべてのアプリ

https://developer.android.google.cn/about/versions/pie/android-9.0-changes-all?hl=zh-cn#apache-nonp

パワー管理

https://developer.android.google.cn/about/versions/pie/power?hl=zh-cn

Android 9 (API レベル 28) には、デバイスの電源管理を改善するための新機能が導入されています。これらの変更は、以前のバージョンにすでに存在していた機能と合わせて、システム リソースが最も必要なアプリに確実に供給されるようにするのに役立ちます。

電源管理機能は次の 2 つのカテゴリに分類できます。

  • アプリ スタンバイ グループ
    システムは、ユーザーの使用パターンに基づいて、CPU やバッテリーなどのデバイス リソースへのアプリのアクセスを制限します。これは Android 9 の新機能です。
  • 省電力モードの改善
    省電力モードがオンになると、システムはすべてのアプリケーションに制限を課します。これは既存の機能ですが、Android 9 で改良されました。

注: これらの変更は、Android 9 をターゲットとするかどうかに関係なく、すべてのアプリに適用されます。

プライバシーの変更

ユーザーのプライバシーを強化するために、Android 9 では、バックグラウンド アプリによるデバイス センサーへのアクセスの制限、Wi-Fi スキャンを通じて取得される情報の制限、通話、電話ステータス、Wi-Fi スキャン グループに関連する新しい許可ルールと権限など、いくつかの動作変更が導入されています。 。

バックグラウンドでのセンサーへのアクセス制限

https://developer.android.google.cn/about/versions/pie/android-9.0-changes-all?hl=zh-cn#bg-sensor-access

Android 9 を実行しているデバイスではアプリがバックグラウンドで実行され、システムはアプリに次の制限を適用します。

  • アプリケーションはマイクまたはカメラにアクセスできません。
  • 加速度計やジャイロスコープなど、連続レポート モードを使用するセンサーはイベントを受信しません。
  • 変更レポート モードまたはワンショット レポート モードを使用するセンサーはイベントを受信しません。

アプリが Android 9 を実行しているデバイス上のセンサー イベントを検出する必要がある場合は、フォアグラウンド サービスを使用します。

通話記録へのアクセスを制限する

https://developer.android.google.cn/about/versions/pie/android-9.0-changes-all?hl=zh-cn#restrict-access-call-logs

Android 9 では CALL_LOG 権限グループが導入され、READ_CALL_LOG、WRITE_CALL_LOG 和 PROCESS_OUTGOING_CALLS権限がこのグループに移動されます。Android の以前のバージョンでは、これらの権限は PHONE 権限グループにありました。

CALL_LOG 権限グループを使用すると、通話記録の読み取りや電話番号の識別など、通話に関わる情報にアクセスする必要があるアプリケーションに対する、より優れた制御と可視性がユーザーに提供されます。

電話番号へのアクセスを制限する

https://developer.android.google.cn/about/versions/pie/android-9.0-changes-all?hl=zh-cn#restrict-access-phone-numbers

Android 9 で実行されているアプリは、アプリのユースケースで必要な他の許可に加えて、最初に許可を取得しないREAD_CALL_LOG限り、電話番号や電話の状態を読み取ることはできません。

電話の状態から電話番号を読み取るには、アプリを更新して、ユースケースに応じて必要な権限をリクエストします。

  • PHONE_STATE Intent (广播)操作によって電話番号を読み取るには、両方が必要ですREAD_CALL_LOG 权限和 READ_PHONE_STATE 权限
  • onCallStateChanged() (接口)から電話番号を読み取るには、READ_CALL_LOG 権限のみが必要です。権限は必要ありません。 READ_PHONE_STATE

Wi-Fi の位置情報と接続情報へのアクセスを制限する

Android 9 では、アプリの Wi-Fi スキャンに対する許可要件が以前のバージョンよりも厳しくなっています

https://developer.android.google.cn/about/versions/pie/android-9.0-changes-all?hl=zh-cn#%E9%99%90%E5%88%B6%E8%AE%BF %E9%97%AE_wi-fi_%E4%BD%8D%E7%BD%AE%E5%92%8C%E8%BF%9E%E6%8E%A5%E4%BF%A1%E6%81%AF

Wi-Fiサービス機能から削除された情報

https://developer.android.google.cn/about/versions/pie/android-9.0-changes-all?hl=zh-cn#%E4%BB%8E_wi-fi_%E6%9C%8D%E5%8A %A1%E5%87%BD%E6%95%B0%E4%B8%AD%E7%A7%BB%E9%99%A4%E7%9A%84%E4%BF%A1%E6%81%AF

Android 9 では、次のイベントとブロードキャストは、ユーザーの位置情報や個人を特定できるデータを受け取りません。

  • WifiManager の getScanResults() および getConnectionInfo() 関数。
  • WifiP2pManager の DiscoverServices() 関数と addServiceRequest() 関数。
  • NETWORK_STATE_CHANGED_ACTION ブロードキャスト。

Wi-Fi のシステム ブロードキャストNETWORK_STATE_CHANGED_ACTIONには、SSID (以前の EXTRA_SSID)、BSSID (以前の EXTRA_BSSID)、または接続情報 (以前の EXTRA_NETWORK_INFO) が含まれなくなりました。アプリでこの情報が必要な場合は、代わりに getConnectionInfo() を呼び出してください。

電話情報はデバイスの位置情報の設定に依存するようになりました

https://developer.android.google.cn/about/versions/pie/android-9.0-changes-all?hl=zh-cn#%E7%94%B5%E8%AF%9D%E4%BF%A1 %E6%81%AF%E7%8E%B0%E5%9C%A8%E4%BE%9D%E8%B5%96%E8%AE%BE%E5%A4%87%E4%BD%8D%E7 %BD%AE%E8%AE%BE%E7%BD%AE

非SDKインターフェースの使用に関する制限事項

https://developer.android.google.cn/about/versions/pie/android-9.0-changes-all?hl=zh-cn#compat

セキュリティ動作の変更

https://developer.android.google.cn/about/versions/pie/android-9.0-changes-all?hl=zh-cn#security-changes

デバイスのセキュリティの変更

トランスポート層セキュリティ (TLS) 実装の変更

より厳格な SECCOMP フィルター

暗号化の変更

パラメータとアルゴリズムの実装を Conscrypt

Android Secure 暗号化ファイルはサポートされなくなりました

Android 9 では、Android Security Encrypted Files (ASEC) のサポートが完全に削除されます。

ICU図書館の更新

https://developer.android.google.cn/about/versions/pie/android-9.0-changes-all?hl=zh-cn#icu

ICU は、android.icu package国際化サポートを提供するために Android プラットフォームによって内部的に使用されるパブリック API を提供するために使用されます。たとえば、java.util、java.text 和 android.text.formatこの形式の Android クラスを実装するために使用されます。

Android テストの変更点

https://developer.android.google.cn/about/versions/pie/android-9.0-changes-all?hl=zh-cn#android-test-changes

Android 9 では、Android Test フレームワーク ライブラリとクラス構造にいくつかの変更が導入されています。これらの変更により、開発者はフレームワークをサポートするパブリック API を使用できるようになり、サードパーティのライブラリやカスタム ロジックを使用してテストを構築および実行する際の柔軟性も向上します。

Java UTF デコーダ

https://developer.android.google.cn/about/versions/pie/android-9.0-changes-all?hl=zh-cn#decoder

UTF-8 は Android のデフォルトの文字セットです。UTF-8 バイト シーケンスは、String(byte[] bytes) のような String コンストラクターによってデコードできます。

証明書を使用したホスト名検証

https://developer.android.google.cn/about/versions/pie/android-9.0-changes-all?hl=zh-cn#certificate-common-name

ネットワークアドレスの検索はネットワーク違反につながる可能性があります

https://developer.android.google.cn/about/versions/pie/android-9.0-changes-all?hl=zh-cn#network-address-strictmode

Android 9 以降では、StrictMode名前解決を必要とするネットワーク アドレス検索によって引き起こされるネットワーク違反を検出できます。

ソケットタグ

https://developer.android.google.cn/about/versions/pie/android-9.0-changes-all?hl=zh-cn#trafficstats-setthreadstatstag

Android 9 以降では、バインダー IPC を使用して他のプロセスに送信されるときにソケット タグが保持されます。この変更は、queryDetailsForUidTag()この機能の使用時など、ネットワーク トラフィックの統計に影響を与える可能性があります。

報告されたソケットで使用可能なバイト数

shutdownInput() 関数の呼び出し後に呼び出された場合、available() 関数は 0 を返します。

より詳細なVPNネットワーク機能レポート

https://developer.android.google.cn/about/versions/pie/android-9.0-changes-all?hl=zh-cn#network-capabilities-vpn

Android 8.1 (API レベル 28) 以下では、NetworkCapabilities クラスは、TRANSPORT_VPN などの VPN に関する限られた情報のみを報告し、NET_CAPABILITY_NOT_VPN を省略します。情報が限られているため、VPN の使用によってアプリのユーザーに料金が発生するかどうかを判断するのは困難です。たとえば、NET_CAPABILITY_NOT_METERED をチェックしても、基礎となるネットワークが従量制であるかどうかは判断されません。

アプリは xt_qtaguid フォルダー内のファイルにアクセスできなくなります

FLAG_ACTIVITY_NEW_TASK 要件を適用するようになりました

Android 9 では、インテント フラグ FLAG_ACTIVITY_NEW_TASK を渡さない限り、非アクティビティ コンテキストからアクティビティを開始できません。このフラグを渡さずにアクティビティを開始しようとすると、アクティビティは開始されず、メッセージがログに出力されます。

画面回転変更

https://developer.android.google.cn/about/versions/pie/android-9.0-changes-all?hl=zh-cn#screen-rotation-changes

Android 9 以降、縦向きモードに大きな変更が加えられました。

Apache HTTP クライアントの非推奨は、非標準の ClassLoader を使用するアプリケーションに影響します

https://developer.android.google.cn/about/versions/pie/android-9.0-changes-all?hl=zh-cn#apache-nonp

カメラを列挙する

Android 9 デバイスで実行されているアプリは、getCameraIdList() 呼び出しによって利用可能な各カメラを検出できます。

動作の変更: API レベル 28 以降を対象とするアプリ

受付

Android 9 以降をターゲットとし、フォアグラウンド サービスを使用するアプリは、FOREGROUND_SERVICE許可をリクエストする必要があります。これは通常の権限であるため、これを要求するアプリには自動的にこの権限が付与されます。

プライバシーの変更

ビルドのシリアル番号の廃止

Android 9 では、Build.SERIALユーザーのプライバシーを保護するために、常に「不明」に設定してください。

アプリケーションがデバイスのハードウェア シリアル番号にアクセスする必要がある場合は、代わりにREAD_PHONE_STATE許可をリクエストしてから を呼び出す必要がありますgetSerial()

DNSプライバシー

Android 9 をターゲットとするアプリはプライベート DNS API を使用する必要があります。

フレームワークのセキュリティの変更

トランスポート層セキュリティ (TLS) はデフォルトで有効になっています

https://developer.android.google.cn/about/versions/pie/android-9.0-changes-28?hl=zh-cn#tls-enabled

プロセスごとにネットワークベースのデータ ディレクトリを分離する

https://developer.android.google.cn/about/versions/pie/android-9.0-changes-28?hl=zh-cn#web-data-dirs

Android 9 では、アプリの安定性とデータの整合性を向上させるために、アプリは複数のプロセスが WebView データ ディレクトリを共有することを許可できなくなりました。通常、このようなデータ ディレクトリには、Cookie、HTTP キャッシュ、および Web ブラウジングに関連するその他の永続的および一時的なストレージが保存されます。

アプリケーション別の SELinux ドメイン

Android 9 以降をターゲットとするアプリは、誰でもアクセスできる Unix 権限を使用して他のアプリとデータを共有することはできません。この変更により、Android アプリケーション サンドボックスの整合性、特にアプリケーションのプライベート データにはアプリケーションのみがアクセスできるという要件が向上します。

ネットワーク接続の変更

ネットワーク接続データのカウントとマルチパス化

Android 9 以降をターゲットとするアプリでは、システムは現在のデフォルト ネットワークではないネットワーク トラフィック (たとえば、デバイスが Wi-Fi に接続されている場合のセルラー トラフィック) をカウントし、NetworkStatsManager クラスでそのトラフィックをクエリするメソッドを提供します。

https://developer.android.google.cn/about/versions/pie/android-9.0-changes-28?hl=zh-cn#data-counting-multipath

Apache HTTP クライアントの非推奨

https://developer.android.google.cn/about/versions/pie/android-9.0-changes-28?hl=zh-cn#apache-p

インターフェースの変更

https://developer.android.google.cn/about/versions/pie/android-9.0-changes-28?hl=zh-cn#ui-changes

ビューフォーカス

CSS RGBA 16 進値の処理

ファイルの MIME タイプ スニッフィング: URI

Android 9 より前のバージョンの Android では、ファイルの内容から MIME タイプを推測できます。Android 9 (API レベル 28) 以降、アプリはファイルを読み込むときに正しいファイル拡張子 (WebView の URI) を使用する必要があります。

https://developer.android.google.cn/about/versions/pie/android-9.0-changes-28?hl=zh-cn#mime-type-sniffing

ドキュメントのスクロール要素

一時停止されたアプリからの通知

Android 9 の機能と API

https://developer.android.google.cn/about/versions/pie/android-9.0?hl=zh-cn

Wi-Fi RTT による屋内測位

Android 9 では、Wi-Fi ラウンドトリップタイム (RTT) とも呼ばれる IEEE 802.11mc Wi-Fi プロトコルのプラットフォーム サポートが追加され、アプリが屋内測位を利用できるようになります。

https://developer.android.google.cn/about/versions/pie/android-9.0?hl=zh-cn#rtt

ディスプレイノッチのサポート

Android 9 は、カメラとスピーカーのためのスペースを確保するためのノッチを含む、最新のエッジツーエッジ スクリーンをサポートしています。このクラスは、DisplayCutoutコンテンツを表示すべきではない非機能領域の位置と形状を決定します。これらの画面ノッチ領域の存在と位置を確認するには、getDisplayCutout()関数を使用します。

https://developer.android.google.cn/about/versions/pie/android-9.0?hl=zh-cn#cutout

通知する

https://developer.android.google.cn/about/versions/pie/android-9.0?hl=zh-cn#notifications

SMS エクスペリエンスの向上

Android 7.0 (API レベル 24) 以降では、テキスト メッセージに返信するアクションを追加したり、通知から直接追加のテキストを入力したりできます。Android 9 では、次の機能強化によりこの機能が向上しています。

  • 会話参加者向けの簡素化されたサポート
  • サポートイメージ
  • 返信を下書きとして保存
  • 会話がグループ会話かどうかを判断する
  • インテントのセマンティックアクションを設定する
  • スマートリプライ

チャンネル設定、ブロードキャスト、およびサイレントモード

Android 8.0 では通知チャネルが導入され、表示する通知の種類ごとにユーザーがカスタマイズ可能なチャネルを作成できるようになりました。Android 9 では、次の変更により通知チャネルの設定が簡素化されています。

  • ブロックチャネルグループ
  • 新しいブロードキャスト インテント タイプ
  • NoticeManager.Policy には 3 つの新しい「応答不可」優先度クラスがあります
  • NoticeManager.Policy には、視覚的な中断を抑制するために使用できる 7 つの新しい「応答不可」定数もあります。

マルチカメラのサポートとカメラのアップデート

https://developer.android.google.cn/about/versions/pie/android-9.0?hl=zh-cn#camera

ドローアブルとビットマップ用の ImageDecoder

Android 9 では、画像デコードに対する最新のアプローチを提供する ImageDecoder クラスが導入されています。このクラスを使用して、BitmapFactory および BitmapFactory.Options API を置き換えます。

https://developer.android.google.cn/about/versions/pie/android-9.0?hl=zh-cn#decoding-images

アニメーション

Android 9 では、GIF および WebP アニメーション イメージを描画および表示するための AnimatedImageDrawable クラスが導入されました。

https://developer.android.google.cn/about/versions/pie/android-9.0?hl=zh-cn#animation

HDR VP9 ビデオ、HEIF 画像圧縮、メディア API

https://developer.android.google.cn/about/versions/pie/android-9.0?hl=zh-cn#hdr_vp9_%E8%A7%86%E9%A2%91%E3%80%81heif_%E5% 9B%BE%E5%83%8F%E5%8E%8B%E7%BC%A9%E5%92%8C_media_api

Android 9 では、ハイ ダイナミック レンジ (HDR) VP9 プロファイル 2 のサポートが組み込まれているため、HDR 対応デバイス上の YouTube、Play ムービー、その他のソースから HDR でビデオをユーザーに提供できるようになりました。

Android 9 では、プラットフォームに HEIF (heic) 画像エンコードのサポートが追加されています。

JobScheduler におけるトラフィック料金の感度

https://developer.android.google.cn/about/versions/pie/android-9.0?hl=zh-cn#jobscheduler

Android 9 以降、JobScheduler は通信事業者が提供するネットワーク ステータス信号を使用して、ネットワーク関連のジョブ処理を改善できるようになりました。

ニューラル ネットワーク API 1.1

https://developer.android.google.cn/about/versions/pie/android-9.0?hl=zh-cn#nnapi

Neural Networks API は、Android デバイスでの機械学習を高速化するために Android 8.1 (API レベル 27) で導入されました。Android 9 では、この API が拡張および改善されています。

自動入力フレーム

https://developer.android.google.cn/about/versions/pie/android-9.0?hl=zh-cn#autofill

セキュリティの強化

https://developer.android.google.cn/about/versions/pie/android-9.0?hl=zh-cn#security

Android 保護の確認

https://developer.android.google.cn/about/versions/pie/android-9.0?hl=zh-cn#android-protected-confirmation

統合生体認証ダイアログ

https://developer.android.google.cn/about/versions/pie/android-9.0?hl=zh-cn#biometric-auth

Android 9 では、システムがアプリに代わって生体認証ダイアログを提供します。この機能により、標準化されたダイアログの外観、雰囲気、場所が作成され、信頼できる生体認証資格情報チェッカーで認証しているという確信がユーザーに与えられます。

ハードウェアセキュリティモジュール

https://developer.android.google.cn/about/versions/pie/android-9.0?hl=zh-cn#hardware-security-module

Android 9 以降を実行しているサポート対象デバイスには、ハードウェア セキュリティ モジュールにある Keymaster HAL の実装である StrongBox Keymaster を搭載できます。

キーストアへの安全なキーのインポート

Android 9 では、ASN.1 でエンコードされたキー形式を使用して暗号化されたキーをキーストアに安全にインポートする機能を活用することで、キー復号化のセキュリティが向上しています。次に、Keymaster がキーストア内のキーを復号化するため、キーの内容がデバイスのホスト メモリにクリア テキストで表示されることはありません。

https://developer.android.google.cn/about/versions/pie/android-9.0?hl=zh-cn#secure-key-import

キーローテーションを使用した APK 署名スキーム

https://developer.android.google.cn/about/versions/pie/android-9.0?hl=zh-cn#apk-key-rotation

Android 9 では、APK 署名スキーム v3 のサポートが追加されています。

ロックされていないデバイスでのみキーの復号化を許可するオプション

Android 9 では、unlockedDeviceRequired フラグが導入されました。このオプションは、指定されたキーで送信または保存されているデータを復号化できるようにする前に、Key Vault で画面のロックを解除する必要があるかどうかを決定します。

https://developer.android.google.cn/about/versions/pie/android-9.0?hl=zh-cn#key-decrypt-unlocked

従来の暗号化のサポート

Keymaster 4 に同梱されている Android 9 デバイスは、トリプル データ暗号化アルゴリズム (略して Triple DES) をサポートしています。アプリが Triple DES を必要とするレガシー システムと相互運用する場合は、この暗号化を使用して機密資格情報を暗号化します。

アンドロイドのバックアップ

Android 9 では、バックアップと復元に関連する新機能と開発者向けオプションが追加されています。これらの変更の詳細については、次のセクションで説明します。

https://developer.android.google.cn/about/versions/pie/android-9.0?hl=zh-cn#android-backups

アクセシビリティ

https://developer.android.google.cn/about/versions/pie/android-9.0?hl=zh-cn#a11y

回転する

https://developer.android.google.cn/about/versions/pie/android-9.0?hl=zh-cn#rotation

文章

https://developer.android.google.cn/about/versions/pie/android-9.0?hl=zh-cn#text

オンデバイスシステム追跡

https://developer.android.google.cn/about/versions/pie/android-9.0?hl=zh-cn#on-device-systrace

おすすめ

転載: blog.csdn.net/weixin_35691921/article/details/131123111