Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Statistik Penyimpanan Lebih Cepat

Di versi Android sebelumnya, sistem melintasi semua file yang dimiliki oleh aplikasi tertentu untuk mengukur penggunaan disk. Pengukuran manual ini membutuhkan waktu beberapa menit untuk menghitung sebelum menampilkan hasilnya kepada pengguna di Pengaturan.

Selain itu, algoritme internal untuk menghapus file data yang disimpan dalam cache hanya melihat waktu yang diubah di semua aplikasi. Ini memungkinkan aplikasi berbahaya untuk menurunkan pengalaman pengguna secara keseluruhan dengan menyetel waktu yang dimodifikasi jauh di masa depan untuk secara tidak adil mendukung dirinya sendiri dibandingkan aplikasi lain.

Untuk meningkatkan pengalaman ini, Android 8.0 menawarkan untuk memanfaatkan dukungan "kuota" sistem file ext4 untuk menampilkan statistik penggunaan disk hampir seketika. Fitur kuota ini juga meningkatkan stabilitas sistem dengan mencegah aplikasi tunggal menggunakan lebih dari 90% ruang disk atau 50% inode.

Penerapan

Fitur kuota adalah bagian dari implementasi default installd . installd secara otomatis menggunakan fitur kuota ketika diaktifkan pada sistem file tertentu. Sistem secara otomatis dan transparan melanjutkan penghitungan manual ketika fitur kuota tidak diaktifkan atau didukung pada perangkat blok yang sedang diukur.

Untuk mengaktifkan dukungan kuota pada perangkat blok tertentu:

  1. Aktifkan opsi kernel CONFIG_QUOTA , CONFIG_QFMT_V2 , dan CONFIG_QUOTACTL .
  2. Tambahkan opsi quota ke partisi data pengguna Anda di file fstab:
    /dev/block/platform/soc/624000.ufshc/by-name/userdata   /data
    ext4    noatime,nosuid,nodev,barrier=1,noauto_da_alloc
    latemount,wait,check,formattable,fileencryption=ice,quota

Opsi fstab dapat dengan aman diaktifkan atau dinonaktifkan di perangkat yang ada. Selama booting pertama setelah mengubah opsi fstab , fsmgr memaksa pass fsck untuk memperbarui semua struktur data kuota, yang dapat menyebabkan boot pertama membutuhkan waktu sedikit lebih lama. Sepatu bot berikutnya tidak akan terpengaruh.

Dukungan kuota hanya diuji di ext4 dan Linux 3.18 atau lebih tinggi. Jika mengaktifkan pada sistem file lain, atau pada versi kernel yang lebih lama, produsen perangkat bertanggung jawab untuk menguji dan memeriksa kebenaran statistik.

Tidak diperlukan dukungan perangkat keras khusus.

Validasi

Ada tes CTS di bawah StorageHostTest , yang menggunakan API publik untuk mengukur penggunaan disk. API ini diharapkan mengembalikan nilai yang benar terlepas dari apakah dukungan kuota diaktifkan atau dinonaktifkan.

Debugging

Aplikasi pengujian dengan hati-hati mengalokasikan wilayah ruang disk menggunakan bilangan prima unik untuk ukuran tersebut. Saat men-debug pengujian ini, gunakan ini untuk menentukan penyebab perbedaan apa pun. Misalnya, jika pengujian gagal dengan delta 11 MB, periksa metode Utils.useSpace() untuk melihat bahwa blob 11 getExternalCacheDir() disimpan di getExternalCacheDir() .

Ada juga beberapa pengujian internal yang mungkin berguna untuk debugging, tetapi pengujian tersebut mungkin memerlukan penonaktifan pemeriksaan keamanan agar lulus:

runtest -x frameworks/base/services/tests/servicestests/ \
  src/com/android/server/pm/InstallerTest.java
adb shell /data/nativetest64/installd_utils_test/installd_utils_test
adb shell /data/nativetest64/installd_cache_test/installd_cache_test
adb shell /data/nativetest64/installd_service_test/installd_service_test