ويوفّر كل جهاز افتراضي قيد التشغيل وحدة تحكم تتيح لك الاستعلام عن بيئة الجهاز التي تمت محاكاتها والتحكم فيها. على سبيل المثال، يمكنك استخدام وحدة التحكّم لإدارة إعادة توجيه المنفذ وخصائص الشبكة والأحداث الهاتفية أثناء تشغيل تطبيقك على المحاكي.
تتطلب الأوامر التالية أن يكون لديك محاكي قيد التشغيل حاليًا. لمزيد من المعلومات حول تشغيل المحاكي، يُرجى الاطّلاع على تشغيل التطبيقات على محاكي Android وبدء المحاكي من سطر الأوامر.
بدء جلسة في وحدة التحكّم وإيقافها
للوصول إلى وحدة التحكّم وإدخال الأوامر من نافذة طرفية، استخدِم telnet
للربط بمنفذ وحدة التحكّم وتوفير الرمز المميّز للمصادقة. وفي كل مرة تعرض فيها وحدة التحكّم
حسنًا، تكون جاهزة لقبول الأوامر. لا تتوفّر رسالة مطالبة عادية.
للاتصال بوحدة تحكم جهاز افتراضي قيد التشغيل:
- افتح نافذة طرفية وأدخِل الأمر التالي:
- بعد أن تعرض وحدة التحكّم
OK
، أدخِل الأمرauth auth_token
. - بعد الربط بوحدة التحكّم، أدخِل أوامر وحدة التحكّم.
- للخروج من جلسة وحدة التحكّم، أدخِل
quit
أوexit
.
telnet localhost console-port
يدرج عنوان نافذة المحاكي رقم منفذ وحدة التحكم عند تشغيله في نافذة منفصلة، وليس عند تشغيله في نافذة أداة. على سبيل المثال، قد يكون عنوان النافذة لمحاكي يستخدم منفذ وحدة التحكم 5554
Nexus_5X_API_23:5554
. بالإضافة إلى ذلك، يطبع الأمر adb devices
قائمة بالأجهزة الافتراضية قيد التشغيل وأرقام منافذ وحدة التحكم. ولمزيد من المعلومات، راجِع طلب البحث للأجهزة.
ملاحظة: يرصد المحاكي الاتصالات على المنافذ 5554 إلى 5585 ويقبل الاتصالات من localhost
فقط.
قبل أن تتمكن من إدخال أوامر وحدة التحكم، تتطلب وحدة تحكم المحاكي المصادقة. يجب أن يتطابق auth_token
مع محتوى ملف .emulator_console_auth_token
في الدليل الرئيسي.
إذا لم يكن هذا الملف متوفّرًا، ينشئ الأمر telnet localhost console-port
الملف الذي يحتوي على رمز مميّز للمصادقة يتم إنشاؤه عشوائيًا. لإيقاف
المصادقة، احذف الرمز المميّز من
ملف .emulator_console_auth_token
أو أنشئ ملفًا فارغًا في حال عدم توفّره.
أدخِل help
أو help command
أو help-verbose
للاطّلاع على قائمة بأوامر وحدة التحكّم والتعرّف على
أوامر معيّنة.
إليك مثال على الجلسة:
$ telnet localhost 5554 Trying ::1... telnet: connect to address ::1: Connection refused Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Android Console: Authentication required Android Console: type 'auth <auth_token>' to authenticate Android Console: you can find your <auth_token> in '/Users/me/.emulator_console_auth_token' OK auth 123456789ABCdefZ Android Console: type 'help' for a list of commands OK help-verbose Android console command help: help|h|? Prints a list of commands help-verbose Prints a list of commands with descriptions ping Checks if the emulator is alive automation Manages emulator automation event Simulates hardware events geo Geo-location commands gsm GSM related commands cdma CDMA related commands crash Crashes the emulator instance crash-on-exit Simulates crash on exit for the emulator instance kill Terminates the emulator instance restart Restarts the emulator instance network Manages network settings power Power related commands quit|exit Quits control session redir Manages port redirections sms SMS related commands avd Controls virtual device execution qemu QEMU-specific commands sensor Manages emulator sensors physics Manages physical model finger Manages emulator finger print debug Controls the emulator debug output tags rotate Rotates the screen clockwise by 90 degrees screenrecord Records the emulator's display fold Folds the device unfold Unfolds the device multidisplay Configures the multi-display try 'help <command>' for command-specific help OK exit Connection closed by foreign host.
مرجع أوامر المحاكي
يصف الجدول التالي أوامر وحدة تحكم المحاكي مع معلماتها وقيمها:
طلبات عامة | الوصف |
---|---|
avd {stop|start|status|name}
|
طلبات البحث في الجهاز الافتراضي وعناصر التحكّم فيه وإدارته، كما يلي:
|
avd snapshot {list|save name|load name|delete
name}
|
يحفظ هذا الإعداد حالة الجهاز ويستعيدها في اللقطات على النحو التالي:
يحفظ المثال التالي لقطة باسم avd snapshot save firstactivitysnapshot |
fold
|
يتم طي الجهاز لعرض إعدادات شاشته الأصغر إذا كان قابلاً للطي وغير مطوي حاليًا. |
unfold
|
افتح الجهاز لعرض إعدادات شاشته الأكبر إذا كان قابلاً للطي ومطويًا حاليًا. |
kill
|
إنهاء الجهاز الافتراضي |
ping
|
للتحقّق مما إذا كان الجهاز الافتراضي قيد التشغيل أم لا. |
rotate
|
تدوير AVD عكس اتجاه عقارب الساعة بزيادات بمقدار 45 درجة |
تحطّم المحاكي | الوصف |
crash
|
يؤدي إلى إيقاف المحاكي أثناء تنفيذ التطبيق |
crash-on-exit |
يوقف المحاكي عند الخروج من التطبيق. |
علامات تصحيح الأخطاء | الوصف |
debug tags ...
|
تؤدي هذه السياسة إلى تفعيل رسائل تصحيح الأخطاء الواردة من أجزاء محدّدة من المحاكي أو إيقافها.
يجب أن تكون المَعلمة tags قيمة من قائمة علامات تصحيح الأخطاء التي تظهر عند تنفيذ
يعمل المثال التالي على تفعيل العلامة debug radio |
إعادة توجيه المنفذ | الوصف |
redir list
|
يسرد إعادة توجيه المنفذ الحالي. |
redir add protocol:host-port:guest-port
|
تتم إضافة إعادة توجيه منفذ جديد، على النحو التالي:
|
redir del protocol:host-port
|
حذف إعادة توجيه المنفذ.
|
الموقع الجغرافي | الوصف |
تُستخدم لتحديد الموقع الجغرافي الذي تم الإبلاغ عنه للتطبيقات التي تعمل داخل المحاكي عن طريق إرسال إصلاح نظام تحديد المواقع العالمي (GPS) إلى المحاكي. يمكنك إصدار أحد أمر |
|
geo fix longitude latitude [altitude] [satellites] [velocity]
|
لإرسال إصلاح بسيط لنظام تحديد المواقع العالمي (GPS) إلى المحاكي
حدِّد longitude وlatitude بالدرجات العشرية. استخدِم رقمًا من 1 إلى 12 لتحديد عدد
satellites المطلوب استخدامه لتحديد الموضع،
وحدِّد altitude بالمتر
وvelocity في العقد.
|
geo nmea sentence
|
يتم إرسال جملة NMEA 0183 إلى الجهاز الذي تمت محاكاته كما لو كانت مُرسَلة من
مودم لنظام تحديد المواقع العالمي (GPS) في وضع المحاكاة. ابدأ sentence بـ '$GP'.
يُسمح حاليًا باستخدام جمل '$GPGGA' و '$GPRCM' فقط. والمثال التالي هو جملة GPGGA (بيانات إصلاح نظام تحديد المواقع العالمي) التي تحصل على الوقت والموضع والإصلاح لبيانات جهاز استقبال نظام تحديد المواقع العالمي (GPS):
geo nmea $GPGGA ,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx |
أحداث أجهزة مزيّفة | الوصف |
event types
|
يسرد جميع أنواع الأحداث الزائفة. وبالنسبة إلى الفعاليات التي تحتوي على رموز، يظهر عدد الرموز بين قوسَين على يسار الصفحة.
event types event <type> can be an integer or one of the following aliases: EV_SYN EV_KEY (405 code aliases) EV_REL (2 code aliases) EV_ABS (27 code aliases) EV_MSC EV_SW (4 code aliases) EV_LED EV_SND EV_REP EV_FF EV_PWR EV_FF_STATUS EV_MAX OK |
event send types [types ...]
|
يتم إرسال نوع واحد أو أكثر من الأحداث المزيّفة. |
event codes type
|
يسرد رموز الأحداث لنوع الحدث المزيّف المحدّد. |
event send type[:code]:[value] [...]
|
يتم إرسال حدث مزيف واحد أو أكثر مع رموز وقيم رموز اختيارية.
لمعرفة الحدث المطلوب إرساله بالضبط، يمكنك استخدام الأمر في ما يلي الأحداث التي تم إنشاؤها عندما تضغط على زر التشغيل: adb shell getevent -lt /dev/input/event12: EV_KEY KEY_POWER DOWN /dev/input/event12: EV_SYN SYN_REPORT 00000000 /dev/input/event12: EV_KEY KEY_POWER UP /dev/input/event12: EV_SYN SYN_REPORT 00000000على سبيل المثال، لمحاكاة الضغط مع الاستمرار على زر التشغيل، أرسِل حدثَي EV_KEY من أجل الضغط على المفتاح ومفتاح التشغيل:
event send EV_KEY:KEY_POWER:0 OK event send EV_KEY:KEY_POWER:1 OK |
event text message
|
لإرسال سلسلة من الأحرف تحاكي الضغطات على المفاتيح. يجب أن تكون الرسالة سلسلة UTF-8. تتم ربط مشاركات Unicode بشكل عكسي وفقًا للوحة مفاتيح الجهاز الحالية، ويتم تجاهل الأحرف غير المتوافقة تلقائيًا. |
عناصر التحكّم في حالة التشغيل | الوصف |
power display
|
لعرض حالة البطارية والشاحن. |
power ac {on|off}
|
تضبط حالة شحن التيار المتردد على on أو off .
|
power status {unknown|charging|discharging|not-charging|full}
|
تغيّر حالة البطارية كما هو محدَّد. |
power present {true|false}
|
ضبط حالة توفُّر البطارية |
power health {unknown|good|overheat|dead|overvoltage|failure}
|
يضبط حالة سلامة البطارية. |
power capacity percent
|
لضبط حالة السعة المتبقية للبطارية كنسبة مئوية من 0 إلى 100 |
حالة الاتصال بالشبكة | الوصف |
network status
|
لفحص حالة الشبكة وخصائص التأخير والسرعة الحالية |
network delay latency
|
تغيّر وقت استجابة الشبكة في وضع المحاكاة. يتيح لك المحاكي محاكاة مستويات مختلفة من وقت استجابة الشبكة لتتمكن من اختبار تطبيقك في بيئة أكثر نموذجية من ظروف التشغيل الفعلية. يمكنك ضبط مستوى وقت الاستجابة أو نطاق زمني عند بدء تشغيل المحاكي، أو يمكنك استخدام وحدة التحكم لتغيير وقت الاستجابة أثناء تشغيل التطبيق في المحاكي. تنسيق الشبكة latency هو واحد من التنسيقات التالية (الأرقام بالمللي ثانية): تنسيق وقت استجابة الشبكة:
لضبط وقت الاستجابة عند بدء تشغيل المحاكي، استخدِم خيار المحاكي emulator -netdelay gprs emulator -netdelay 40,100 لإجراء تغييرات على مهلة الشبكة أثناء تشغيل المحاكي، يجب الاتصال بوحدة التحكّم واستخدام
الأمر network delay gprs network delay 40 100 |
network speed speed |
يتيح لك المحاكي محاكاة معدّلات نقل مختلفة على الشبكة.
يمكنك ضبط معدّل النقل أو النطاق عند بدء تشغيل المحاكي، أو يمكنك استخدام وحدة التحكّم لتغيير المعدّل أثناء تشغيل التطبيق في المحاكي. تنسيق الشبكة تنسيق سرعة الشبكة:
لضبط سرعة الشبكة عند بدء تشغيل المحاكي، استخدِم emulator -netspeed gsm @Pixel_API_26 emulator -netspeed 14.4,80 @Pixel_API_26 لإجراء تغييرات في سرعة الشبكة أثناء تشغيل المحاكي، يجب الاتصال بوحدة التحكّم
واستخدام الأمر network speed 14.4 80 |
network capture {start|stop} file |
إرسال الحزم إلى ملف توضّح القائمة التالية المَعلمات
وقيم المَعلمات:
|
محاكاة الاتصالات الهاتفية | الوصف |
يشتمل محاكي Android على مودمات تحاكي نظامَي GSM وCDMA والتي تتيح لك محاكاة وظائف الاتصالات الهاتفية في المحاكي. على سبيل المثال، باستخدام بروتوكول GSM، يمكنك محاكاة المكالمات الهاتفية الواردة وإنشاء اتصالات البيانات وإنهائها. باستخدام CDMA، يمكنك توفير مصدر الاشتراك وقائمة التجوال المفضّلة. يتعامل نظام Android مع المكالمات التي تمت محاكاتها تمامًا كما يتعامل مع المكالمات الفعلية. المحاكي لا يدعم صوت المكالمات. | |
gsm {call|accept|cancel|busy} phonenumber
|
في ما يلي مَعلمات gsm :
|
gsm {data|voice} state
|
يغيِّر الأمر data state حالة اتصال بيانات خدمة GPRS، ويغيّر الأمر data voice state حالة اتصال بيانات شبكة GPRS الصوتية على النحو التالي:
|
gsm hold
|
تغيير حالة المكالمة إلى hold . يمكنك تغيير
حالة الاتصال إلى hold فقط عندما تكون حالتها الحالية active أو
waiting .
|
gsm list
|
يسرد جميع المكالمات الواردة والصادرة وحالاتها. |
gsm status
|
تعمل هذه السياسة على الإبلاغ عن حالة صوت/بيانات بروتوكول GSM الحالية. والقيم هي القيم الموضحة للأمرَين voice وdata .
|
gsm signal {rssi|ber}
|
تغيّر قوة الإشارة (rssi) التي تم الإبلاغ عنها ومعدل أخطاء البت (ber) خلال الـ 15 ثانية التالية من التحديث. توضّح القائمة التالية المَعلمات وقيمها:
|
gsm signal-profile num
|
يضبط ملف تعريف قوة الإشارة.
num هو رقم من 0 إلى 4.
|
cdma ssource source
|
تعمل هذه السياسة على ضبط مصدر اشتراك CDMA الحالي، حيث إنّ source هي قائمة مسموح بها مستندة إلى الشبكة تحتوي على المشتركين في مشغّل شبكة الجوّال CDMA وقيمها، كما يلي:
|
cdma prl_version version
|
يؤدي هذا الخيار إلى تفريغ إصدار قائمة التجوال المفضل (PRL) الحالي. رقم الإصدار مخصّص لقاعدة بيانات PRL التي تحتوي على المعلومات المستخدَمة أثناء عملية اختيار النظام والاكتساب. |
إدارة أجهزة الاستشعار في المحاكي | الوصف |
وتتعلّق هذه الأوامر
بأجهزة الاستشعار المتوفرة في "متوسّط مدة المشاهدة". وبالإضافة إلى استخدام الأمر sensor ، يمكنك الاطّلاع على الإعدادات في المحاكي وضبطها في شاشة أدوات الاستشعار الافتراضية ضمن علامتَي التبويب مقياس التسارع وأدوات استشعار إضافية.
|
|
sensor status |
يتم عرض جميع أدوات الاستشعار وحالتها. في ما يلي مثال على ناتج الأمر sensor status :
|
sensor get sensor-name
|
الحصول على إعدادات sensor-name يحصل المثال التالي على
قيمة أداة استشعار التسارع:
sensor get acceleration acceleration = 2.23517e-07:9.77631:0.812348
تشير قيم |
sensor set sensor-name value-x:value-y:value-z
|
تحدِّد قيم sensor-name . ويضبط المثال التالي أداة استشعار التسارع على قيم x وy وz مفصولة بنقطتين.
sensor set acceleration 2.23517e-07:9.77631:0.812348 |
محاكاة الرسائل القصيرة SMS | الوصف |
sms send sender-phone-number textmessage
|
إنشاء رسالة قصيرة واردة تمت محاكاتها. توضّح القائمة التالية المَعلمات وقيمها:
يرسل المثال التالي الرسالة "مرحبًا بك" إلى رقم الهاتف 4085555555: sms send 4085555555 hi there تعيد وحدة التحكّم توجيه الرسائل القصيرة SMS إلى إطار عمل Android، الذي يمرّرها إلى تطبيق على المحاكي الذي يعالج الرسائل القصيرة، مثل تطبيق "الرسائل". وإذا مررت 10 أرقام، سينسّق التطبيق تلك الأرقام كرقم هاتف. إنّ السلاسل الرقمية الأطول أو الأقصر تعرض الطريقة التي أرسلتها.
|
محاكاة بصمة الإصبع | الوصف |
finger touch fingerprint-id
|
يحاكي إصبع لمس أداة الاستشعار. |
finger remove
|
يحاكي عملية إزالة الإصبع.
للحصول على تعليمات حول كيفية استخدام هذه الطلبات، راجِع القسم التالي حول محاكاة بصمة الإصبع والتحقق من الصحة. |
محاكاة بصمة الإصبع والتحقق من صحتها
استخدِم الأمر finger
لمحاكاة مصادقة بصمة الإصبع والتحقّق من صحتها لتطبيقك. تحتاج إلى الإصدار 24.3 من أدوات SDK أو إصدار أحدث والإصدار 6.0 من Android (المستوى 23 من واجهة برمجة التطبيقات) أو إصدار أحدث.
لمحاكاة المصادقة ببصمة الإصبع والتحقق من صحتها، اتبع الخطوات التالية:
- إذا لم يكن لديك معرّف بصمة إصبع حتى الآن، يمكنك تسجيل بصمة إصبع جديدة في المحاكي من خلال اختيار الإعدادات > الأمان > بصمة الإصبع واتّباع تعليمات التسجيل.
- عليك إعداد تطبيقك لقبول المصادقة ببصمة الإصبع. بعد تنفيذ هذا الإعداد، سيعرض جهازك شاشة المصادقة ببصمة الإصبع.
- أثناء عرض تطبيقك شاشة المصادقة ببصمة الإصبع، انتقِل إلى وحدة التحكّم وأدخِل الأمر
finger touch
ومعرّف بصمة الإصبع الذي أنشأته. ويحاكي هذا الإجراء لمس الإصبع. - بعد ذلك، أدخِل الأمر
finger remove
لمحاكاة إزالة الإصبع.من المفترض أن يستجيب التطبيق كأنه لمس المستخدم ثم أزال إصبعه من أداة استشعار بصمة الإصبع.