Android Q対応(ストレージスペース)
2476 ワード
紹介する
developer.android.google.cn/preview/pri…
ストレージアクセスフレームワーク:developer.android.google.cn/guide/topic…
FileProvider:developer.android.google.cn/training/se…
シナリオのテスト
動作変更のテスト
Android Qテスト1で動作変更を有効にするには、ターミナルウィンドウで次のコマンドを実行します.
有効かどうかを確認
互換性モード動作のテスト
アプリケーションをテストするときは、ターミナルウィンドウで次のコマンドを実行して、外部ファイルストレージアクセスの互換性モードを有効にできます.
互換性モードを無効にするには、Android Qでアンインストールしてアプリケーションを再インストールするか、ターミナルウィンドウで次のコマンドを実行します.
に影響
以下に変更
developer.android.google.cn/preview/pri…プライベートファイルサンドボックス 砂箱カタログ:/sdcard/Android/sandbox/packagename/ 他のアプリケーションでは、アプリケーションの砂箱ファイルに直接アクセスできません.ファイルはアプリケーションのプライベートファイルであるため、外部ストレージデバイスで自分のファイル にアクセスおよび保存する権限は必要ありません. appをアンインストールすると、砂箱のファイルは 削除されます.
メディアファイル共有セット アクセス 共有スキーム 写真アクセス 位置情報 ライブラリ表示 アプリケーションファイルにまたがるアプリケーションファイル の読み取りおよび格納
影響範囲
Googleは、Android Q上の砂箱化条件をTarget SDKが少なくともQ(29)のアプリケーションまたはAndroid Qを実行する際に新たにインストールされるアプリケーションとして設定している.この条件に合致しないアプリケーションは互換モードで実行され、互換モードでの適用動作は過去とほぼ同じであり、深刻なデータ損失の問題が発生しないことを保証します.互換モードは、再インストールを適用するとオフになります.
注意:Target SDK<29を適用しても砂箱化されます
インパクトポイント砂箱化後、砂箱ディレクトリ:/sdcard/Android/sandbox/packagename/、アプリケーションはJava File APIを通じて内部ストレージファイルデータに相互にアクセスすることができず、アプリケーションが「/sdcard」にアクセスするのは実質的にあなたのアプリケーションの砂箱ディレクトリであり、「ストレージリダイレクト」と理解できる.getExternalStoragePublicDirectory()、getExternalStorageDirectory()/storage/emulated/0はそのまま砂箱ディレクトリにマッピングされます.これらのファイルパスにアクセスするには自動マッピングがあるため、通常の直接使用は理論的に問題ありません. データ損失の可能性があります:ユーザーの携帯電話がAndroid Q以下のバージョンからAndroid Qバージョンにアップグレードされたとき、アプリケーションがアクセスできなくなる前に/sdcardの下に保存されたコンテンツ 砂箱空間は、過去の内部記憶空間内の「Android/data/packagename」のフォルダと同様に、アプリケーションのアンインストール時に永続的に消去されて回復できないため、例えば、一部のユーザーが自発的にダウンロードして保存したファイルは砂箱空間が存在しないが、砂箱の外に保存する必要がある 検査及び適合
チェックポイント
適合案ストレージ・スキーマ・フレームワークhttps://developer.android.google.cn/guide/topics/providers/document-provider 関連アプリケーションファイル共有https://developer.android.google.cn/training/secure-file-sharing/setup-sharing
developer.android.google.cn/preview/pri…
ストレージアクセスフレームワーク:developer.android.google.cn/guide/topic…
FileProvider:developer.android.google.cn/training/se…
シナリオのテスト
動作変更のテスト
Android Qテスト1で動作変更を有効にするには、ターミナルウィンドウで次のコマンドを実行します.
adb shell sm set-isolated-storage on
有効かどうかを確認
adb shell getprop sys.isolated_storage_snapshot
互換性モード動作のテスト
アプリケーションをテストするときは、ターミナルウィンドウで次のコマンドを実行して、外部ファイルストレージアクセスの互換性モードを有効にできます.
adb shell cmd appops set your-package-name android:legacy_storage allow
互換性モードを無効にするには、Android Qでアンインストールしてアプリケーションを再インストールするか、ターミナルウィンドウで次のコマンドを実行します.
adb shell cmd appops set your-package-name android:legacy_storage default
に影響
以下に変更
developer.android.google.cn/preview/pri…
影響範囲
Googleは、Android Q上の砂箱化条件をTarget SDKが少なくともQ(29)のアプリケーションまたはAndroid Qを実行する際に新たにインストールされるアプリケーションとして設定している.この条件に合致しないアプリケーションは互換モードで実行され、互換モードでの適用動作は過去とほぼ同じであり、深刻なデータ損失の問題が発生しないことを保証します.互換モードは、再インストールを適用するとオフになります.
注意:Target SDK<29を適用しても砂箱化されます
インパクトポイント
チェックポイント
sdcard
getExternalStorageDirectory
getExternalStoragePublicDirectory
/emulated/0
適合案