টেস্ট হারনেস মোড হলো অ্যান্ড্রয়েড ১০-এ যুক্ত হওয়া একটি ফিচার, যা থার্ড-পার্টি অ্যাপ ডেভেলপারদের একটি বা একাধিক ডিভাইস স্বয়ংক্রিয় করতে সাহায্য করে। এই ফিচারটি একটি অ্যান্ড্রয়েড ডিভাইসের সমস্ত ইউজার ডেটা মুছে ফেলার, ADB কী ধরে রাখার এবং প্রথমবারের সমস্ত সেটআপ স্ক্রিন এড়িয়ে যাওয়ার একটি পদ্ধতি প্রদান করে। এর ফলে ব্যবহারকারী কোনো ম্যানুয়াল হস্তক্ষেপ ছাড়াই ডিভাইস চালু হওয়ার সাথে সাথেই একটি UI টেস্ট চালাতে পারেন।
কাস্টমাইজেশন
ActivityManager.isRunningInUserTestHarness() চেক করে আপনি নির্ধারণ করতে পারেন যে কোনো ডিভাইস টেস্ট হারনেস মোডে আছে কিনা। কাস্টমাইজেশন ন্যূনতম রাখুন; যেমন, কিবোর্ড বা সেটআপ উইজার্ডের সেটআপ স্ক্রিনগুলো এড়িয়ে যাওয়ার মতো বিষয়গুলোতে সীমাবদ্ধ থাকুন, যেগুলো UI টেস্ট নষ্ট করে দেবে বা ম্যানুয়াল ইন্টারঅ্যাকশনের প্রয়োজন হবে।
বাস্তবায়ন
PersistentDataBlockManagerInternal এর ডিফল্ট ইমপ্লিমেন্টেশন PersistentDataBlockService এ রয়েছে। টেস্ট হারনেস মোড TestHarnessModeService এ ইমপ্লিমেন্ট করা হয়েছে।
টেস্ট হারনেস মোডের ডিফল্ট বাস্তবায়ন, adb কী-গুলোকে একটি স্থায়ী পার্টিশনে সাময়িকভাবে সংরক্ষণ করার জন্য ফ্যাক্টরি রিসেট প্রোটেকশনের মতোই একই স্টোরেজ মেকানিজম ব্যবহার করে। যদি টেস্ট ডিভাইসটিতে ফ্যাক্টরি রিসেট প্রোটেকশনসহ একটি স্থায়ী পার্টিশন আগে থেকেই প্রয়োগ করা থাকে, তবে এই ফিচারটি সমর্থন করার জন্য খুব সামান্য বা কোনো কাজই করার প্রয়োজন হয় না।
যেসব OEM-এর পারসিস্টেন্ট পার্টিশন সেট আপ করা নেই, তাদের TestHarnessModeService চালানোর আগে PersistentDataBlockManagerInternal ইমপ্লিমেন্ট করতে হবে।
টেস্ট হারনেস মোডের অবস্থা যাচাই করুন
যখন টেস্ট হারনেস মোড সক্রিয় থাকে, তখন ActivityManager.isRunningInUserTestHarness() true রিটার্ন করে।
রান টেস্ট হারনেস মোড
টেস্ট হারনেস মোড চালু করলে ডিভাইস থেকে সমস্ত ডেটা মুছে যায় এবং ডিভাইসটি পরীক্ষার জন্য প্রস্তুত হয়। এর মানে হলো, ডিভাইসের যে সমস্ত অংশ পরীক্ষায় বাধা সৃষ্টি করতে পারে (যেমন অটো-সিঙ্কিং অ্যাকাউন্ট, প্যাকেজ যাচাইকরণ এবং স্বয়ংক্রিয় আপডেট) সেগুলি ডিফল্টরূপে নিষ্ক্রিয় থাকে, কিন্তু ব্যবহারকারী সেগুলি পুনরায় সক্রিয় করতে পারেন।
টেস্ট হারনেস মোড চালু করতে adb কমান্ডটি চালান:
adb shell cmd testharness enable