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

অ্যান্ড্রয়েডের পূর্ববর্তী সংস্করণগুলিতে, সিস্টেমটি ডিস্কের ব্যবহার পরিমাপ করতে একটি নির্দিষ্ট অ্যাপের মালিকানাধীন সমস্ত ফাইলকে অতিক্রম করে। এই ম্যানুয়াল পরিমাপটি সেটিংসে ব্যবহারকারীদের কাছে ফলাফল প্রদর্শন করার আগে গণনা করতে কয়েক মিনিট সময় নিতে পারে।

উপরন্তু, ক্যাশে করা ডেটা ফাইলগুলি সাফ করার জন্য অভ্যন্তরীণ অ্যালগরিদম শুধুমাত্র সমস্ত অ্যাপ জুড়ে পরিবর্তিত সময় দেখে। এটি দূষিত অ্যাপগুলিকে অন্য অ্যাপগুলির থেকে অন্যায়ভাবে নিজেদের অনুকূল করার জন্য ভবিষ্যতে অনেক দূর পর্যন্ত সংশোধিত সময় সেট করে সামগ্রিক ব্যবহারকারীর অভিজ্ঞতাকে হ্রাস করার অনুমতি দেয়৷

এই অভিজ্ঞতাগুলিকে উন্নত করতে, অ্যান্ড্রয়েড 8.0 প্রায় সঙ্গে সঙ্গে ডিস্ক ব্যবহারের পরিসংখ্যান ফেরত দেওয়ার জন্য ext4 ফাইলসিস্টেমের "কোটা" সমর্থনের সুবিধা প্রদান করে। এই কোটা বৈশিষ্ট্যটি কোনও একক অ্যাপকে 90% এর বেশি ডিস্ক স্থান বা 50% ইনোড ব্যবহার করতে বাধা দিয়ে সিস্টেমের স্থিতিশীলতার উন্নতি করে।

বাস্তবায়ন

কোটা বৈশিষ্ট্যটি 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গুলি সঠিক মান ফেরত দেবে বলে আশা করা হচ্ছে।

ডিবাগিং

পরীক্ষার অ্যাপ্লিকেশনটি আকারের জন্য অনন্য মৌলিক সংখ্যা ব্যবহার করে সাবধানে ডিস্ক স্থান অঞ্চল বরাদ্দ করে। এই পরীক্ষাগুলি ডিবাগ করার সময়, কোনো অসঙ্গতির কারণ নির্ধারণ করতে এটি ব্যবহার করুন। উদাহরণস্বরূপ, যদি 11MB এর ডেল্টা নিয়ে একটি পরীক্ষা ব্যর্থ হয়, তাহলে Utils.useSpace() পদ্ধতি পরীক্ষা করে দেখুন যে 11MB ব্লব 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