يوفر كل جهاز افتراضي قيد التشغيل وحدة تحكم تتيح لك طلب البحث عن الأجهزة الافتراضية التي تتم محاكاتها والتحكم فيها. بيئة الجهاز. على سبيل المثال، يمكنك استخدام وحدة التحكم لإدارة إعادة توجيه المنفذ، وشبكة وأحداث الاتصال الهاتفي أثناء تشغيل تطبيقك على المحاكي.
تتطلب الأوامر التالية أن يكون لديك محاكي قيد التشغيل. لمزيد من المعلومات، معلومات حول تشغيل المحاكي، فاطلع على تشغيل التطبيقات على محاكي 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 " فقط عندما تكون حالتها الحالية هي 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 send sender-phone-number textmessage
|
إنشاء رسالة قصيرة SMS واردة في وضع المحاكاة. تصف القائمة التالية المعاملات
القيم الخاصة بها:
يرسل المثال التالي الرسالة "مرحبًا" إلى رقم الهاتف 4085555555: sms send 4085555555 hi there تعيد وحدة التحكم توجيه رسالة SMS إلى إطار عمل Android، والذي ينقلها إلى على المحاكي يتعامل مع الرسائل القصيرة، مثل تطبيق "الرسائل". إذا تجاوزت 10 أرقام، يقوم التطبيق بتنسيقه كرقم هاتف. تعرض السلاسل الرقمية الأطول أو الأقصر الطريقة الذي أرسلتها إليهم.
|
محاكاة بصمة الإصبع | الوصف |
finger touch fingerprint-id
|
يحاكي هذا الزر إصبعًا يلمس أداة الاستشعار. |
finger remove
|
محاكاة لإزالة الأصابع
للحصول على تعليمات حول كيفية استخدام هذه الأوامر، راجِع القسم التالي حول محاكاة بصمات الأصابع والتحقُّق من صحتها |
محاكاة بصمة الإصبع والتحقّق من صحتها
![](https://developer.android.com/static/studio/images/run/fingerprint_2x.png?authuser=9&hl=ar)
الشكل 1. شاشة مصادقة بصمة الإصبع
يمكنك استخدام الأمر finger
لمحاكاة المصادقة ببصمة الإصبع والتحقق من صحتها في
التطبيق. يجب استخدام الإصدار 24.3 أو إصدار أحدث من حزمة تطوير البرامج (SDK) وكذلك الإصدار Android 6.0 (المستوى 23 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث.
لمحاكاة المصادقة ببصمة الإصبع والتحقق من صحتها، اتبع الخطوات التالية:
- إذا لم يكن لديك رقم تعريف بصمة إصبع حتى الآن، يمكنك تسجيل بصمة إصبع جديدة في المحاكي. عن طريق اختيار الإعدادات > الأمان > بصمة الإصبع ومتابعة تعليمات التسجيل.
- يجب إعداد التطبيق لقبولها بصمة إصبع المصادقة. بعد إجراء هذا الإعداد، يعرض جهازك بصمة الإصبع. شاشة المصادقة.
- عندما يعرض تطبيقك شاشة المصادقة ببصمة الإصبع، انتقِل إلى وحدة التحكّم.
أدخِل الأمر
finger touch
ورقم تعريف بصمة الإصبع الذي أنشأته. هذا النمط يحاكي لمسة إصبع. - بعد ذلك، أدخِل الأمر
finger remove
لمحاكاة إزالة الإصبع.يجب أن يستجيب تطبيقك كما لو لمس أحد المستخدمين ثم أزال إصبعه من مستشعر بصمات الإصبع.