দ্রুত স্টোরেজ পরিসংখ্যান

Android-এর আগের ভার্সনে, ডিস্ক ব্যবহার পরিমাপ করার জন্য সিস্টেম কোনও নির্দিষ্ট অ্যাপের মালিকানাধীন সমস্ত ফাইল ট্রাভার্স করত। সেটিংসের মধ্যে ব্যবহারকারীদের ফলাফল দেখানোর আগে এই ম্যানুয়াল পরিমাপ গণনা করতে কয়েক মিনিট সময় লাগতে পারে।

এছাড়াও, ক্যাশে করা ডেটা ফাইল মুছে ফেলার ইন্টার্নাল অ্যালগরিদম শুধুমাত্র সব অ্যাপ জুড়ে পরিবর্তিত সময় দেখেছে। এর ফলে ক্ষতিকর অ্যাপগুলি ভবিষ্যতের অনেক পরের সময় সেট করে ব্যবহারকারীর সামগ্রিক অভিজ্ঞতাকে খারাপ করে দিতে পারে যাতে অন্যান্য অ্যাপের তুলনায় সেগুলি অন্যায়ভাবে সুবিধা পায়।

এইসব অভিজ্ঞতা উন্নত করতে, Android 8.0, ext4 ফাইলসিস্টেমের "কোটা" সংক্রান্ত সহায়তাকে কাজে লাগানোর সুবিধা দেয়, যাতে প্রায় সঙ্গে সঙ্গে ডিস্ক ব্যবহারের পরিসংখ্যান দেখানো যায়। এছাড়াও, এই কোটা ফিচারটি কোনও একটি অ্যাপকে ডিস্ক স্টোরেজে খালি জায়গার ৯০% বা আইনোডের ৫০%-এর বেশি ব্যবহার করতে না দিয়ে সিস্টেমের স্টেবিলিটি উন্নত করে।

প্রয়োগ

কোটা ফিচারটি installd-এর ডিফল্ট প্রয়োগের অংশ। installd কোনও নির্দিষ্ট ফাইল সিস্টেমে কোটা ফিচার চালু করা থাকলে, সেটি অটোমেটিক ব্যবহার করে। যে ব্লক ডিভাইস পরিমাপ করা হচ্ছে, সেখানে কোটা ফিচার চালু না থাকলে বা কাজ না করলে, সিস্টেম অটোমেটিক ও স্বচ্ছভাবে ম্যানুয়াল গণনা আবার শুরু করে।

নির্দিষ্ট কোনও ব্লক ডিভাইসে কোটা সংক্রান্ত সহায়তা চালু করতে:

  1. CONFIG_QUOTA, CONFIG_QFMT_V2 এবং CONFIG_QUOTACTL কার্নেল বিকল্প চালু করুন।
  2. আপনার fstab ফাইলে আপনার userdata পার্টিশনে quota বিকল্প যোগ করুন:
    /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

আগে থেকেই থাকা ডিভাইসে fstab বিকল্পটি নিরাপদে চালু বা বন্ধ করা যায়। fstab বিকল্প পরিবর্তন করার পরে প্রথম বুটের সময়, fsmgr সব কোটা ডেটা স্ট্রাকচার আপডেট করার জন্য একটি fsck পাস করতে বাধ্য করে, যার ফলে প্রথম বুট হতে একটু বেশি সময় লাগতে পারে। পরবর্তী বুট করার প্রসেসে কোনও প্রভাব পড়বে না।

কোটা সংক্রান্ত সহায়তা শুধুমাত্র ext4 এবং Linux 3.18 বা তার পরবর্তী ভার্সনে পরীক্ষা করা হয়েছে। অন্যান্য ফাইল সিস্টেমে বা পুরনো কার্নেল ভার্সনে চালু করলে, ডিভাইস প্রস্তুতকারক সংস্থা পরিসংখ্যানের সঠিকতা পরীক্ষা ও যাচাই করার জন্য দায়ী থাকবে।

কোনও বিশেষ হার্ডওয়্যার সাপোর্ট প্রয়োজন নেই।

যাচাইকরণ

StorageHostTest-এর অধীনে CTS টেস্ট আছে, যা ডিস্কের ব্যবহার পরিমাপ করার জন্য পাবলিক API ব্যবহার করে। কোটা সাপোর্ট চালু বা বন্ধ করা যাই থাকুক না কেন, এইসব API সঠিক ভ্যালু রিটার্ন করবে বলে আশা করা হয়।

ডিবাগিং

পরীক্ষা করা অ্যাপটি সাইজের জন্য অনন্য মৌলিক সংখ্যা ব্যবহার করে ডিস্ক স্পেস অঞ্চলগুলি সাবধানে বরাদ্দ করে। এইসব টেস্ট ডিবাগ করার সময়, কোনও অসঙ্গতির কারণ নির্ধারণ করতে এটি ব্যবহার করুন। যেমন, কোনও পরীক্ষা যদি ১১ এমবি ডেল্টা সহ ব্যর্থ হয়, তাহলে Utils.useSpace() পদ্ধতিটি পরীক্ষা করে দেখুন যে ১১ এমবি ব্লবটি getExternalCacheDir()-এ সেভ করা হয়েছে।

এছাড়াও, কিছু ইন্টার্নাল টেস্ট আছে যা ডিবাগ করার জন্য কাজে লাগতে পারে, তবে সেগুলি পাস করার জন্য নিরাপত্তা সংক্রান্ত পরীক্ষা বন্ধ করতে হতে পারে:

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