يوفر كل جهاز افتراضي قيد التشغيل وحدة تحكّم تتيح لك طلب البيانات من بيئة الجهاز المحاكى والتحكّم فيها. على سبيل المثال، يمكنك استخدام وحدة التحكّم لإدارة إعادة توجيه المنفذ وخصائص الشبكة وأحداث الاتصال الهاتفي أثناء تشغيل تطبيقك على المحاكي.
تتطلّب الأوامر التالية أن يكون لديك محاكي قيد التشغيل. لمزيد من المعلومات حول تشغيل محاكي، يُرجى الاطّلاع على تشغيل التطبيقات على "محاكي Android" وبدء المحاكي من سطر الأوامر.
بدء جلسة وحدة تحكّم وإيقافها
للوصول إلى وحدة التحكم وإدخال الأوامر من نافذة طرفية، استخدِم telnet للاتصال بمنفذ وحدة التحكم وتقديم رمز المصادقة. في كل مرة تعرض فيها وحدة التحكّم موافق، تكون جاهزة لتلقّي الأوامر. ليس هناك طلب نموذجي.
للاتصال بوحدة تحكّم جهاز افتراضي قيد التشغيل، اتّبِع الخطوات التالية:
- افتح نافذة Terminal وأدخِل الأمر التالي:
- بعد أن تعرض وحدة التحكّم
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 (ethernet and cellular only)
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
|
تدوير الجهاز الظاهري لنظام التشغيل Android (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 لعمليتَي keydown وkeyup:
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 التي تحتوي على معلومات مستخدَمة أثناء عملية اختيار النظام واكتسابه. |
| إدارة أدوات الاستشعار على المحاكي | الوصف |
تتعلّق هذه الأوامر بأدوات الاستشعار المتوفّرة في جهاز Android الافتراضي. بالإضافة إلى استخدام الأمر 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)" والإصدار 6.0 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات 23) أو إصدار أحدث.
لمحاكاة عملية مصادقة بصمة الإصبع والتحقّق من صحتها، اتّبِع الخطوات التالية:
- إذا لم يكن لديك معرّف بصمة إصبع، سجِّل بصمة إصبع جديدة في المحاكي من خلال النقر على الإعدادات > الأمان > بصمة الإصبع واتّباع تعليمات التسجيل.
- اضبط إعدادات تطبيقك لقبول المصادقة ببصمة الإصبع. بعد إكمال عملية الإعداد هذه، يعرض جهازك شاشة مصادقة بصمة الإصبع.
- أثناء عرض تطبيقك لشاشة مصادقة بصمة الإصبع، انتقِل إلى وحدة التحكّم وأدخِل الأمر
finger touchومعرّف بصمة الإصبع الذي أنشأته. يحاكي هذا الإجراء لمسة إصبع. - بعد ذلك، أدخِل الأمر
finger removeلمحاكاة إزالة الإصبع.يجب أن يستجيب تطبيقك كما لو أنّ المستخدم وضع إصبعه على أداة استشعار بصمة الإصبع ثم أزاله.