Android Debug Bridge (adb
) عبارة عن أداة سطر أوامر متعددة الاستخدامات تتيح لك التواصل مع أحد الأجهزة. يسهِّل الأمر adb
تنفيذ مجموعة متنوعة من الإجراءات على الأجهزة، مثل تثبيت التطبيقات
وتصحيح الأخطاء. يوفّر adb
إمكانية الوصول إلى واجهة أوامر Unix التي يمكنك استخدامها لتشغيل مجموعة متنوعة من الأوامر على أحد الأجهزة. وهو برنامج خادم عميل يتضمن ثلاثة مكونات:
- برنامج يرسل الأوامر. يعمل العميل على جهاز التطوير. يمكنك استدعاء برنامج من الوحدة الطرفية لسطر الأوامر من خلال إصدار أمر
adb
. - برنامج خفي (adbd) ينفذ الأوامر على الجهاز. يعمل البرنامج الخفي كعملية في الخلفية على كل جهاز.
- خادم يدير الاتصال بين العميل والبرنامج الخفي يعمل الخادم كعملية في الخلفية على جهاز التطوير.
تم تضمين adb
في حزمة أدوات نظام Android SDK Platform. نزِّل هذه
الحزمة باستخدام أداة إدارة حِزم تطوير البرامج (SDK) التي تعمل
على تثبيتها في android_sdk/platform-tools/
. إذا كنت تريد حزمة "أدوات النظام الأساسي" (Platform Tools)
لحزمة تطوير البرامج (SDK) المستقلة لنظام التشغيل Android، يمكنك تنزيلها من هنا.
للاطّلاع على معلومات حول ربط جهاز لاستخدامه على adb
، بما في ذلك طريقة استخدام "مساعد الاتصال" لتحديد المشاكل الشائعة وحلّها، راجِع تشغيل التطبيقات على جهاز.
آلية عمل Adb
عند بدء برنامج adb
، يتحقّق العميل أولاً مما إذا كانت هناك
عملية خادم adb
قيد التشغيل. إذا لم يحدث ذلك، يبدأ الجهاز عملية الخادم.
عند بدء تشغيل الخادم، يرتبط بمنفذ TCP المحلي 5037 ويستجيب للأوامر المُرسَلة من
برامج adb
.
ملاحظة: يستخدم جميع عملاء adb
المنفذ 5037 للاتصال بخادم adb
.
ويُعِدّ الخادم بعد ذلك الاتصالات بجميع الأجهزة قيد التشغيل.
وهي تحدد موقع الأجهزة المحاكية عن طريق فحص المنافذ ذات الأرقام الفردية في النطاق الذي يتراوح بين 5555 و5585، وهو النطاق الذي تستخدمه أول 16 محاكيًا. عندما يعثر الخادم على البرنامج الخفي لـ adb
(adbd)، يجري الخادم إعداد اتصال بهذا المنفذ.
يستخدم كل محاكي زوجًا من المنافذ التسلسلية، وهو منفذ زوجي
لاتصالات وحدة التحكّم، ومنفذًا بأرقام فردية لاتصالات adb
. على سبيل المثال:
المحاكي 1، وحدة التحكم: 5554
المحاكي 1، adb
: 5555
المحاكي 2، وحدة التحكم: 5556
المحاكي 2، adb
: 5557
وما إلى ذلك.
وكما هو موضّح، فإنّ المحاكي المرتبط بـ adb
على المنفذ 5555 هو نفسه المحاكي
الذي تسمع وحدة التحكّم فيه على المنفذ 5554.
بعد إعداد الخادم للاتصالات بجميع الأجهزة، يمكنك استخدام طلبات adb
للوصول إلى تلك الأجهزة. يمكنك التحكّم في أي جهاز من أي برنامج أو من نص برمجي لأنّ الخادم يدير الاتصالات بالأجهزة ويتعامل مع
الأوامر من عدة عملاء adb
.
تفعيل تصحيح الأخطاء عبر Adb على جهازك
لاستخدام أداة Adb مع جهاز متصل عبر USB، يجب تفعيل تصحيح أخطاء الجهاز عبر USB في إعدادات نظام الجهاز ضمن خيارات المطوّرين. في نظام التشغيل Android 4.2 (المستوى 17 من واجهة برمجة التطبيقات) والإصدارات الأحدث، تكون شاشة خيارات المطوّرين مخفية تلقائيًا. لإظهارها، عليك تفعيل خيارات المطوّرين.
يمكنك الآن توصيل جهازك باستخدام كابل USB. يمكنك التحقّق من أنّ جهازك متصل من خلال تنفيذ adb devices
من الدليل android_sdk/platform-tools/
. إذا كان الجهاز متصلاً، سيظهر اسم الجهاز على أنّه "جهاز".
ملاحظة: عند ربط جهاز يعمل بالإصدار 4.2.2 من نظام التشغيل Android (المستوى 17 لواجهة برمجة التطبيقات) أو إصدار أحدث، يعرض النظام مربّع حوار يسألك عما إذا كان سيتم قبول مفتاح RSA الذي يتيح تصحيح الأخطاء من خلال هذا الكمبيوتر. تحمي آلية الأمان هذه أجهزة المستخدمين لأنّها تضمن عدم إمكانية تنفيذ تصحيح أخطاء USB وأوامر أداة adb الأخرى، ما لم تتمكن من فتح قفل الجهاز والموافقة على مربّع الحوار.
لمزيد من المعلومات حول الاتصال بجهاز عبر USB، اقرأ تشغيل التطبيقات على جهاز.
الاتصال بجهاز عبر Wi-Fi
ملاحظة: لا تنطبق التعليمات أدناه على أجهزة Wear التي تعمل بالإصدار Android 11 (المستوى 30 من واجهة برمجة التطبيقات). راجِع دليل تصحيح الأخطاء في تطبيق Wear OS للحصول على مزيد من المعلومات.
يتيح الإصدار Android 11 (المستوى 30 لواجهة برمجة التطبيقات) والإصدارات الأحدث نشر تطبيقك وتصحيح الأخطاء فيه لاسلكيًا من محطة العمل باستخدام Android Debug Bridge (adb). على سبيل المثال، يمكنك نشر تطبيقك الذي يمكن تصحيح الأخطاء فيه على عدة أجهزة بعيدة بدون الحاجة إلى توصيل جهازك فعليًا عبر USB. يغنيك ذلك عن التعامل مع مشاكل اتصال USB الشائعة، مثل تثبيت برنامج التشغيل.
قبل البدء في استخدام ميزة "تصحيح الأخطاء اللاسلكي"، اتّبِع الخطوات التالية:
-
تأكَّد من اتصال محطة العمل والجهاز بالشبكة اللاسلكية نفسها.
-
تأكَّد من أنّ جهازك يعمل بالإصدار 11 من نظام التشغيل Android (المستوى 30 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث على الهاتف، أو الإصدار Android 13 (المستوى 33 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث لأجهزة التلفزيون وWearOS. لمزيد من المعلومات، راجِع التحقّق من إصدار Android على جهازك وتحديثه.
-
في حال استخدام بيئة التطوير المتكاملة (IDE)، تأكَّد من تثبيت أحدث إصدار من "استوديو Android". يمكنك تنزيله هنا.
-
في محطة العم��، عليك التحديث إلى أحدث إصدار من أدوات النظام الأساسي لحزمة تطوير البرامج (SDK).
لاستخدام ميزة "تصحيح الأخطاء اللاسلكي"، عليك إقران جهازك بمحطة العمل باستخدام رمز استجابة سريعة أو رمز إقران. يجب أن تكون محطة العمل والجهاز متصلَين بالشبكة اللاسلكية نفسها. للاتصال بجهازك، يُرجى اتّباع الخطوات التالية:
-
فعِّل خيارات المطوّرين على جهازك.
-
افتح "استوديو Android" واختَر إقران الأجهزة باستخدام شبكة Wi-Fi من قائمة إعدادات التشغيل.
ستظهر نافذة إقران الأجهزة عبر Wi-Fi كما هو موضّح في الشكل 2.
-
على جهازك، انقر على تصحيح الأخطاء اللاسلكي وأقرِن جهازك:
-
لإقران جهازك باستخدام رمز استجابة سريعة، اختَر إقران الجهاز باستخدام رمز الاستجابة السريعة وامسح رمز الاستجابة السريعة الذي تم الحصول عليه من النافذة المنبثقة إقران الأجهزة عبر شبكة Wi-Fi كما هو موضّح في الشكل 2.
-
لإقران جهازك باستخدام رمز إقران، اختَر إقران الجهاز باستخدام رمز الإقران من النافذة المنبثقة إقران الأجهزة عبر شبكة Wi-Fi. على جهازك، اختَر الإقران باستخدام رمز الإقران ودوِّن الرمز المكوَّن من ستة أرقام. بعد ظهور جهازك في نافذة إقران الأجهزة عبر Wi-Fi، يمكنك اختيار إقران وإدخال الرمز المكوَّن من ستة أرقام والمعروض على جهازك.
-
-
بعد إقران جهازك، يمكنك محاولة نشر تطبيقك على جهازك.
لإقران جهاز مختلف أو حذف بيانات الجهاز الحالي على محطة العمل، انتقِل إلى تصحيح الأخطاء اللاسلكي على جهازك. انقر على اسم محطة العمل ضمن الأجهزة المقترنة واختَر حذف.
-
إذا أردت تفعيل ميزة "تصحيح الأخطاء اللاسلكي" وإيقافها بسرعة، يمكنك استخدام مربّعات مطوّري البرامج في الإعدادات السريعة من أجل تصحيح الأخطاء اللاسلكي، ويمكنك العثور عليه في خيارات المطوّرين > مربعات مطوّري الإعدادات السريعة.
اتصال Wi-Fi باستخدام سطر الأوامر
يمكنك بدلاً من ذلك اتّباع الخطوات التالية للاتصال بجهازك باستخدام سطر الأوامر بدون "استوديو Android":
-
فعِّل خيارات المطوّرين على جهازك، كما هو موضَّح سابقًا.
-
فعِّل تصحيح الأخطاء اللاسلكي على جهازك كما هو موضَّح سابقًا.
-
في محطة العمل، افتح نافذة طرفية وانتقِل إلى
android_sdk/platform-tools
. -
يمكنك العثور على عنوان IP ورقم المنفذ ورمز الإقران من خلال اختيار إقران الجهاز باستخدام رمز الإقران. دوِّن عنوان IP ورقم المنفذ ورمز الإقران المعروضة على الجهاز.
-
على الوحدة الطرفية في محطة العمل، شغِّل "
adb pair ipaddr:port
". استخدِم عنوان IP ورقم المنفذ المذكور أعلاه. -
أدخِل رمز الإقران، كما هو موضّح أدناه، عندما يُطلب منك ذلك.
حل مشاكل الاتصال اللاسلكي
إذا كنت تواجه مشاكل في الاتصال بجهازك لاسلكيًا، جرِّب الخطوات التالية لتحديد المشاكل وحلّها.
التحقق مما إذا كانت محطة العمل والجهاز يلبيان المتطلبات الأساسية
تأكَّد من أنّ محطة العمل والجهاز تستوفيان المتطلبات الأساسية الواردة في بداية هذا القسم.
البحث عن المشاكل المعروفة الأخرى
في ما يلي قائمة بالمشاكل المعروفة الحالية في ميزة "تصحيح الأخطاء اللاسلكي" (باستخدام adb أو "استوديو Android") وكيفية حلّها:
-
تعذُّر الاتصال بشبكة Wi-Fi: قد تحظر شبكات Wi-Fi الآمنة، مثل شبكات Wi-Fi التابعة للشركة، اتصالات بروتوكول p2p ولا تسمح لك بالاتصال عبر شبكة Wi-Fi. جرِّب الاتصال باستخدام كاب�� أو شبكة Wi-Fi أخرى (غير تابعة للشركة). يتوفّر الاتصال اللاسلكي باستخدام
adb connect ip:port
من خلال tcp/ip (بعد اتصال USB مبدئي) أحد الخيارات الأخرى، وذلك في حال كان خيار اللجوء إلى شبكة غير تابعة للشركة متاحًا. -
في بعض الأحيان يتم إيقاف ميزة "
adb
عبر شبكة Wi-Fi" تلقائيًا: يمكن أن يحدث ذلك إذا بدّل الجهاز شبكات Wi-Fi أو انقطع الاتصال بالشبكة. لحل هذه المشكلة، عليك إعادة الاتصال بالشبكة. -
تعذُّر ربط الجهاز بعد الإقران: يعتمد الجهاز
adb
على نظام أسماء النطاقات mDNS لاكتشاف الأجهزة المقترنة والاتصال بها تلقائيًا. في حال كانت إعدادات الشبكة أو الجهاز لا تتوافق مع mDNS أو تم إيقافها، عليك الاتصال بالجهاز يدويًا باستخدامadb connect ip:port
.
يمكنك الاتصال لاسلكيًا باستخدام أحد الأجهزة بعد الاتصال الأولي عبر USB (يتوفّر هذا الخيار فقط على نظام التشغيل Android 10 والإصدارات الأقدم).
ملاحظة: ينطبق سير العمل هذا أيضًا على نظام التشغيل Android 11 (والإصدارات الأحدث). نودّ تذكيرك بأنّ هذا الإجراء يتضمّن أيضًا اتصالاً *أوليًا* عبر جهاز USB.
ملاحظة: لا تنطبق التعليمات التالية على الأجهزة التي تعمل بنظام التشغيل Android 10 (المستوى 29 لواجهة برمجة التطبيقات) أو الإصدارات الأقدم منه. للحصول على مزيد من المعلومات، راجِع دليل تصحيح الأخطاء في تطبيق Wear OS.
يتواصل adb
عادةً مع الجهاز عبر USB، ويمكنك أيضًا استخدام adb
عبر Wi-Fi. لربط جهاز يعمل بالإصدار 10 من نظام التشغيل Android (المستوى 29 من واجهة برمجة التطبيقات) أو بإصدار أقدم،
اتّبِع الخطوات الأولية التالية عبر USB:
-
عليك توصيل جهاز Android وجهاز الكمبيوتر المضيف
adb
بشبكة Wi-Fi مشتركة. - وصِّل الجهاز بالكمبيوتر المضيف باستخدام كابل USB.
-
اضبط الجهاز المستهدف على الاستماع إلى اتصال TCP/IP على المنفذ 5555:
adb tcpip 5555
- افصِل كابل USB من الجهاز الهدف.
- ابحث عن عنوان IP لجهاز Android. على سبيل المثال، على جهاز Nexus، يمكنك العثور على عنوان IP في الإعدادات > حول الجهاز اللوحي (أو حول الهاتف) > الحالة > عنوان IP.
-
اتصِل بالجهاز باستخدام عنوان IP الخاص به:
adb connect device_ip_address:5555
-
تأكَّد من اتصال الكمبيوتر المضيف بالجهاز المستهدَف:
$ adb devices List of devices attached device_ip_address:5555 device
ملاحظة: يجب الانتباه إلى أنّ جميع نقاط
الوصول ليست مناسبة. قد تحتاج إلى استخدام نقطة وصول
تم ضبط جدار الحماية لها بشكل صحيح لدعم adb
.
تم ربط جهازك الآن بشبكة "adb
".
في حال فقدان اتصال adb
بجهازك:
- تأكَّد من أنّ المضيف لا يزال متصلاً بشبكة Wi-Fi نفسها التي يتصل بها جهاز Android.
-
أعِد الاتصال من خلال تنفيذ خطوة
adb connect
مرة أخرى. -
إذا لم تنجح هذه الطريقة، أعِد ضبط مضيف
adb
:adb kill-server
ثم ابدأ من جديد.
طلب بحث للأجهزة
قبل إصدار أوامر adb
، من المفيد معرفة نسخ الجهاز المتصلة بخادم adb
. إنشاء قائمة بالأجهزة المتصلة باستخدام الأمر devices
:
adb devices -l
استجابةً لذلك، يطبع adb
معلومات الحالة هذه لكل جهاز:
- الرقم التسلسلي: ينشئ
adb
سلسلة لتحديد الجهاز بشكل فريد من خلال رقم المنفذ الخاص به. في ما يلي مثال على الرقم التسلسلي:emulator-5554
- الحالة: يمكن أن تكون حالة اتصال الجهاز واحدة مما يلي:
offline
: الجهاز غير متصل بشبكةadb
أو لا يستجيب.device
: الجهاز متصل بخادمadb
. يُرجى العِلم أنّ هذه الحالة لا تشير إلى أنّ نظام Android تم تشغيله بالكامل وقيد التشغيل، لأنّ الجهاز يتصل بـadb
أثناء عملية تشغيل النظام. وهذه هي حالة تشغيل الجهاز بعد بدء تشغيله.no device
: ما مِن جهاز متصل.
- الوصف: في حال تضمين الخيار
-l
، سيُطلعك الأمرdevices
على طبيعة الجهاز، وتكون هذه المعلومات مفيدة عند ربط عدة أجهزة لتتمكّن من التفريق بينها.
يوضّح المثال التالي الأمر devices
والنتائج الخاصة به. هناك ثلاثة
أجهزة قيد التشغيل. يحتوي أول سطرين في القائمة على أدوات المحاكاة، والسطر الثالث عبارة عن جهاز
متصل بجهاز الكمبيوتر.
$ adb devices List of devices attached emulator-5556 device product:sdk_google_phone_x86_64 model:Android_SDK_built_for_x86_64 device:generic_x86_64 emulator-5554 device product:sdk_google_phone_x86 model:Android_SDK_built_for_x86 device:generic_x86 0a388e93 device usb:1-1 product:razor model:Nexus_7 device:flo
المحاكي غير مُدرَج
يتضمن الأمر adb devices
تسلسل أوامر بحالة الأحرف الزاوية يؤدي إلى عدم ظهور أدوات المحاكاة التي يتم تشغيلها في إخراج adb devices
على الرغم من ظهور أدوات المحاكاة على الكمبيوتر. يحدث ذلك في حال استيفاء جميع الشروط التالية:
- خادم
adb
ليس قيد التشغيل. - يمكنك استخدام الأمر
emulator
مع الخيار-port
أو-ports
مع قيمة منفذ ذات ترقيم فردي تتراوح بين 5554 و5584. - المنفذ ذو الأرقام الفردية الذي اخترته غير مشغول، لذلك يمكن إجراء اتصال المنفذ برقم المنفذ المحدّد، أو إذا كان مشغولاً، ينتقل المحاكي إلى منفذ آخر يستوفي المتطلبات في 2.
- وتبدأ تشغيل خادم
adb
بعد بدء المحاكي.
يمكنك تفادي هذا الموقف من خلال السماح للمحاكي باختيار منافذه الخاصة وعدم تشغيل أكثر من 16 محاكيًا في الوقت نفسه. ويمكنك أيضًا بدء تشغيل خادم adb
دائمًا قبل
استخدام الأمر emulator
، كما هو موضّح في الأمثلة التالية.
المثال 1: في تسلسل الأوامر التالي، يبدأ الأمر adb devices
بتشغيل خادم adb
، ولكن لا تظهر قائمة الأجهزة.
أوقِف خادم adb
وأدخِل الأوامر التالية بالترتيب المعروض. بالنسبة إلى اسم AVD،
وفّر اسم AVD صالحًا من نظامك. للحصول على قائمة بأسماء "متوسّط مدة المشاهدة"، اكتب emulator -list-avds
. يمكنك العثور على الأمر emulator
في الدليل android_sdk/tools
.
$ adb kill-server $ emulator -avd Nexus_6_API_25 -port 5555 $ adb devices List of devices attached * daemon not running. starting it now on port 5037 * * daemon started successfully *
المثال 2: في تسلسل الأوامر التالي، يعرض adb devices
قائمة الأجهزة لأنّ خادم adb
قد تم تشغيله أولاً.
للاطّلاع على المحاكي في إخراج adb devices
، يجب إيقاف خادم adb
، ثم إعادة تشغيله بعد استخدام الأمر emulator
وقبل استخدام الأمر adb devices
على النحو التالي:
$ adb kill-server $ emulator -avd Nexus_6_API_25 -port 5557 $ adb start-server $ adb devices List of devices attached emulator-5557 device
لمزيد من المعلومات حول خيارات سطر الأوامر في المحاكي، راجِع خيارات بدء تشغيل سطر الأوامر.
إرسال الأوامر إلى جهاز محدّد
وفي حال تشغيل أجهزة متعددة، يجب تحديد الجهاز المستهدف عند إصدار الأمر adb
.
لتحديد الهدف، اتبع الخطوات التالية:
- استخدِم الأمر
devices
للحصول على الرقم التسلسلي للهدف. - بعد الحصول على الرقم التسلسلي، استخدِم الخيار
-s
مع الأوامرadb
لتحديد الرقم التسلسلي.- إذا كنت ستصدر العديد من أوامر
adb
، يمكنك ضبط متغيّر بيئة$ANDROID_SERIAL
ليتضمّن الرقم التسلسلي بدلاً من ذلك. - وفي حال استخدام كل من
-s
و$ANDROID_SERIAL
، يلغي-s
$ANDROID_SERIAL
.
- إذا كنت ستصدر العديد من أوامر
في المثال التالي، يتم الحصول على قائمة بالأجهزة المتصلة، ثم استخدام الرقم التسلسلي لأحد الأجهزة لتثبيت "helloWorld.apk
" على هذا الجهاز:
$ adb devices List of devices attached emulator-5554 device emulator-5555 device 0.0.0.0:6520 device # To install on emulator-5555 $ adb -s emulator-5555 install helloWorld.apk # To install on 0.0.0.0:6520 $ adb -s 0.0.0.0:6520 install helloWorld.apk
ملاحظة: في حال إصدار أمر بدون تحديد جهاز مستهدَف عند توفّر أجهزة متعدّدة، يعرض adb
الخطأ "adb: أكثر من جهاز/محاكي واحد".
إذا كانت لديك عدة أجهزة متاحة ولكن جهاز محاكي واحد فقط،
يمكنك استخدام خيار -e
لإرسال الأوامر إلى المحاكي. إذا كانت هناك عدّة أجهزة متصلة بجهاز واحد فقط، استخدِم الخيار -d
لإرسال الأوامر إلى الجهاز.
تثبيت تطبيق
يمكنك استخدام ميزة adb
لتثبيت حِزمة APK على محاكي أو جهاز متصل باستخدام الأمر install
:
adb install path_to_apk
عليك استخدام الخيار -t
مع الأمر install
عند تثبيت حِزمة APK تجريبية. لمزيد من المعلومات،
يُرجى الاطّلاع على -t
.
لتثبيت حِزم APK متعدّدة، استخدِم install-multiple
. ويكون هذا الإجراء مفيدًا إذا كنت تنزِّل جميع
حِزم APK لجهاز معيّن لتطبيقك من Play Console وكنت تريد تثبيتها على
محاكي أو جهاز فعلي.
للحصول على مزيد من المعلومات حول كيفية إنشاء ملف APK يمكنك تثبيته على مثيل جهاز/محاكي، يمكنك الاطلاع على إنشاء تطبيقك وتشغيله.
ملاحظة: إذا كنت تستخدم "استوديو Android"، لن تحتاج إلى استخدام adb
مباشرةً لتثبيت التطبيق على المحاكي أو الجهاز. بدلاً من ذلك، يعالج "استوديو Android"
حزمة التطبيق وكيفية تثبيته نيابةً عنك.
إعداد قاعدة إعادة توجيه المنفذ
استخدِم الأمر forward
لإعداد إعادة توجيه المنفذ العشوائي الذي
يعيد توجيه الطلبات على منفذ مضيف معيّن إلى منفذ مختلف على الجهاز.
في ما يلي مثال لإعداد إعادة توجيه منفذ المضيف 6100 إلى منفذ الجهاز 7100:
adb forward tcp:6100 tcp:7100
في ما يلي مثال لإعداد إعادة توجيه منفذ المضيف 6100 إلى local:logd:
adb forward tcp:6100 local:logd
قد يكون ذلك مفيدًا إذا كنت تحاول معرفة ما يتم إرساله إلى منفذ معيّن على الجهاز. ستتم كتابة جميع البيانات المُستلَمة في البرنامج الخفي لتسجيل النظام وسيتم عرضها في سجلات الجهاز.
نسخ الملفات من جهاز وإليه
استخدِم الأمرَين pull
وpush
لنسخ الملفات من الجهاز وإليه. على عكس الأمر install
الذي ينسخ ملف APK إلى مكان محدّد فقط، يتيح لك الأمران pull
وpush
نسخ الأدلة والملفات العشوائية إلى أي مكان على الجهاز.
لنسخ ملف أو دليل وأدلةه الفرعية من الجهاز، اتّبِع الخطوات التالية:
adb pull remote local
لنسخ ملف أو دليل وأدلةه الفرعية إلى الجهاز، اتّبِع الخطوات التالية:
adb push local remote
استبدِل local
وremote
بالمسارات إلى الملفات/الدليل المستهدف على جهاز التطوير (المحلي) وعلى الجهاز (عن بُعد). على سبيل المثال:
adb push myfile.txt /sdcard/myfile.txt
إيقاف خادم adb
في بعض الحالات، قد تحتاج إلى إنهاء عملية خادم adb
ثم إعادة تشغيله لحل المشكلة. على سبيل المثال، قد تكون هذه هي الحالة إذا لم يستجِب adb
للأمر.
لإيقاف خادم adb
، استخدِم الأمر adb kill-server
.
ويمكنك بعد ذلك إعادة تشغيل الخادم من خلال إصدار أي أمر adb
آخر.
إصدار أوامر adb
عليك إصدار أوامر adb
من سطر الأوامر على جهاز التطوير أو من نص برمجي باستخدام
ما يلي:
adb [-d | -e | -s serial_number] command
وإذا كان هناك محاكي واحد فقط قيد التشغيل أو تم توصيل جهاز واحد فقط، يتم إرسال الأمر adb
إلى ذلك الجهاز تلقائيًا. في حال تشغيل عدّة محاكيات و/أو توصيل عدة أجهزة، عليك استخدام خيار -d
أو -e
أو -s
لتحديد الجهاز المستهدَف الذي يجب توجيه الأمر إليه.
يمكنك الاطّلاع على قائمة مفصّلة بجميع أوامر adb
المتوافقة باستخدام الأمر التالي:
adb --help
أوامر واجهة الأوامر
يمكنك استخدام الأمر shell
لإصدار أوامر الجهاز من خلال adb
أو بدء واجهة برمجة تطبيقات تفاعلية. لإصدار أمر واحد، استخدِم الأمر shell
على النحو التالي:
adb [-d |-e | -s serial_number] shell shell_command
لبدء واجهة برمجة تطبيقات تفاعلية على جهاز، استخدِم الأمر shell
على النحو التالي:
adb [-d | -e | -s serial_number] shell
للخروج من واجهة برمجة تطبيقات تفاعلية، اضغط على Control+D
أو اكتب exit
.
يوفّر Android معظم أدوات سطر الأوامر المعتادة لـ Unix. للحصول على قائمة بالأدوات المتاحة، استخدِم الأمر التالي:
adb shell ls /system/bin
وتتوفر المساعدة لمعظم الأوامر من خلال الوسيطة --help
.
يتم توفير العديد من أوامر واجهة المستخدم من خلال toybox.
تتوفّر المساعدة العامة القابلة للتطبيق على جميع أوامر Toybox من خلال toybox --help
.
في الإصدار 23 من أدوات نظام Android الأساسي والإصدارات الأحدث، يتعامل adb
مع الوسيطات بالطريقة نفسها التي يتعامل بها الأمر ssh(1)
. لقد ساعد هذا التغيير في حلّ الكثير من المشاكل المتعلقة
بإدخال الأمر،
وأتاح له تنفيذ الأوامر التي تحتوي على أحرف وصفية
بشكل آمن، مثل adb install Let\'sGo.apk
. يعني هذا التغيير أنّه تم أيضًا تغيير طريقة تفسير أي أمر يحتوي على أحرف تعريف واجهة المستخدم.
على سبيل المثال، تم تغيير adb shell setprop key 'value'
إلى خطأ لأنّ
علامات الاقتباس المفردة ('
) يتم ابتلاعها من خلال الغلاف المحلي، وسيلاحظ الجهاز
adb shell setprop key value
. لجعل الأمر يعمل، يمكنك الاقتباس مرتين، مرة للواجهة المحلية والأخرى لواجهة الأوامر عن بُعد، كما هو الحال مع ssh(1)
. مثلاً: adb shell setprop key 'value'
راجِع أيضًا أداة سطر أوامر Logcat، وهي مفيدة لمراقبة سجلّ النظام.
مدير نشاط المكالمات
من خلال واجهة adb
، يمكنك إصدار أوامر باستخدام أداة "مدير النشاط" (am
) لتنفيذ إجراءات مختلفة للنظام، مثل بدء نشاط، وفرض إيقاف عملية، وبث هدف، وتعديل خصائص شاشة الجهاز، وغير ذلك.
أثناء استخدام واجهة الأوامر، تكون بنية am
كما يلي:
am command
يمكنك أيضًا إصدار أمر مدير النشاط مباشرةً من adb
بدون إدخال واجهة عن بُعد. على سبيل المثال:
adb shell am start -a android.intent.action.VIEW
الأمر | الوصف |
---|---|
start [options] intent
|
بدء Activity محدد من قِبل
intent . اطّلِع على مواصفات وسيطات الغرض. الخيارات هي:
|
startservice [options] intent
|
ابدأ تشغيل Service المحددة بواسطة
intent . اطّلِع على مواصفات وسيطات الغرض. الخيارات هي:
|
force-stop package
|
يمكنك فرض إيقاف كل البيانات المرتبطة بـ package .
|
kill [options] package
|
إيقاف جميع العمليات المرتبطة بـ package يؤدي هذا الأمر إلى إنهاء العمليات
الآمنة للقتل فقط بدون التأثير في تجربة المستخدم.
الخيارات هي:
|
kill-all
|
إنهاء جميع العمليات التي تتم في الخلفية |
broadcast [options] intent
|
إصدار هدف البث اطّلِع على مواصفات وسيطات الغرض. الخيارات هي:
|
instrument [options] component
|
يمكنك بدء التتبُّع باستخدام مثيل Instrumentation .
وتكون السمة component المستهدَفة عادةً بالصيغة test_package/runner_class . الخيارات هي:
|
profile start process file
|
بدء محلل الملفات الشخصية على process ، وكتابة النتائج في file .
|
profile stop process
|
إيقاف محلل الملفات الشخصية على process .
|
dumpheap [options] process file
|
عليك تفريغ جزء من الذاكرة في الرمز process ، ثم إرسال رسالة إلى file . الخيارات هي:
|
set-debug-app [options] package
|
ضبط التطبيق package على تصحيح الأخطاء الخيارات هي:
|
clear-debug-app
|
محو الحزمة السابقة التي تم ضبطها لتصحيح الأخطاء باستخدام "set-debug-app "
|
monitor [options]
|
يمكنك بدء تتبُّع الأعطال أو أخطاء ANR. الخيارات هي:
|
screen-compat {on | off} package
|
التحكّم في وضع توافق الشاشة في package .
|
display-size [reset | widthxheight]
|
إلغاء حجم عرض الجهاز.
يفيد هذا الأمر في اختبار تطبيقك على أحجام الشاشات المختلفة عن طريق محاكاة دقة شاشة صغيرة باستخدام جهاز ذي شاشة كبيرة، والعكس صحيح.
مثال: |
display-density dpi
|
إلغاء كثافة عرض الجهاز.
يفيد هذا الأمر في اختبار تطبيقك على كثافات شاشة مختلفة من خلال محاكاة بيئة شاشة عالية الكثافة باستخدام شاشة منخفضة الكثافة، والعكس صحيح.
مثال: |
to-uri intent
|
اطبع مواصفات intent المحددة كمعرّف موارد منتظم (URI). اطّلِع على مواصفات وسيطات الغرض. |
to-intent-uri intent
|
يجب طباعة مواصفات intent المحددة كمعرّف الموارد المنتظم (URI) intent: . اطّلِع على مواصفات وسيطات الغرض. |
مواصفات وسيطات الهدف
بالنسبة إلى أوامر مدير النشاط التي تستخدم الوسيطة intent
، يمكنك تحديد الغرض بالخيارات التالية:
مدير حزمة المكالمات (pm
)
من خلال واجهة adb
، يمكنك إصدار أوامر باستخدام أداة مدير الحزم (pm
) لتنفيذ الإجراءات وطلبات البحث على حِزم التطبيقات المثبَّتة على الجهاز.
أثناء استخدام واجهة الأوامر، تكون بنية pm
كما يلي:
pm command
يمكنك أيضًا إصدار أمر مدير حزم مباشرةً من adb
بدون إدخال واجهة عن بُعد. على سبيل المثال:
adb shell pm uninstall com.example.MyApp
الأمر | الوصف |
---|---|
list packages [options] filter
|
اطبع جميع الحِزم، ويمكنك اختياريًا طباعة
جميع الحِزم التي يحتوي اسم حزمتها على النص في filter . خيارات:
|
list permission-groups
|
طباعة كل مجموعات الأذونات المعروفة |
list permissions [options] group
|
اطبع جميع الأذونات المعروفة، اختياريًا فقط
تلك في group . خيارات:
|
list instrumentation [options]
|
إدراج جميع حِزم الاختبار خيارات:
|
list features
|
طباعة جميع ميزات النظام. |
list libraries
|
طباعة جميع المكتبات المتوافقة مع الجهاز الحالي |
list users
|
طباعة كافة المستخدمين على النظام. |
path package
|
طباعة المسار إلى حزمة APK الخاصة بـ package المحدّد
|
install [options] path
|
تثبيت حزمة محدَّدة من قِبل path على النظام خيارات:
|
uninstall [options] package
|
إزالة حزمة من النظام. خيارات:
|
clear package
|
حذف جميع البيانات المرتبطة بالحزمة. |
enable package_or_component
|
تمكين الحزمة أو المكون المحدد (يُكتب كـ "package/class"). |
disable package_or_component
|
إيقاف الحزمة أو المكوِّن المحدَّد (يُكتب كـ "package/class") |
disable-user [options] package_or_component
|
خيارات:
|
grant package_name permission
|
يمكنك منح إذن لأحد التطبيقات. على الأجهزة التي تعمل بنظام التشغيل Android 6.0 (المستوى 23 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يمكن أن يكون الإذن بأي إذن تم تعريفه في بيان التطبيق. على الأجهزة التي تعمل بالإصدار 5.1 من نظام التشغيل Android (المستوى 22 لواجهة برمجة التطبيقات) والإصدارات الأقدم، يجب أن يكون هناك إذن اختياري يحدّده التطبيق. |
revoke package_name permission
|
إبطال إذن من تطبيق. على الأجهزة التي تعمل بالإصدار 6.0 من نظام التشغيل Android (المستوى 23 من واجهة برمجة التطبيقات) والإصدارات الأحدث، يمكن أن يكون الإذن هو أي إذن تم تعريفه في بيان التطبيق. على الأجهزة التي تعمل بالإصدار 5.1 من نظام التشغيل Android (المستوى 22 لواجهة برمجة التطبيقات) والإصدارات الأقدم، يجب أن يكون هناك إذن اختياري يحدّده التطبيق. |
set-install-location location
|
تغيير موقع التثبيت التلقائي قيم الموقع الجغرافي:
ملاحظة: هذه الميزة مخصَّصة فقط لتصحيح الأخطاء. ويمكن أن يؤدي استخدام هذا الإعداد إلى تعطُّل التطبيقات وغيرها من السلوكيات غير المرغوب فيها. |
get-install-location
|
تعرِض هذه السمة موقع التثبيت الحالي. القيم المعروضة:
|
set-permission-enforced permission [true | false]
|
حدِّد ما إذا كان يجب فرض الإذن المحدَّد. |
trim-caches desired_free_space
|
اقتطع ملفات ذاكرة التخزين المؤقت لتصل إلى المساحة الخالية المحددة. |
create-user user_name
|
أنشئ مستخدمًا جديدًا باستخدام user_name المحدّد، واطبع معرّف المستخدم الجديد للمستخدم.
|
remove-user user_id
|
إزالة المستخدم الذي لديه user_id المحدّد، ما يؤدي إلى حذف جميع البيانات المرتبطة به
|
get-max-users
|
طباعة الحد الأقصى لعدد المستخدمين الذين يدعمهم الجهاز. |
get-app-links [options] [package]
|
يمكنك طباعة حالة إثبات ملكية النطاق للسمة package المحدّدة، أو لجميع الحِزم في حال عدم تحديد أي منها. يتم تعريف رموز الولاية على النحو التالي:
الخيارات هي:
|
reset-app-links [options] [package]
|
يمكنك إعادة ضبط حالة إثبات ملكية النطاق للحزمة المحدّدة أو لجميع الحِزم في حال عدم تحديد أي حزمة.
الخيارات هي:
|
verify-app-links [--re-verify] [package]
|
إعلان طلب إثبات ملكية جهاز package المحدَّد أو لجميع الطرود إذا لم يتم تحديد أي منها لا يتم إرسال الرسالة إلا في حال عدم تسجيل الحزمة أي رد من قبل.
|
set-app-links [--package package] state domains
|
يمكنك تحديد حالة النطاق لحزمة يدويًا. يجب أن تفصح الحزمة عن النطاق على أنّه "التحقّق التلقائي" لكي يعمل هذا النطاق. لن يُبلغ هذا الأمر عن حالات تعذُّر النطاقات التي تعذّر تطبيقها.
|
set-app-links-user-selection --user user_id [--package package]
enabled domains
|
يمكنك ضبط حالة اختيار المستخدم المضيف للحزمة يدويًا. يجب أن تعلن الحزمة عن النطاق لكي يعمل ذلك. لن يُبلغ هذا الأمر عن تعذُّر النطاقات التي تعذّر تطبيقها.
|
set-app-links-user-selection --user user_id [--package package]
enabled domains
|
يمكنك ضبط حالة اختيار المستخدم المضيف للحزمة يدويًا. يجب أن تعلن الحزمة عن النطاق لكي يعمل ذلك. لن يُبلغ هذا الأمر عن تعذُّر النطاقات التي تعذّر تطبيقها.
|
set-app-links-allowed --user user_id [--package package] allowed
|
يمكنك إيقاف/تفعيل إعداد معالجة الرابط الذي تم التحقق منه تلقائيًا لإحدى الحِزم.
|
get-app-link-owners --user user_id [--package package] domains
|
يمكنك طباعة مالكي نطاق معينين لمستخدم معين بترتيب أولوية منخفضة إلى عالية.
|
الاتصال بمدير سياسة الجهاز (dpm
)
لمساعدتك في تطوير تطبيقات إدارة الأجهزة واختبارها، أصدر
أوامر إلى أداة مدير سياسات الجهاز (dpm
). استخدِم الأداة للتحكّم في تطبيق المشرف النشط
أو تغيير بيانات حالة سياسة على الجهاز.
بنية dpm
أثناء استخدام واجهة الأوامر هي:
dpm command
يمكنك أيضًا إصدار أمر من "مدير سياسات الأجهزة" مباشرةً من adb
بدون إدخال واجهة عن بُعد:
adb shell dpm command
الأمر | الوصف |
---|---|
set-active-admin [options] component
|
لضبط component كمشرف نشط.
الخيارات هي:
|
set-profile-owner [options] component
|
ضبط component كمشرف نشط وحزمته كمالك للملف الشخصي لمستخدم حالي
الخيارات هي:
|
set-device-owner [options] component
|
يمكنك ضبط "component" كمشرف نشط وضبط الحزمة كمالك للجهاز.
الخيارات هي:
|
remove-active-admin [options] component
|
إيقاف مشرف نشط يجب أن يتضمّن التطبيق بيان
android:testOnly
في البيان. يؤدي هذا الأمر أيضًا إلى إزالة مالكي الأجهزة والملفات الشخصية.
الخيارات هي:
|
clear-freeze-period-record
|
يؤدي هذا الإجراء إلى محو سجلّ الجهاز الذي تم ضبطه مسبقًا لفترات إيقاف التحديثات التي يتم إجراؤها على تحديثات النظام عبر الهواء. ويفيد ذلك في تجنُّب قيود جدولة الجهاز عند تطوير التطبيقات التي تدير فترات تجميد البيانات. يُرجى الاطّلاع على
إدارة تحديثات النظام.
يتوفّر هذا الإعداد على الأجهزة التي تعمل بالإصدار 9.0 من نظام التشغيل Android (المستوى 28 من واجهة برمجة التطبيقات) والإصدارات الأحدث. |
force-network-logs
|
يمكنك إجبار النظام على تجهيز أي سجلات شبكة حالية لاستردادها من خلال وحدة التحكّم بسياسة الجهاز (DPC). في حال توفّر سجلّات للاتصال أو نظام أسماء النطاقات، ستتلقّى وحدة التحكّم بسياسة الجهاز (DPC)
onNetworkLogsAvailable()
معاودة الاتصال. راجِع تسجيل الأنشطة على الشبكة.
هذا الأمر مقيد بمعدل. يتوفّر هذا الإعداد على الأجهزة التي تعمل بالإصدار 9.0 من نظام التشغيل Android (المستوى 28 من واجهة برمجة التطبيقات) والإصدارات الأحدث. |
force-security-logs
|
فرض إتاحة أي سجلّات أمان حالية لوحدة التحكّم بسياسة الجهاز (DPC) على النظام في حال توفّر سجلّات، ستتلقّى وحدة التحكّم بسياسة الجهاز (DPC) رد الاتصال onSecurityLogsAvailable() . يُرجى الاطِّلاع على تسجيل نشاط أجهزة ال��ؤسسة.
هذا الأمر مقيد بمعدل. يتوفّر هذا الإعداد على الأجهزة التي تعمل بالإصدار 9.0 من نظام التشغيل Android (المستوى 28 من واجهة برمجة التطبيقات) والإصدارات الأحدث. |
أخذ لقطة شاشة
الأمر screencap
هو أداة مساعدة لأخذ لقطة شاشة لشاشة جهاز.
أثناء استخدام واجهة الأوامر، تكون بنية screencap
كما يلي:
screencap filename
لاستخدام screencap
من سطر الأوامر، أدخِل ما يلي:
adb shell screencap /sdcard/screen.png
في ما يلي مثال على جلسة لقطة شاشة باستخدام واجهة الأوامر adb
لأخذ لقطة الشاشة واستخدام الأمر pull
لتنزيل الملف من الجهاز:
$ adb shell shell@ $ screencap /sdcard/screen.png shell@ $ exit $ adb pull /sdcard/screen.png
تسجيل مقطع فيديو
الأمر screenrecord
هو أداة واجهة مستخدم لتسجيل عرض الأجهزة التي تعمل بالإصدار 4.4 من نظام التشغيل Android (المستوى 19 من واجهة برمجة التطبيقات) والإصدارات الأحدث. تسجل الأداة نشاط الشاشة في ملف MPEG-4. يمكنك استخدام هذا الملف لإنشاء فيديوهات ترويجية أو تدريبية أو لتصحيح الأخطاء والاختبار.
في واجهة الأوامر، استخدِم الصيغة التالية:
screenrecord [options] filename
لاستخدام screenrecord
من سطر الأوامر، أدخِل ما يلي:
adb shell screenrecord /sdcard/demo.mp4
أوقِف تسجيل الشاشة بالضغط على Control+C. في الحالات الأخرى، يتوقف التسجيل
تلقائيًا بعد ثلاث دقائق أو الحدّ الزمني الذي تضبطه --time-limit
.
لبدء تسجيل شاشة جهازك، شغِّل الأمر screenrecord
لتسجيل
الفيديو. بعد ذلك، شغِّل الأمر pull
لتنزيل الفيديو من الجهاز إلى الكمبيوتر
المضيف. إليك مثال على جلسة تسجيل:
$ adb shell shell@ $ screenrecord --verbose /sdcard/demo.mp4 (press Control + C to stop) shell@ $ exit $ adb pull /sdcard/demo.mp4
يمكن للأداة screenrecord
التسجيل بأي درجة دقة ومعدل نقل بيانات متوافقَين حسب ما تطلبه، مع الاحتفاظ بنسبة العرض إلى الارتفاع لشاشة الجهاز. تسجّل الأداة درجة دقة واتجاه الشاشة الأصلية تلقائيًا، على أن تبلغ مدتها ثلاث دقائق كحد أقصى.
حدود الأداة screenrecord
:
- لا يتم تسجيل الصوت مع ملف الفيديو.
- لا تتوفر ميزة تسجيل الفيديو على الأجهزة التي تعم�� بنظام التشغيل Wear OS.
- قد لا تتمكن بعض الأجهزة من التسجيل بدرجة دقة العرض الأصلية. إذا واجهت مشاكل في تسجيل الشاشة، جرِّب استخدام درجة دقة أقل للشاشة.
- لا يتوفّر تدوير الشاشة أثناء التسجيل. في حال تدوير الشاشة أثناء التسجيل، يتم اقتطاع جزء من الشاشة في التسجيل.
الخيارات | الوصف |
---|---|
--help
|
عرض بنية الأمر وخياراته |
--size widthxheight
|
اضبط حجم الفيديو: 1280x720 . القيمة التلقائية هي درجة دقة العرض الأصلية للجهاز (إذا كانت متوافقة)، أو 1280×720 في حال عدم توفّرها. للحصول على أفضل النتائج، استخدِم حجمًا متوافقًا
مع برنامج الترميز المتقدّم للفيديو (AVC) على جهازك. |
--bit-rate rate |
عيِّن معدل نقل بيانات الفيديو بالميغابت في الثانية. القيمة التلقائية هي 20 ميغابت في الثانية.
يمكنك زيادة معدل نقل البيانات لتحسين جودة الفيديو، ولكن يؤدي ذلك إلى زيادة حجم ملفات الأفلام. في ما يلي مثال على ضبط معدل نقل بيانات التسجيل على 6 ميغابت في الثانية:
screenrecord --bit-rate 6000000 /sdcard/demo.mp4 |
--time-limit time |
ضبط الحد الأقصى لوقت التسجيل بالثواني. القيمة التلقائية والحد الأقصى هي 180 (3 دقائق). |
--rotate |
عليك تدوير الناتج بمقدار 90 درجة. هذه الميزة تجريبية. |
--verbose |
عرض معلومات السجل على شاشة سطر الأوامر. إذا لم يتم تعيين هذا الخيار، فلن تعرض الأداة أي معلومات أثناء التشغيل. |
قراءة ملفات ART الشخصية للتطبيقات
بدءًا من الإصدار Android 7.0 (المستوى 24 لواجهة برمجة التطبيقات)، يجمع "وقت تشغيل Android" (ART) الملفات الشخصية للتنفيذ للتطبيقات المثبّتة، ويتم استخدام هذه الملفات لتحسين أداء التطبيقات. افحص الملفات الشخصية التي تم جمعها للتعرّف على الطرق التي يتم تنفيذها بشكل متكرر والفئات التي يتم استخدامها أثناء بدء تشغيل التطبيق.
ملاحظة: لا يمكنك استرداد اسم ملف الملف الشخصي للتنفيذ إلا إذا كان لديك إذن الوصول الجذر إلى نظام الملفات، على سبيل المثال، في أحد المحاكيات.
لإنشاء نموذج نصي لمعلومات الملف الشخصي، استخدِم الأمر التالي:
adb shell cmd package dump-profiles package
لاسترداد الملف الذي تم إنتاجه، استخدم:
adb pull /data/misc/profman/package.prof.txt
إعادة ضبط الأجهزة الاختبارية
في حال اختبار تطبيقك على عدة أجهزة اختبار، قد يكون من المفيد إعادة ضبط جهازك بين
الاختبارات، مثلاً لإزالة بيانات المستخدمين وإعادة ضبط بيئة الاختبار. يمكنك إجراء إعادة ضبط على الإعدادات الأصلية
لجهاز اختبار يعمل بالإصدار 10 من نظام التشغيل Android (المستوى 29 من واجهة برمجة التطبيقات) أو إصدار أحدث باستخدام أمر واجهة برمجة التطبيقات testharness
adb
على النحو التالي:
adb shell cmd testharness enable
عند استعادة الجهاز باستخدام testharness
، يحتفظ الجهاز تلقائيًا بنسخة احتياطية من مفتاح RSA
الذي يسمح بتصحيح الأخطاء من خلال محطة العمل الحالية في مكان دائم. أي أنّه بعد
إعادة ضبط الجهاز، يمكن لمحطة العمل مواصلة تصحيح الأخطاء وإصدار أوامر adb
على الجهاز بدون تسجيل مفتاح جديد يدويًا.
بالإضافة إلى ذلك، وللمساعدة في مواصلة اختبار تطبيقك بطريق�� ��س��ل ��أكثر أمانًا، يؤدي استخدام
testharness
لاستعادة جهاز إلى تغيير إعدادات الجهاز التالية أيضًا:
- يضبط الجهاز إعدادات نظام معيّنة بحيث لا تظهر معالجات الإعداد الأولي للجهاز. وهذا يعني أنّ الجهاز يدخل حالة يمكنك من خلالها تثبيت تطبيقك وتصحيح أخطائه واختباره بسرعة.
- الإعدادات:
- لإيقاف شاشة القفل.
- يعمل هذا الإعداد على إيقاف تنبيهات الطوارئ.
- لإيقاف المزامنة التلقائية للحسابات.
- لإيقاف التحديثات التلقائية للنظام.
- وصف آخر:
- لإيقاف تطبيقات الأمان المثبَّتة مسبقًا.
إذا كان تطبيقك بحاجة إلى رصد الإعدادات التلقائية للأمر testharness
والتكيّف معها، استخدِم
ActivityManager.isRunningInUserTestHarness()
.
SQL Lite
تبدأ sqlite3
برنامج سطر الأوامر sqlite
لفحص قواعد بيانات SQLite.
ويتضمّن أوامر مثل .dump
لطباعة محتوى جدول و.schema
لطباعة عبارة SQL CREATE
لجدول حالي.
يمكنك أيضًا تنفيذ أوامر SQLite من سطر الأوامر، كما هو موضح:
$ adb -s emulator-5554 shell $ sqlite3 /data/data/com.example.app/databases/rssitems.db SQLite version 3.3.12 Enter ".help" for instructions
ملاحظة: لا يمكنك الوصول إلى قاعدة بيانات SQLite إلا إذا كان لديك إذن الوصول إلى الجذر في نظام الملفات، على سبيل المثال، في المحاكي.
لمزيد من المعلومات، يمكنك الاطّلاع على مستندات سطر أوامر sqlite3
.
خلفيات Ab USB
يمكن لخادم adb التفاعل مع حزمة USB من خلال خلفيتين. يمكن استخدام الواجهة الخلفية الأصلية لنظام التشغيل (Windows أو Linux أو macOS) أو استخدام الواجهة الخلفية libusb
.
ولا تتوفّر بعض الميزات، مثل attach
وdetach
ورصد سرعة USB
إلا عند استخدام الخلفية libusb
.
يمكنك اختيار واجهة خلفية باستخدام متغيّر البيئة ADB_LIBUSB
.
إذا لم يتم ضبط السياسة، يستخدم adb واجهته الخلفية الت��قائية. ويختلف السلوك التلقائي باختلاف نظام التشغيل. بدءًا من الإصدار 34 من ADB، يتم استخدام الواجهة الخلفية liubusb
بشكل تلقائي على جميع أنظمة التشغيل باستثناء Windows حيث يتم استخدام الواجهة الخلفية الأصلية بشكل تلقائي. أمّا في حال ضبط السياسة ADB_LIBUSB
، فإنّها تحدّد ما إذا كان سيتم استخدام الواجهة الخلفية الأصلية أو libusb
. اطّلِع على
صفحة دليل adb
للحصول على مزيد من المعلومات حول متغيّرات بيئة adb.
خلفيات adb mDNS
يمكن لـ ADB استخدام بروتوكول نظام أسماء النطاقات للبث المتعدد الوجهات للاتصال بالخادم والأجهزة تلقائيًا. يشحن خادم ADB مع خلفيتين، Bonjour (mdnsResponseer من Apple) وOpenscreen.
تحتاج الواجهة الخلفية Bonjour إلى برنامج خفي لتشغيله على الجهاز المضيف.
يعمل البرنامج الخفي لنظام التشغيل macOS من Apple دائمًا، ولكن على المستخدم التأكّد من أنّ البرنامج الخفي "mdnsd
" يعمل على نظامَي التشغيل Windows وLinux.
إذا عرض الأمر adb mdns check
خطأ، فمن المحتمل أن ADB يستخدم الواجهة الخلفية Bonjour ولكن ليس هناك برنامج خفي لـ Bonjour قيد التشغيل.
لا تحتاج الخلفية Openscreen إلى تشغيل برنامج خفي على الجهاز. يبدأ دعم خلفية Openscreen على نظام التشغيل macOS من خلال الإصدار ADB v35. يعتمد الإصدار 34 من ADB على نظامي Windows وLinux.
يستخدم ADB بشكل افتراضي خلفية Bonjour. يمكن تغيير هذا السلوك باستخدام متغيّر البيئة ADB_MDNS_OPENSCREEN
(الضبط على 1
أو 0
).
للاطّلاع على مزيد من التفاصيل، يُرجى الانتقال إلى صفحة دليل Ads Data Hub يدويًا.