Android Debug Bridge (adb
) هو أداة متعددة الاستخدامات لسطر الأوامر تسمح لك بالتواصل مع الجهاز. يسهّل الأمر adb
تنفيذ مجموعة من الإجراءات على الجهاز، مثل تثبيت التطبيقات وتصحيح الأخطاء فيها. يتيح adb
الوصول إلى هيكل Unix الذي يمكنك استخدامه لتنفيذ مجموعة متنوعة من الأوامر على الجهاز. وهو برنامج خادم عميل يضم ثلاثة مكونات:
- برنامج يُرسل الأوامر. يعمل العميل على جهاز التطوير. يمكنك استدعاء عميل من طرفية سطر أوامر من خلال إصدار أمر
adb
. - برنامج خفي (adbd) يشغِّل الأوامر على الجهاز. يعمل البرنامج الخفي كعملية في الخلفية على كل جهاز.
- خادم يدير الاتصال بين العميل والبرنامج الخفي يتم تشغيل الخادم كعملية في الخلفية على جهاز التطوير الذي تستخدمه.
تم تضمين adb
في حزمة أدوات Android SDK Platform. نزِّل هذه
الحزمة باستخدام مدير 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 في إعدادات نظام الجهاز، ضمن خيارات المطوّرين. في نظام التشغيل Android 4.2 (المستوى 17 لواجهة برمجة التطبيقات) والإصدارات الأحدث، تكون شاشة خيارات المطوّرين مخفية تلقائيًا. ولإظهاره، فعِّل خيارات المطوّرين.
يمكنك الآن توصيل جهازك باستخدام USB. يمكنك التأكّد من أنّ جهازك متّصل من خلال تنفيذ adb devices
من دليل android_sdk/platform-tools/
. إذا كان الجهاز متصلاً،
سيظهر لك اسم الجهاز على أنّه "جهاز".
ملاحظة: عند توصيل جهاز يعمل بالإصدار 4.2.2 من نظام التشغيل Android (المستوى 17 من واجهة برمجة التطبيقات) أو بإصدار أحدث، يعرض النظام مربّع حوار يسألك عمّا إذا كنت تريد قبول مفتاح RSA الذي يسمح بتصحيح الأخطاء من خلال هذا الكمبيوتر. تحمي آلية الأمان هذه أجهزة المستخدمين لأنّها تضمن عدم تنفيذ تصحيح أخطاء USB وأوامر adb الأخرى ما لم تتمكّن من فتح قفل الجهاز والإقرار بمربّع الحوار.
لمزيد من المعلومات حول الاتصال بجهاز عبر USB، يُرجى الاطّلاع على تشغيل التطبيقات على جهاز.
الاتصال بجهاز عبر Wi-Fi
ملاحظة: لا تنطبق التعليمات الواردة أدناه على أجهزة Wear OS التي تعمل بالإصدار Android 11 (المستوى 30 من واجهة برمجة التطبيقات). يمكنك الاطّلاع على دليل تصحيح الأخطاء في تطبيق Wear OS للحصول على مزيد من المعلومات.
يتيح الإصدار Android 11 (المستوى 30 من واجهة برمجة التطبيقات) والإصدارات الأحدث نشر تطبيقك وتصحيح الأخطاء لاسلكيًا من محطة العمل باستخدام Android Debug Bridge (adb). على سبيل المثال، يمكنك نشر تطبيقك القابل للتصحيح الأخطاء على عدة أجهزة بعيدة بدون الحاجة إلى ربط جهازك فعليًا عبر USB. وبذلك لن تحتاج إلى التعامل مع المشاكل الشائعة المتعلقة باتصال USB، مثل تثبيت برنامج التشغيل.
قبل البدء في استخدام ميزة "تصحيح الأخطاء اللاسلكي"، اتّبِع الخطوات التالية:
-
تأكَّد من اتصال محطة العمل والجهاز بالشبكة اللاسلكية نفسها.
-
تأكَّد من أنّ جهازك يعمل بنظام التشغيل Android 11 (المستوى 30 لواجهة برمجة التطبيقات) أو بإصدار أحدث على الهاتف أو Android 13 (المستوى 33 من واجهة برمجة التطبيقات) أو إصدار أحدث للتلفزيون وWearOS. لمزيد من المعلومات، يُرجى الاطّلاع على التحقّق من إصدار Android وتحديثه.
-
في حال استخدام بيئة تطوير البرامج (IDE)، تأكَّد من تثبيت أحدث إصدار من "استوديو Android". يمكنك تنزيله هنا.
-
على محطة العمل، ثبِّت أحدث إصدار من أدوات SDK Platform.
لاستخدام ميزة "تصحيح الأخطاء اللاسلكي"، عليك إقران جهازك بمحطة العمل باستخدام رمز الاستجابة السريعة أو رمز الإقران. يجب توصيل محطة العمل والجهاز بالشبكة اللاسلكية نفسها. لربط جهازك، اتّبِع الخطوات التالية:
-
فعِّل خيارات المطوّرين على جهازك.
-
افتح "استوديو 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 Studio) وكيفية حلّها:
-
شبكة 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 فعلي.
ملاحظة: لا تنطبق التعليمات التالية على أجهزة Wear OS التي تعمل بنظام التشغيل Android 10 (المستوى 29 من واجهة برمجة التطبيقات) أو الإصدارات الأقدم. للحصول على مزيد من المعلومات، يمكنك الاطّلاع على الدليل حول تصحيح أخطاء تطبيق Wear OS.
يتواصل adb
عادةً مع الجهاز عبر USB، ولكن يمكنك أيضًا استخدام
adb
عبر Wi-Fi. لربط جهاز يعمل بنظام التشغيل Android 10 (المستوى 29 من واجهة برمجة التطبيقات) أو الإصدارات الأقدم،
اتّبِع الخطوات الأولية التالية عبر USB:
-
وصِّل جهاز Android وجهاز الكمبيوتر المضيف
adb
بشبكة Wi-Fi مشتركة. - وصِّل الجهاز بالكمبيوتر المضيف باستخدام كابل USB.
-
عليك ضبط الجهاز المستهدف للاستماع إلى اتصال TCP/IP على المنفذ 5555:
adb tcpip 5555
- افصل كابل USB عن الجهاز المستهدف.
- ابحث عن عنوان IP لجهاز Android. على سبيل المثال، يمكنك العثور على عنوان IP على جهاز Nexus من خلال الإعدادات > لمحة عن الجهاز اللوحي (أو لمحة عن الهاتف) > الحالة > عنوان 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
. ويكون هذا الأمر مفيدًا في حال تنزيل جميع
حِزم 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 --help
.
في أدوات Android الأساسية رقم 23 والإصدارات الأحدث، يعالج 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
|
طباعة مواصفات الغرض المحددة على هيئة معرّف موارد منتظم (URI) اطّلِع على مواصفات وسيطات الغرض. |
to-intent-uri 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
|
يمكنك إبطال إذن من تطبيق. على الأجهزة التي تعمل بنظام التشغيل Android 6.0 (المستوى 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
|
يمكنك محو سجلّ الجهاز لفترات إيقاف التحديثات المضبوطة سابقًا على تحديثات النظام عبر الهواء. وهذا مفيد لتجنب القيود المفروضة على جدولة الجهاز عند تطوير التطبيقات التي تدير فترات التوقف عن العمل. يُرجى الاطّلاع على
إدارة تحديثات النظام.
متوافق مع الأجهزة التي تعمل بنظام التشغيل Android 9.0 (المستوى 28 من واجهة برمجة التطبيقات) والإصدارات الأحدث. |
force-network-logs
|
يمكنك فرض جعل أي سجلات شبكة حالية جاهزة لاستردادها بواسطة وحدة التحكّم بسياسة الجهاز (DPC). في حال توفُّر اتصال أو سجلات لنظام أسماء النطاقات، تتلقّى وحدة التحكّم بسياسة الجهاز (DPC) معاودة الاتصال onNetworkLogsAvailable() . راجِع تسجيل نشاط الشبكة.
هذا الطلب محدود المعدّل. متوافق مع الأجهزة التي تعمل بنظام التشغيل Android 9.0 (المستوى 28 من واجهة برمجة التطبيقات) والإصدارات الأحدث. |
force-security-logs
|
افرِض النظام على إتاحة أي سجلات أمان حالية لوحدة التحكّم بسياسة الجهاز. في حال توفّر سجلات، تتلقّى وحدة التحكّم بسياسة الجهاز (DPC) معاودة الاتصال بـ onSecurityLogsAvailable() . يُرجى الاطّلاع على القسم تسجيل نشاط أجهزة المؤسسة.
هذا الطلب محدود المعدّل. متوافق مع الأجهزة التي تعمل بنظام التشغيل Android 9.0 (المستوى 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 إذا لم تكن كذلك. للحصول على أفضل النتائج، يجب استخدام مقاس يتوافق مع
برنامج الترميز المتقدّم للفيديو على جهازك. |
--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
إعادة ضبط أجهزة الاختبار
إذا اختبرت تطبيقك على عدة أجهزة اختبار، قد يكون من المفيد إعادة ضبط جهازك بين
الاختبارات لإزالة بيانات المستخدمين وإعادة ضبط بيئة الاختبار. يمكنك إعادة ضبط الجهاز على الإعدادات الأصلية
لجهاز اختبار يعمل بنظام التشغيل Android 10 (المستوى 29 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث باستخدام
الأمر testharness
adb
فيما يلي:
adb shell cmd testharness enable
عند استعادة الجهاز باستخدام testharness
، يحتفظ الجهاز تلقائيًا بنسخة احتياطية من مفتاح RSA
الذي يسمح بتصحيح الأخطاء من خلال محطة العمل الحالية في موقع جغرافي ثابت. أي أنّه بعد
إعادة ضبط الجهاز، يمكن لمحطة العمل مواصلة تصحيح الأخطاء وإصدار أوامر adb
للجهاز بدون تسجيل مفتاح جديد يدويًا.
بالإضافة إلى ذلك، للمساعدة في مواصلة اختبار تطبيقك بشكل أسهل وأكثر أمانًا، تؤدي
testharness
لاستعادة جهاز إلى تغيير إعدادات الجهاز التالية أيضًا:
- يقوم الجهاز بإعداد إعدادات نظام معينة بحيث لا تظهر معالجات الإعداد الأولية للجهاز. وهذا يعني أنّ الجهاز يدخل حالة يمكنك من خلالها تثبيت تطبيقك وتصحيح أخطائه واختباره بسرعة.
- الإعدادات:
- لإيقاف شاشة القفل.
- لإيقاف تنبيهات الطوارئ.
- لإيقاف المزامنة التلقائية للحسابات.
- لإيقاف التحديثات التلقائية للنظام.
- غير ذلك:
- لإيقاف تطبيقات الأمان المثبتة مسبقًا.
إذا كان تطبيقك يحتاج إلى رصد الإعدادات التلقائية للأمر testharness
والتكيّف معها، استخدِم
ActivityManager.isRunningInUserTestHarness()
.
موقع sqlite
تبدأ دالة 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
.
خلفيات USB من Adb
يمكن لخادم Adb التفاعل مع مكدس USB من خلال خلفيتين. يمكنه إمّا استخدام الخلفية الأصلية لنظام التشغيل (Windows أو Linux أو macOS) أو استخدام الواجهة الخلفية libusb
.
لا تتوفّر بعض الميزات، مثل "attach
" و"detach
" و"رصد السرعة عبر USB"، إلا عند استخدام الواجهة الخلفية لخدمة libusb
.
يمكنك اختيار خلفية باستخدام متغير بيئة ADB_LIBUSB
.
إذا لم يتم الضبط، يستخدم adb الخلفية التلقائية. يختلف السلوك التلقائي باختلاف نظام التشغيل. بدءًا من المستوى 34 لواجهة برمجة التطبيقات، يتم استخدام الخلفية الأصلية افتراضيًا. في حال ضبط سياسة 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 إلى برنامج خفي لتشغيلها على الجهاز. يبدأ دعم الواجهة الخلفية المفتوحة للشاشة على نظام التشغيل macOS من الإصدار 35 من ADB. يتوافق نظام التشغيل Windows وLinux مع الإصدار 34 من أداة ADB.
بشكل افتراضي، يستخدم ADB خلفية Bonjour. يمكن تغيير هذا السلوك باستخدام متغيّر البيئة ADB_MDNS_OPENSCREEN
(الضبط على 1
أو 0
).
يمكنك الاطّلاع على صفحة دليل AB يدويًا للحصول على مزيد من التفاصيل.