از 27 مارس 2025، توصیه می کنیم از android-latest-release به جای aosp-main برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
Test Harness Mode یک ویژگی است که در اندروید 10 برای توسعه دهندگان برنامه های شخص ثالث که مایل به خودکارسازی دستگاه یا ناوگانی از دستگاه ها هستند، اضافه شده است. این ویژگی روشی را برای پاک کردن تمام دادههای کاربر در دستگاه Android، حفظ کلیدهای ADB و رد شدن از تمام صفحههای راهاندازی برای اولین بار ارائه میکند. این به کاربر امکان میدهد تا بلافاصله پس از راهاندازی، بدون هیچ گونه تعامل دستی، یک تست رابط کاربری را اجرا کند.
سفارشی سازی
با علامت زدن ActivityManager.isRunningInUserTestHarness() می توانید تعیین کنید که آیا دستگاهی در حالت Test Harness Mode قرار دارد یا خیر. سفارشی سازی ها را به حداقل برسانید. محدود به مواردی مانند پرش از صفحههای راهاندازی (روی صفحهکلید یا جادوگر راهاندازی) که آزمایشهای رابط کاربری را شکست میدهند یا به تعامل دستی نیاز دارند.
اجرای پیشفرض Test Harness Mode از مکانیزم ذخیرهسازی مشابه حفاظت بازنشانی کارخانه برای ذخیره موقت کلیدهای adb در یک پارتیشن دائمی استفاده میکند. اگر یک پارتیشن دائمی با محافظت بازنشانی کارخانه از قبل بر روی دستگاه آزمایشی پیادهسازی شده باشد، برای پشتیبانی از این ویژگی نیازی به کار چندانی نیست.
OEM هایی که پارتیشن دائمی تنظیم نشده اند، باید قبل از اجرای TestHarnessModeServicePersistentDataBlockManagerInternal را پیاده سازی کنند.
وضعیت حالت مهار تست را بررسی کنید
وقتی Test Harness Mode فعال است، ActivityManager.isRunningInUserTestHarness()true را برمی گرداند.
حالت مهار تست را اجرا کنید
فعال کردن Test Harness Mode همه دادهها را از دستگاه پاک میکند و دستگاه را برای آزمایش تنظیم میکند. این بدان معناست که تمام قسمتهایی از دستگاه که میتواند در آزمایش اختلال ایجاد کند (مانند همگامسازی خودکار حسابها، تأیید بسته و بهروزرسانی خودکار) همه بهطور پیشفرض غیرفعال هستند اما کاربر میتواند آنها را دوباره فعال کند.
دستور adb را برای فعال کردن Test Harness Mode اجرا کنید:
adb shell cmd testharness enable
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Implement Test Harness Mode\n\nTest Harness Mode is a feature added in Android 10 for\nthird-party app developers that wish\nto automate a device or a fleet of devices. The feature provides a method to wipe *all*\nuser data on an Android device, retain ADB keys, and skip all first-time setup screens. This enables\nthe user to run a UI test immediately after startup without any manual interaction.\n| **Note:** Test Harness Mode is different from TradeFed Test Harness. Don't use it when running CTS test.\n\nCustomization\n-------------\n\nYou can determine if a device is in Test Harness Mode by checking\n`ActivityManager.isRunningInUserTestHarness()`. Keep customizations to a minimum;\nlimit to things like skipping setup screens (on the keyboard or setup wizard) that would break\nUI tests or require manual interaction.\n\nImplementation\n--------------\n\nThe default implementation of [`PersistentDataBlockManagerInternal`](https://android.googlesource.com/platform/frameworks/base/+/android16-release/services/core/java/com/android/server/pdb/PersistentDataBlockManagerInternal.java)\nis in [`PersistentDataBlockService`](https://android.googlesource.com/platform/frameworks/base/+/android16-release/services/core/java/com/android/server/pdb/PersistentDataBlockService.java).\nTest Harness Mode is implemented in [`TestHarnessModeService`](https://android.googlesource.com/platform/frameworks/base/+/android16-release/services/core/java/com/android/server/testharness/TestHarnessModeService.java).\n\nThe default implementation of Test Harness Mode uses the same storage mechanism as\nfactory reset protection to store the adb keys temporarily in a persistent partition. If a\npersistent partition with factory reset protection is already implemented on the test device,\nlittle to no work is necessary to support the feature.\n\nOEMs that don't have a persistent partition set up need to implement\n`PersistentDataBlockManagerInternal` before running\n`TestHarnessModeService`.\n\nCheck the status of Test Harness Mode\n-------------------------------------\n\nWhen Test Harness Mode is enabled,\n`ActivityManager.isRunningInUserTestHarness()` returns `true`.\n\nRun Test Harness Mode\n---------------------\n\nEnabling Test Harness Mode wipes all data from the device and sets up the device for\ntesting. This means that all parts of the device that could interfere with testing (such as\nauto-syncing accounts, package verification, and automatic updates) are all disabled by default\nbut the user can reenable them.\n\nRun the `adb` command to enable Test Harness Mode: \n\n```\nadb shell cmd testharness enable\n```"]]