زاحف التطبيقات
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

استخدم أداة زاحف التطبيقات، وهي جزء من Jetpack، لاختبار
تطبيقك بدون الحاجة إلى كتابة أي رموز أو صيانتها.
يعمل الزاحف جنبًا إلى جنب مع تطبيقك، ويُصدر الإجراءات تلقائيًا.
(النقر والتمرير السريع وما إلى ذلك) لاستكشاف مساحة حالة تطبيقك.
ينتهي الزحف تلقائيًا عندما لا يكون هناك المزيد من الإجراءات الفريدة
تنفيذه، أو تعطُّل التطبيق أو الوصول إلى المهلة التي تحدّدها.
من السهل إجراء الاختبارات باستخدام الزاحف لأنّه لا يتوفّر رمز برمجي يجب كتابته أو صيانته.
علاوة على ذلك، يمكنك تشغيله على مجموعة متنوعة من الأجهزة للبحث عن الأعطال أو
أو مشكلات، أو مشكلات في الأداء. عادةً، من الجيد استخدام
خدمة مستنِدة إلى السحابة الإلكترونية مثل اختبار Firebase
الميزة الاختبارية لاختبار مجموعات متعدّدة
من أحجام الشاشة وإعدادات الأجهزة بسهولة وسرعة أكبر.
الجمهور المستهدَف
يستهدف زاحف التطبيقات مطوري البرامج الذين يريدون التأكد من أساسيات
بأقل قدر من التهيئة. بالإضافة إلى الصندوق العائم تمامًا
الاختبار، فيمكن أيضًا تهيئة الزاحف لتقديم إدخالات محددة،
مثل بيانات اعتماد تسجيل الدخول أو الروابط المؤدية إلى صفحات في التطبيق.
الخطوات الأولى
قبل البدء، تأكّد من أنّك تستخدم إصدارًا حديثًا من حزمة تطوير البرامج (SDK) لنظام التشغيل Android.
يتضمّن ذلك استوديو Android.
في حال تثبيت حزمة تطوير برامج (SDK) مستقلة لنظام التشغيل Android، تأكَّد من أنّها تتضمن أحدث إصدار.
وأحدث أدوات التصميم وأدوات المنصة.
بعد ذلك، يمكنك تنزيل البرنامج الثنائي للزاحف
الأرشفة.
بعد ذلك، ابدأ تشغيل المحاكي أو توصيل جهازًا فعليًا باستخدام كابل USB.
تأكَّد من اتصال الجهاز من خلال تنفيذ الأمر التالي:
adb devices
لاستدعاء الزاحف، قم أولاً باستخراج الأرشيف إلى دليل
خِيَار. من هذا الدليل، استدعِ الزاحف باستخدام الأمر التالي:
java -jar crawl_launcher.jar --apk-file path/to/my/app.apk --android-sdk path/to/my/android/sdk
خيارات الزاحف
يمكنك استخدام الخيارات التالية لاستدعاء الزاحف:
Option | الوصف |
--android-sdk path
|
تُحدِّد المسار إلى حزمة تطوير البرامج (SDK) لنظام التشغيل Android.
هذه علامة مطلوبة.
|
--apk-file file
|
تُحدِّد المسار إلى حزمة APK لتطبيقك، والتي يثبّتها برنامج الزحف ويزحف إليها بعد ذلك.
هذه علامة مطلوبة إذا لم يتم تحديد السمة --app-package-name .
|
--app-package-name name
|
تُحدِّد اسم حزمة تطبيقك. استخدِم هذا الخيار إذا سبق أن تم تثبيت التطبيق.
على الجهاز بدون الحاجة إلى إعادة تثبيته.
هذه علامة مطلوبة إذا لم يتم تحديد السمة --apk-file .
|
--key-store path
|
تُحدِّد المسار إلى ملف تخزين المفاتيح الذي يتضمّن تطبيقك وحِزم APK للزاحف. استخدام هذا الخيار
عندما يتطلب تطبيقك توقيعًا محددًا ليعمل بشكل سليم.
|
--key-store-password password
|
تُحدِّد كلمة المرور لملف تخزين المفاتيح الذي قدّمته لخيار --key-store .
هذه علامة مطلوبة في حال تحديد السمة --key-store .
|
--timeout-sec timeout
|
تحدّد مهلة الزحف بالثواني. إذا لم يتم تحديده، يتوقف الزحف بعد 60 يومًا.
ثوانٍ.
|
المشاكل المعروفة
تعذّر حذف ملفات التوقيع الأصلية
قبل بدء الزحف، قد تظهر لمستخدمي JDK 9 رسالة الخطأ التالية:
androidx.test.tools.crawler.launcher.exceptions.ApkSigningException: Failed to delete original signature files
إذا واجهت هذا السلوك، ننصحك باستخدام الإصدار 8 أو +10 من JDK. لمزيد من المعلومات،
معلومات حول هذه المشكلة، راجع
خطأ JDK 9.
تمكّن بعض المستخدمين من حلّ المشكلة من خلال إعادة إنشاء حزمة APK باستخدام إصدار محدَّث
في "استوديو Android"
مصادر إضافية
لمزيد من المعلومات عن استخدام زاحف التطبيقات، يُرجى الرجوع إلى
الموارد التالية.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","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-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# App Crawler\n\nUse the App Crawler tool, part of [Jetpack](/jetpack), to automatically test\nyour app without the need to write or maintain any code.\n\nThe crawler runs alongside your app, automatically issuing actions\n(tap, swipe, etc.) to explore the state-space of your app.\nThe crawl terminates automatically when there are no more unique actions to\nperform, the app crashes, or a timeout you designate is reached.\n\nTesting with the crawler is easy because there's no code to write or maintain.\nMoreover, you can run it on a variety of devices to look for crashes, visual\nissues, or performance problems. Typically, it's a good idea to use a\ncloud-based service like [Firebase Test\nLab](https://firebase.google.com/docs/test-lab/) to test multiple combinations\nof screen sizes and hardware configurations more easily and quickly.\n\nTarget audience\n---------------\n\nApp Crawler is targeted at developers who want to ensure their app's basic\nfunctionality with minimal configuration. In addition to purely opaque-box\ntesting, the crawler can also be configured to provide specific inputs,\nsuch as login credentials or deep links.\n\nGetting started\n---------------\n\nBefore starting, make sure you have a recent version of the Android SDK.\nThis comes with [Android Studio](/studio).\nIf you install a standalone Android SDK, make sure it includes the latest\nlatest build tools and platform tools.\n\nThen, [download the crawler binary\narchive](https://dl.google.com/appcrawler/beta1/app-crawler.zip).\n\nNext, either start an emulator or connect a physical device using a USB cable.\nConfirm the device is connected by running the following command: \n\n```\nadb devices\n```\n\nTo invoke the crawler, first extract the archive to the directory of your\nchoice. From that directory, invoke the crawler using the following command: \n\n```\njava -jar crawl_launcher.jar --apk-file path/to/my/app.apk --android-sdk path/to/my/android/sdk\n```\n\nCrawler options\n---------------\n\nYou can use the following options to invoke the crawler:\n\n| Option | Description |\n|-----------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `--android-sdk `\u003cvar translate=\"no\"\u003epath\u003c/var\u003e | Specifies the path to your Android SDK. This is a **required** flag. |\n| `--apk-file `\u003cvar translate=\"no\"\u003efile\u003c/var\u003e | Specifies the path to your app APK, which App Crawler then installs and crawls. This is a **required** flag if `--app-package-name` isn't specified. |\n| `--app-package-name `\u003cvar translate=\"no\"\u003ename\u003c/var\u003e | Specifies the package name of your app. Use this option when your app is already installed on the device and no re-installation is required. This is a **required** flag if `--apk-file` isn't specified. |\n| `--key-store `\u003cvar translate=\"no\"\u003epath\u003c/var\u003e | Specifies the path to the keystore that signs your app and crawler APKs. Use this option when your app requires a specific signature to function properly. |\n| `--key-store-password `\u003cvar translate=\"no\"\u003epassword\u003c/var\u003e | Specifies the password for the keystore you provided for `--key-store` option. This is a **required** flag if `--key-store` is specified. |\n| `--timeout-sec `\u003cvar translate=\"no\"\u003etimeout\u003c/var\u003e | Specifies the timeout for your crawl in seconds. If not specified, the crawl stops after 60 seconds. |\n\nKnown issues\n------------\n\n**Failed to delete original signature files**\n\nPrior to the start of the crawl, JDK 9 users may see this error message: \n\n```\nandroidx.test.tools.crawler.launcher.exceptions.ApkSigningException: Failed to delete original signature files\n```\n\nIf you experience this behavior, we recommend using JDK 8 or 10+. For more\ninformation on this issue, see this\n[JDK 9 bug](https://bugs.openjdk.java.net/browse/JDK-8184940).\nSome users have fixed the issue by rebuilding their APK using an updated version\nof Android Studio.\n\nAdditional resources\n--------------------\n\nFor more information about using App Crawler, consult the\nfollowing resources.\n\n- [Firebase Test Lab Robo Test](https://firebase.google.com/docs/test-lab/android/robo-ux-test) contains detailed documentation as well as instructions for how to run crawler tests in the cloud."]]