私は、非常に小さなサイズのnandフラッシュを備えたAndroid TVに取り組んできました。そのため、すべてのユーザー アプリとデータは外部 SD カードに保存する必要があります。
複数ユーザーの外部ストレージ ポリシーについて混乱しています。EXTERNAL_STORAGE、EMULATED_STORAGE_SOURCE、EMULATED_STORAGE_TARGET などのすべての変数をどのように設定すればよいですか
次のように私の現在の設定:
init.rc
symlink /storage/emulated/legacy /sdcard
symlink /storage/emulated/legacy /mnt/sdcard
symlink /storage/emulated/legacy /storage/sdcard0
symlink /mnt/shell/emulated/0 /storage/emulated/legacy
export EXTERNAL_STORAGE /storage/emulated/legacy
export EMULATED_STORAGE_SOURCE /mnt/shell/emulated
export EMULATED_STORAGE_TARGET /storage/emulated
vold.fstab
dev_mount sdcard /mnt/shell/emulated auto /devices/platform/...
storage_list
<StorageList xmlns:android="http://schemas.android.com/apk/res/android">
<!-- internal emulated storage -->
<storage
android:storageDescription="@string/storage_internal"
android:emulated="true"
android:mtpReserve="100" />
<storage android:mountPoint="/mnt/shell/emulated"
android:storageDescription="@string/storage_sd_card"
android:removable="true"
android:primary="true" />
</StorageList>
この構成が android-4.2 デバイスで機能していると、sdcard を取り外して再マウントするたびに、実行中のプロセスが許可のために sdcard の I/O 操作でエラーになることがわかりました。しかし、新しい zygote-forked プロセスは正常に動作します。