Android9のバージョン
- Android 9 の概要
- 動作の変更: すべてのアプリ
-
- パワー管理
- プライバシーの変更
- 非SDKインターフェースの使用に関する制限事項
- セキュリティ動作の変更
- ICU図書館の更新
- Android テストの変更点
- Java UTF デコーダ
- 証明書を使用したホスト名検証
- ネットワークアドレスの検索はネットワーク違反につながる可能性があります
- ソケットタグ
- 報告されたソケットで使用可能なバイト数
- より詳細なVPNネットワーク機能レポート
- アプリは xt_qtaguid フォルダー内のファイルにアクセスできなくなります
- FLAG_ACTIVITY_NEW_TASK 要件を適用するようになりました
- 画面回転変更
- Apache HTTP クライアントの非推奨は、非標準の ClassLoader を使用するアプリケーションに影響します
- カメラを列挙する
- 動作の変更: API レベル 28 以降を対象とするアプリ
- Android 9 の機能と API
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 スキャン グループに関連する新しい許可ルールと権限など、いくつかの動作変更が導入されています。 。
バックグラウンドでのセンサーへのアクセス制限
Android 9 を実行しているデバイスではアプリがバックグラウンドで実行され、システムはアプリに次の制限を適用します。
- アプリケーションはマイクまたはカメラにアクセスできません。
- 加速度計やジャイロスコープなど、連続レポート モードを使用するセンサーはイベントを受信しません。
- 変更レポート モードまたはワンショット レポート モードを使用するセンサーはイベントを受信しません。
アプリが Android 9 を実行しているデバイス上のセンサー イベントを検出する必要がある場合は、フォアグラウンド サービスを使用します。
通話記録へのアクセスを制限する
Android 9 では CALL_LOG 権限グループが導入され、READ_CALL_LOG、WRITE_CALL_LOG 和 PROCESS_OUTGOING_CALLS
権限がこのグループに移動されます。Android の以前のバージョンでは、これらの権限は PHONE 権限グループにありました。
CALL_LOG 権限グループを使用すると、通話記録の読み取りや電話番号の識別など、通話に関わる情報にアクセスする必要があるアプリケーションに対する、より優れた制御と可視性がユーザーに提供されます。
電話番号へのアクセスを制限する
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 スキャンに対する許可要件が以前のバージョンよりも厳しくなっています
Wi-Fiサービス機能から削除された情報
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() を呼び出してください。
電話情報はデバイスの位置情報の設定に依存するようになりました
非SDKインターフェースの使用に関する制限事項
https://developer.android.google.cn/about/versions/pie/android-9.0-changes-all?hl=zh-cn#compat
セキュリティ動作の変更
デバイスのセキュリティの変更
トランスポート層セキュリティ (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 テストの変更点
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 コンストラクターによってデコードできます。
証明書を使用したホスト名検証
ネットワークアドレスの検索はネットワーク違反につながる可能性があります
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ネットワーク機能レポート
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 を渡さない限り、非アクティビティ コンテキストからアクティビティを開始できません。このフラグを渡さずにアクティビティを開始しようとすると、アクティビティは開始されず、メッセージがログに出力されます。
画面回転変更
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 クラスでそのトラフィックをクエリするメソッドを提供します。
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) を使用する必要があります。
ドキュメントのスクロール要素
一時停止されたアプリからの通知
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
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#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