هر دستگاه مجازی در حال اجرا، کنسولی را ارائه میدهد که به شما امکان میدهد محیط دستگاه شبیهسازی شده را جستجو و کنترل کنید. به عنوان مثال، میتوانید از کنسول برای مدیریت تغییر مسیر پورت، ویژگیهای شبکه و رویدادهای تلفنی در حالی که برنامه شما روی شبیهساز اجرا میشود، استفاده کنید.
دستورات زیر مستلزم آن است که شما از قبل یک شبیهساز را اجرا کرده باشید. برای اطلاعات بیشتر در مورد اجرای یک شبیهساز، به «اجرای برنامهها در شبیهساز اندروید» و «شروع شبیهساز از خط فرمان» مراجعه کنید.
شروع و توقف یک جلسه کنسول
برای دسترسی به کنسول و وارد کردن دستورات از طریق پنجره ترمینال، telnet برای اتصال به پورت کنسول و ارائه توکن احراز هویت خود استفاده کنید. هر بار که کنسول عبارت OK را نمایش میدهد، آماده پذیرش دستورات است. هیچ اعلان معمولی وجود ندارد.
برای اتصال به کنسول یک دستگاه مجازی در حال اجرا:
- یک پنجره ترمینال باز کنید و دستور زیر را وارد کنید:
- بعد از اینکه کنسول
OKرا نمایش داد، دستورauth auth_tokenرا وارد کنید. - بعد از اینکه به کنسول متصل شدید، دستورات کنسول را وارد کنید.
- برای خروج از جلسه کنسول،
quitیاexitرا وارد کنید.
telnet localhost console-port
عنوان پنجره شبیهساز، شماره پورت کنسول را هنگام اجرا در یک پنجره جداگانه فهرست میکند، اما نه هنگام اجرا در یک پنجره ابزار. به عنوان مثال، عنوان پنجره برای یک شبیهساز که از پورت کنسول ۵۵۵۴ استفاده میکند، میتواند Pixel8_API_34:5554 باشد. همچنین، دستور adb devices لیستی از دستگاههای مجازی در حال اجرا و شماره پورت کنسول آنها را چاپ میکند. برای اطلاعات بیشتر، به Query for devices مراجعه کنید.
نکته: شبیهساز به اتصالات روی پورتهای ۵۵۵۴ تا ۵۵۸۵ گوش میدهد و فقط اتصالات از 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 } | وضعیت دستگاه را در اسنپشاتها ذخیره و بازیابی میکند، به شرح زیر:
مثال زیر یک snapshot با نام avd snapshot save firstactivitysnapshot |
fold | اگر دستگاه تاشو باشد و در حال حاضر باز باشد، دستگاه را تا میکند تا پیکربندی صفحه نمایش کوچکتر آن نمایش داده شود. |
unfold | اگر دستگاه تاشو باشد و در حال حاضر تا شده باشد، دستگاه را باز میکند تا پیکربندی صفحه نمایش بزرگتر آن نمایش داده شود. |
kill | دستگاه مجازی را خاتمه میدهد. |
ping | بررسی میکند که آیا دستگاه مجازی در حال اجرا است یا خیر. |
rotate | AVD را در جهت خلاف عقربههای ساعت و با گامهای ۴۵ درجه میچرخاند. |
| خراب شدن شبیهساز | توضیحات |
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 بر حسب درجه اعشاری مشخص کنید. از عددی بین ۱ تا ۱۲ برای مشخص کردن تعداد 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 باشد. پستهای یونیکد مطابق با صفحه کلید فعلی دستگاه، نگاشت معکوس میشوند و کاراکترهای پشتیبانی نشده بیصدا حذف میشوند. |
| کنترلهای وضعیت توان | توضیحات |
power display | وضعیت باتری و شارژر را نمایش میدهد. |
power ac {on|off} | وضعیت شارژ AC را روی 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 | وضعیت ظرفیت باتری باقیمانده را به صورت درصد از ۰ تا ۱۰۰ تنظیم میکند. |
| وضعیت اتصال به شبکه (فقط اترنت و تلفن همراه) | توضیحات |
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 | بستهها را به یک فایل ارسال میکند. لیست زیر پارامترها و مقادیر پارامترها را شرح میدهد:
|
| شبیهسازی تلفن | توضیحات |
| شبیهساز اندروید شامل مودمهای شبیهسازیشدهی GSM و CDMA مخصوص به خود است که به شما امکان میدهد عملکردهای تلفنی را در شبیهساز شبیهسازی کنید. برای مثال، با GSM میتوانید تماسهای تلفنی ورودی را شبیهسازی کرده و اتصالات داده را برقرار و خاتمه دهید. با CDMA، شما یک منبع اشتراک و لیست رومینگ ترجیحی ارائه میدهید. سیستم اندروید تماسهای شبیهسازیشده را دقیقاً مانند تماسهای واقعی مدیریت میکند. شبیهساز از صدای تماس پشتیبانی نمیکند. | |
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) را در ۱۵ ثانیه بعدی بهروزرسانی تغییر میدهد. لیست زیر پارامترها و مقادیر آنها را شرح میدهد:
|
gsm signal-profile num | مشخصات قدرت سیگنال را تنظیم میکند. num عددی از ۰ تا ۴ است. |
cdma ssource source | منبع اشتراک CDMA فعلی را تنظیم میکند، که در آن source یک لیست مجاز مبتنی بر شبکه است که شامل مشترکین اپراتور CDMA و مقادیر آنها است، به شرح زیر:
|
cdma prl_version version | نسخه فعلی فهرست رومینگ ترجیحی (PRL) را حذف میکند. شماره نسخه مربوط به پایگاه داده PRL است که حاوی اطلاعات مورد استفاده در طول فرآیند انتخاب و اکتساب سیستم است. |
| مدیریت حسگرها در شبیهساز | توضیحات |
این دستورات مربوط به سنسورهای موجود در AVD هستند. علاوه بر استفاده از دستور sensor ، میتوانید تنظیمات را در شبیهساز در صفحه Virtual sensors در تبهای Accelerometer و Additional sensors مشاهده و تنظیم کنید. | |
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 | یک پیامک ورودی شبیهسازیشده تولید میکند. لیست زیر پارامترها و مقادیر آنها را شرح میدهد:
مثال زیر پیام "hi there" را به شماره تلفن ۴۰۸۵۵۵۵۵۵۵ ارسال میکند: sms send 4085555555 hi there کنسول، پیام SMS را به فریمورک اندروید ارسال میکند که آن را به برنامهای روی شبیهساز که SMS را مدیریت میکند، مانند برنامه Messages، ارسال میکند. اگر 10 عدد وارد کنید، برنامه آن را به صورت شماره تلفن قالببندی میکند. رشتههای عددی طولانیتر یا کوتاهتر، نحوه ارسال آنها را نشان میدهند. |
| شبیهسازی اثر انگشت | توضیحات |
finger touch fingerprint-id | لمس حسگر توسط انگشت را شبیهسازی میکند. |
finger remove | حذف انگشت را شبیهسازی میکند. برای دستورالعملهای مربوط به نحوه استفاده از این دستورات، به بخش زیر در مورد شبیهسازی و اعتبارسنجی اثر انگشت مراجعه کنید. |
شبیهسازی و اعتبارسنجی اثر انگشت

