Android Debug Bridge (adb
) عبارة عن أداة سطر أوامر متعدّدة الاستخدامات تتيح لك التواصل مع أحد الأجهزة. يسهّل الأمر adb
تنفيذ مجموعة متنوعة من إجراءات الجهاز، مثل تثبيت التطبيقات
وتصحيح أخطاءها. يتيح لك adb
الوصول إلى بيئة تشغيل Unix التي يمكنك استخدامها لتشغيل مجموعة متنوعة
من الأوامر على جهاز. وهو برنامج يستند إلى نموذج العميل والخادم ويتضمّن ثلاثة مكوّنات:
- عميل يُرسِل الأوامر يعمل العميل على جهاز التطوير. يمكنك
طلب برنامج خادم من وحدة طرفية لسطر الأوامر عن طريق إصدار الأمر
adb
. - الخادم الدائم (adbd) الذي ينفِّذ الأوامر على الجهاز يعمل البرنامج الخفي كعملية في الخلفية على كل جهاز.
- خادم يدير الاتصال بين العميل والبرنامج الخفي يتم تشغيل الخادم كعملية في الخلفية على جهاز التطوير.
يتم تضمين adb
في حزمة "أدوات نظام التشغيل" لحزمة تطوير البرامج (SDK) لنظام التشغيل Android. نزِّل هذه
الحزمة باستخدام مدير حِزم تطوير البرامج (SDK) الذي ثبّتها
في android_sdk/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 في إعدادات نظام الجهاز ضمن options. في الإصدار 4.2 من نظام التشغيل Android (المستوى 17 من واجهة برمجة التطبيقات) والإصدارات الأحدث، تكون شاشة خيارات المطوّرين مخفية تلقائيًا. لإظهاره، عليك تفعيل خيارات المطوّرين.
يمكنك الآن توصيل جهازك باستخدام كابل USB. يمكنك التأكّد من اتصال جهازك
من خلال تنفيذ adb devices
من دليل
android_sdk/platform-tools/
. إذا كان الجهاز متصلاً،
سيظهر اسم الجهاز مُدرَجًا على أنّه "جهاز".
ملاحظة: عند توصيل جهاز يعمل بالإصدار 4.2.2 من نظام التشغيل Android (المستوى 17 من واجهة برمجة التطبيقات) أو إصدار أحدث، يعرض النظام مربّع حوار يسألك ما إذا كنت تريد قبول مفتاح RSA الذي يتيح debugging من خلال هذا الكمبيوتر. تحمي آلية الأمان هذه أجهزة المستخدمين لأنّها تضمن عدم إمكانية تنفيذ تصحيح أخطاء USB وأوامر أداة adb الأخرى، ما لم تتمكن من فتح قفل الجهاز والموافقة على مربّع الحوار.
لمزيد من المعلومات حول الاتصال بجهاز عبر USB، يُرجى الاطّلاع على مقالة تشغيل التطبيقات على جهاز أجهزة.
الاتصال بجهاز عبر شبكة Wi-Fi
ملاحظة: لا تنطبق التعليمات أدناه على أجهزة Wear التي تعمل بالإصدار Android 11 (المستوى 30 لواجهة برمجة التطبيقات). راجِع دليل تصحيح الأخطاء في تطبيق Wear OS للحصول على مزيد من المعلومات.
يتيح نظام التشغيل Android 11 (المستوى 30 لواجهة برمجة التطبيقات) والإصدارات الأحدث نشر تطبيقك وتصحيح أخطاءه لاسلكيًا من محطة العمل باستخدام أداة Android Debug Bridge (adb). على سبيل المثال، يمكنك نشر تطبيقك قابل لتصحيح الأخطاء على أجهزة متعددة عن بُعد بدون الحاجة إلى توصيل جهازك جسديًا عبر مهايئ USB. ويؤدي ذلك إلى عدم الحاجة إلى التعامل مع المشاكل الشائعة في الاتصال عبر USB، مثل تثبيت برنامج التشغيل.
قبل البدء في استخدام ميزة "تصحيح الأخطاء اللاسلكي"، عليك تنفيذ ما يلي:
-
تأكَّد من أنّ محطة العمل والجهاز متصلان بالشبكة اللاسلكية نفسها.
-
تأكَّد من أنّ جهازك يعمل بالإصدار 11 من نظام التشغيل Android (المستوى 30 لواجهة برمجة التطبيقات) أو إصدار أحدث على الهاتف أو الإصدار 13 من نظام التشغيل Android (المستوى 33 لواجهة برمجة التطبيقات) أو إصدار أحدث على التلفزيون ونظام التشغيل WearOS. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة التحقّق من إصدار Android على جهازك وتحديثه.
-
في حال استخدام حزمة تطوير البرامج المتكاملة، تأكَّد من تثبيت أحدث إصدار من Android Studio. يمكنك تنزيله هنا.
-
في محطة العمل، عليك التحديث إلى أحدث إصدار من أدوات النظام الأساسي لحزمة تطوير البرامج (SDK).
لاستخدام ميزة تصحيح الأخطاء اللاسلكي، عليك إقران جهازك بمكان عملك باستخدام رمز استجابة سريعة أو رمز إقران. يجب أن تكون محطة العمل والجهاز متصلَين بالشبكة اللاسلكية نفسها. ل الاتصال بجهازك، اتّبِع الخطوات التالية:
-
فعِّل خيارات المطوّرين على جهازك.
-
افتح Android Studio واختَر إقران الأجهزة باستخدام Wi-Fi من قائمة الإعدادات الخاصة بالتشغيل.
تظهر نافذة إقران الأجهزة عبر شبكة Wi-Fi، كما هو موضّح في الشكل 2.
-
على جهازك، انقر على تصحيح الأخطاء اللاسلكي واقرِن جهازك:
-
لإقران جهازك باستخدام رمز استجابة سريعة، اختَر إقران الجهاز باستخدام رمز استجابة سريعة وامسح ضوئيًا رمز الاستجابة السريعة الذي تم الحصول عليه من النافذة المنبثقة إقران الأجهزة عبر شبكة Wi-Fi الموضَّحة في الشكل 2.
-
لإقران جهازك باستخدام رمز الإقران، انقر على إقران الجهاز باستخدام رمز الإقران من النافذة المنبثقة إقران الأجهزة عبر شبكة Wi-Fi. على جهازك، اختَر الإقران باستخدام رمز الإقران وراقِب الرمز المكوّن من ستة أرقام. بعد ظهور جهازك في نافذة إقران الأجهزة عبر شبكة Wi-Fi، يمكنك النقر على إقران وإدخال الرمز المكوّن من ستة أرقام الذي يظهر على جهازك.
-
-
بعد إقران جهازك، يمكنك محاولة نشر تطبيقك على جهازك.
لإقران جهاز مختلف أو حذف بيانات الجهاز الحالي على محطة العمل، انتقِل إلى تصحيح الأخطاء اللاسلكي على جهازك. انقر على اسم محطة العمل ضمن الأجهزة المقترنة واختَر حذف.
-
إذا كنت تريد تفعيل ميزة تصحيح الأخطاء اللاسلكي وإيقافها بسرعة، يمكنك استخدام فئات المطوّرين في الإعدادات السريعة لميزة تصحيح الأخطاء اللاسلكي، والتي يمكن العثور عليها في خيارات المطوّرين > فئات المطوّرين في الإعدادات السريعة.
اتصال Wi-Fi باستخدام سطر الأوامر
بدلاً من ذلك، للاتصال بجهازك باستخدام سطر الأوامر بدون Android Studio، اتّبِع الخطوات التالية:
-
فعِّل خيارات المطوّرين على جهازك كما هو موضّح سابقًا.
-
فعِّل ميزة تصحيح الأخطاء اللاسلكي على جهازك كما هو موضّح سابقًا.
-
على محطة العمل، افتح نافذة محطة طرفية وانتقِل إلى
android_sdk/platform-tools
. -
ابحث عن عنوان IP ورقم المنفذ ورمز الإقران من خلال اختيار إقران الجهاز باستخدام رمز الإقران. دوِّن عنوان IP ورقم المنفذ ورمز الإقران المعروضَين على الجهاز.
-
في وحدة الطرفية لمحطة العمل، شغِّل
adb pair ipaddr:port
. استخدِم عنوان IP رقم المنفذ من أعلاه. -
أدخِل رمز الإقران كما هو موضّح أدناه عندما يُطلب منك ذلك.
حلّ مشاكل الاتصال اللاسلكي
إذا كنت تواجه مشاكل في الاتصال بجهازك لاسلكيًا، جرِّب الخطوات التالية لتحديد المشاكل وحلّها.
التحقّق مما إذا كانت محطة العمل والجهاز يستوفون المتطلبات الأساسية
تأكَّد من أنّ محطة العمل والجهاز يستوفيان المتطلبات الأساسية المُدرَجة في بداية هذا القسم.
البحث عن المشاكل المعروفة الأخرى
في ما يلي قائمة بالمشاكل المعروفة حاليًا في تصحيح الأخطاء اللاسلكي (باستخدام adb أو "استوديو Android") وكيفية حلّها:
-
تعذُّر الاتصال بشبكة Wi-Fi: قد تحظر شبكات Wi-Fi الآمنة، مثل شبكات Wi-Fi التابعة للشركات، عمليات الاتصال بين الأجهزة مباشرةً ولا تسمح لك بالاتصال عبر شبكة 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 والإصدارات الأقدم)
ملاحظة: ينطبق سير العمل هذا أيضًا على الإصدار 11 من نظام التشغيل Android (و الإصدارات الأحدث)، مع العِلم أنّه يتضمن أيضًا عملية اتصال *أولية* عبر منفذ USB.
ملاحظة: لا تنطبق التعليمات التالية على أجهزة Wear التي تعمل بالإصدار 10 من نظام التشغيل Android (المستوى 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 صالحًا من نظامك. للحصول على قائمة بأسماء أجهزة 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
. يكون ذلك مفيدًا إذا نزّلت من Play Console كل حِزم APK لجهاز معيّن لتطبيقك وأردت تثبيتها على جهاز افتراضي أو جهاز فعلي.
لمزيد من المعلومات حول كيفية إنشاء ملف APK يمكنك تثبيته على جهاز محاكاة/جهاز، يُرجى الاطّلاع على مقالة إنشاء تطبيقك وتشغيله.
ملاحظة: إذا كنت تستخدم "استوديو Android"، لن تحتاج إلى استخدام adb
مباشرةً لتثبيت التطبيق على المحاكي أو الجهاز. بدلاً من ذلك، يتولى Android Studio
تغليف التطبيق وتثبيته نيابةً عنك.
إعداد قاعدة إعادة توجيه المنفذ
استخدِم الأمر 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 العديد من أوامر Shell.
تتوفّر المساعدة العامة القابلة للتطبيق على جميع أوامر Toybox من خلال toybox --help
.
باستخدام الإصدار 23 من "أدوات نظام Android الأساسي" والإصدارات الأحدث، يعالج adb
الوسيطات بالطريقة نفسها التي يعالج بها
الأمر ssh(1)
الوسيطات. وقد أدّى هذا التغيير إلى حلّ الكثير من المشاكل المتعلّقة
بإدخال الأوامر
وأصبح من الممكن تنفيذ الأوامر التي تحتوي على أحرف ميتافراغية
بشكل آمن، مثل adb install Let\'sGo.apk
. يعني هذا التغيير أنّ تفسير
أي أمر يحتوي على أحرف وصفية لنظام التشغيل قد تغيّر أيضًا.
على سبيل المثال، adb shell setprop key 'two words'
هو الآن خطأ،
لأنّ القوسَين يتم ابتلاعهما من قِبل القشرة المحلية، ويظهر للجهاز
adb shell setprop key two words
. لكي يعمل الأمر، عليك وضع علامتَي اقتباس مرتَين،
مرة واحدة للغلاف المحلي ومرة واحدة للغلاف البعيد، كما تفعل مع
ssh(1)
. على سبيل المثال، تعمل السمة adb shell setprop key "'two words'"
لأنّ واجهة الأوامر المحلية تأخذ المستوى الخارجي من الاقتباس ولا يزال الجهاز
يرى المستوى الداخلي من الاقتباس: setprop key 'two words'
. يمكنك أيضًا استخدام علامة الهروب، ولكن عادةً ما يكون الاقتباس مرتين أسهل.
راجِع أيضًا أداة سطر الأوامر 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
|
طباعة مواصفات النية المحدّدة كعنوان URL اطّلِع على مواصفات وسيطات الغرض. |
to-intent-uri intent
|
اطبع مواصفات النية المحدّدة كعنوان URL 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
|
فعِّل الحزمة أو المكوّن المحدَّدَين (المكتوبَين على النحو "الحزمة/الفئة"). |
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
|
يمكنك ضبط حالة نطاق حزمة يدويًا. يجب أن تُعلِن الحزمة عن النطاق على أنّه autoVerify لكي يعمل هذا الإجراء. لن يُبلغ هذا الأمر عن حدوث خطأ في النطاقات التي تعذّر تطبيقها.
|
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
). استخدِم الأداة للتحكّم في تطبيق المشرف attivo
أو تغيير بيانات حالة إحدى السياسات على الجهاز.
في بيئة شل، يكون 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
|
إجبار النظام على إتاحة أي سجلّات أمان حالية لخدمة إدارة الخدمات والتطبيقات إذا كانت هناك سجلات
متوفّرة، يتلقّى "المسؤول عن معالجة البيانات"
onSecurityLogsAvailable()
مكالمة المتابعة. يُرجى الاطِّلاع على تسجيل نشاط أجهزة المؤسسة.
هذا الأمر مُقيّد بمعدّل تكرار. تتوفّر هذه الميزة على الأجهزة التي تعمل بالإصدار 9.0 من نظام التشغيل Android (المستوى 28 من واجهة برمجة التطبيقات) والإصدارات الأحدث. |
أخذ لقطة شاشة
إنّ الأمر screencap
هو أداة قشرة لالتقاط لقطة شاشة لشاشة
الجهاز.
في بيئة شل، يكون تنسيق screencap
على النحو التالي:
screencap filename
لاستخدام screencap
من سطر الأوامر، أدخِل ما يلي:
adb shell screencap /sdcard/screen.png
في ما يلي مثال على جلسة لقطة شاشة، باستخدام adb
shell لالتقاط لقطة الشاشة
وpull
command لتنزيل الملف من الجهاز:
$ 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
يمكنك إيقاف تسجيل الشاشة بالضغط على Ctrl+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 Runtime (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
.
الخلفيات في adb 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 مفعّلاً دائمًا، ولكن على نظامَي التشغيل Windows وLinux، على المستخدم التأكّد من أنّ الخادم الدائم mdnsd
مفعّل.
إذا أظهر الأمر adb mdns check
خطأ، من المحتمل أن يستخدم ADB الخلفية في Bonjour ولكن لا يتم تشغيل برنامج Bonjour الخفي.
لا تحتاج الخلفية في Openscreen إلى تشغيل برنامج خفي على الجهاز. بدءًا من الإصدار 35 من أداة ADB، أصبح من الممكن استخدام الخلفية Openscreen على نظام التشغيل macOS. يتوافق نظاما التشغيل Windows وLinux مع الإصدار 34 من ADB.
يستخدم ADB تلقائيًا الخلفية Bonjour. يمكن تغيير هذا السلوك باستخدام متغيّر البيئة ADB_MDNS_OPENSCREEN
(يتم ضبطه على 1
أو 0
).
يُرجى الاطّلاع على صفحة دليل ADB للحصول على مزيد من التفاصيل.