يوفر كل جهاز افتراضي قيد التشغيل وحدة تحكم تتيح لك طلب البحث عن الأجهزة الافتراضية التي تتم محاكاتها والتحكم فيها. بيئة الجهاز. على سبيل المثال، يمكنك استخدام وحدة التحكم لإدارة إعادة توجيه المنفذ، وشبكة وأحداث الاتصال الهاتفي أثناء تشغيل تطبيقك على المحاكي.
تتطلب الأوامر التالية أن يكون لديك محاكي قيد التشغيل. لمزيد من المعلومات، معلومات حول تشغيل المحاكي، فاطلع على تشغيل التطبيقات على محاكي Android ابدأ تشغيل المحاكي من سطر الأوامر.
بدء جلسة وحدة تحكُّم وإيقافها
للوصول إلى وحدة التحكّم وإدخال الأوامر من نافذة طرفية، يمكنك استخدام telnet لإجراء ما يلي:
اتصل بمنفذ وحدة التحكم وقدم رمز المصادقة المميز. في كل مرة يتم فيها عرض وحدة التحكم
حسنًا، يمكنك الآن قبول الأوامر. لا يتوفّر طلب عادي.
للربط بوحدة التحكّم على جهاز افتراضي قيد التشغيل:
- افتح نافذة المحطة الطرفية وأدخل الأمر التالي:
- بعد أن تعرض وحدة التحكّم OK، أدخِل الأمرauth auth_token.
- بعد الاتصال بوحدة التحكّم، أدخِل أوامر وحدة التحكّم.
- للخروج من جلسة وحدة التحكّم، أدخِل quitأوexit.
telnet localhost console-port
يسرد عنوان نافذة المحاكي رقم منفذ وحدة التحكم عند تشغيله في نافذة منفصلة ولكن
  وليس عند تشغيله في نافذة الأداة. على سبيل المثال، عنوان النافذة لمحاكي يستخدم منفذ وحدة التحكم 5554
  يمكن أن تكون Pixel8_API_34: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
    nodraw           turn on/off NoDraw mode. (experimental)
    resize-display   resize the display resolution to the preset size
    virtualscene-image  customize virtualscene image for virtulscene camera
    proxy            manage network proxy server settings
    phonenumber      set phone number for the device
try 'help <command>' for command-specific help
OK
exit
Connection closed by foreign host.
مرجع طلبات المحاكي
ويصف الجدول التالي أوامر وحدة التحكم المحاكية بالمعلمات والقيم الخاصة بها:
الجدول 1. أوامر وحدة تحكّم المحاكي
| طلبات عامة | الوصف | 
|---|---|
| avd {stop|start|status|name} | طلبات البحث في الجهاز الافتراضي وعناصر التحكّم فيه وإدارته على النحو التالي: 
 | 
| avd snapshot {list|save name|load name|delete
        name} | يحفظ هذا الإعداد حالة الجهاز ويستعيدها في اللقطات، كما يلي: 
 يحفظ المثال التالي لقطة بالاسم
         avd snapshot save firstactivitysnapshot | 
| fold | يعمل هذا الإجراء على طيّ الجهاز لعرض إعدادات الشاشة الأصغر حجمًا، إذا كان الجهاز قابلاً للطيّ غير مطوية حاليًا. | 
| unfold | يفتح الجهاز لعرض الإعدادات الأكبر للشاشة، إذا كان الجهاز قابلاً للطي مطوية حاليًا. | 
| kill | إنهاء الجهاز الافتراضي | 
| ping | يتحقّق مما إذا كان الجهاز الافتراضي قيد التشغيل. | 
| rotate | تدوير متوسّط مدة المشاهدة عكس عقارب الساعة بزيادات بمقدار 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لتشغيل لوحة المفاتيح وميزة Keyup:
event send EV_KEY:KEY_POWER:0
OK
event send EV_KEY:KEY_POWER:1
OK
       | 
| event text message | ترسل سلسلة من الأحرف تحاكي الضغط على المفاتيح. يجب أن تكون الرسالة سلسلة UTF-8. يتم ربط مشاركات يونيكود عكسيًا وفقًا للوحة مفاتيح الجهاز الحالية، وهي غير متاحة. يتم تجاهل الحروف تلقائيًا. | 
| عناصر التحكّم في حالة التشغيل | الوصف | 
| 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" فقط عندما تكون حالتها الحالية هيactivewaiting | 
| 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 send sender-phone-number textmessage | إنشاء رسالة قصيرة SMS واردة في وضع المحاكاة. تصف القائمة التالية المعاملات
        القيم الخاصة بها: 
 يرسل المثال التالي الرسالة "مرحبًا" إلى رقم الهاتف 4085555555: sms send 4085555555 hi there تعيد وحدة التحكم توجيه رسالة SMS إلى إطار عمل Android، والذي ينقلها إلى على المحاكي يتعامل مع الرسائل القصيرة، مثل تطبيق "الرسائل". إذا تجاوزت 10 أرقام، يقوم التطبيق بتنسيقه كرقم هاتف. تعرض السلاسل الرقمية الأطول أو الأقصر الطريقة الذي أرسلتها إليهم. 
 | 
| محاكاة بصمة الإصبع | الوصف | 
| finger touch fingerprint-id | يحاكي هذا الزر إصبعًا يلمس أداة الاستشعار. | 
| finger remove | محاكاة لإزالة الأصابع للحصول على تعليمات حول كيفية استخدام هذه الأوامر، راجِع القسم التالي حول محاكاة بصمات الأصابع والتحقُّق من صحتها | 
محاكاة بصمة الإصبع والتحقّق من صحتها
 
    الشكل 1. شاشة مصادقة بصمة الإصبع
يمكنك استخدام الأمر finger لمحاكاة المصادقة ببصمة الإصبع والتحقق من صحتها في
التطبيق. يجب استخدام الإصدار 24.3 أو إصدار أحدث من حزمة تطوير البرامج (SDK) وكذلك الإصدار Android 6.0 (المستوى 23 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث.
لمحاكاة المصادقة ببصمة الإصبع والتحقق من صحتها، اتبع الخطوات التالية:
- إذا لم يكن لديك رقم تعريف بصمة إصبع حتى الآن، يمكنك تسجيل بصمة إصبع جديدة في المحاكي. عن طريق اختيار الإعدادات > الأمان > بصمة الإصبع ومتابعة تعليمات التسجيل.
- يجب إعداد التطبيق لقبولها بصمة إصبع المصادقة. بعد إجراء هذا الإعداد، يعرض جهازك بصمة الإصبع. شاشة المصادقة.
- عندما يعرض تطبيقك شاشة المصادقة ببصمة الإصبع، انتقِل إلى وحدة التحكّم.
        أدخِل الأمر finger touchورقم تعريف بصمة الإصبع الذي أنشأته. هذا النمط يحاكي لمسة إصبع.
- بعد ذلك، أدخِل الأمر finger removeلمحاكاة إزالة الإصبع.يجب أن يستجيب تطبيقك كما لو لمس أحد المستخدمين ثم أزال إصبعه من مستشعر بصمات الإصبع. 