شکل ۱. صفحه تأیید اثر انگشت.
از دستور finger برای شبیهسازی و اعتبارسنجی احراز هویت اثر انگشت برای برنامه خود استفاده کنید. به SDK Tools نسخه ۲۴.۳ یا بالاتر و اندروید ۶.۰ (سطح API ۲۳) یا بالاتر نیاز دارید.
برای شبیهسازی و اعتبارسنجی احراز هویت اثر انگشت، مراحل زیر را دنبال کنید:
- اگر هنوز شناسه اثر انگشت ندارید، با انتخاب تنظیمات > امنیت > اثر انگشت و دنبال کردن دستورالعملهای ثبتنام، یک اثر انگشت جدید در شبیهساز ثبت کنید.
- برنامه خود را طوری تنظیم کنید که احراز هویت اثر انگشت را بپذیرد. پس از انجام این تنظیمات، دستگاه شما صفحه احراز هویت اثر انگشت را نمایش میدهد.
- در حالی که برنامه شما صفحه تأیید اثر انگشت را نمایش میدهد، به کنسول بروید و دستور
finger touchو شناسه اثر انگشتی که ایجاد کردهاید را وارد کنید. این کار لمس انگشت را شبیهسازی میکند. - سپس، دستور
finger removeرا برای شبیهسازی حذف انگشت وارد کنید.برنامه شما باید طوری واکنش نشان دهد که انگار کاربر انگشت خود را روی حسگر اثر انگشت لمس کرده و سپس آن را برداشته است.