هر دستگاه مجازی در حال اجرا یک کنسول ارائه می دهد که به شما امکان می دهد محیط دستگاه شبیه سازی شده را جستجو و کنترل کنید. برای مثال، میتوانید از کنسول برای مدیریت تغییر مسیر پورت، ویژگیهای شبکه و رویدادهای تلفنی در زمانی که برنامه شما در شبیهساز اجرا میشود، استفاده کنید.
دستورات زیر مستلزم این است که از قبل یک شبیه ساز در حال اجرا داشته باشید. برای اطلاعات بیشتر در مورد اجرای شبیه ساز، به اجرای برنامه ها در شبیه ساز Android و شروع شبیه ساز از خط فرمان مراجعه کنید.
یک جلسه کنسول را شروع و متوقف کنید
برای دسترسی به کنسول و وارد کردن دستورات از پنجره ترمینال، از telnet
برای اتصال به پورت کنسول و ارائه رمز احراز هویت خود استفاده کنید. هر بار که کنسول OK را نمایش می دهد، آماده پذیرش دستورات است. یک اعلان معمولی وجود ندارد.
برای اتصال به کنسول یک دستگاه مجازی در حال اجرا:
- یک پنجره ترمینال باز کنید و دستور زیر را وارد کنید:
- پس از نمایش
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.
مرجع فرمان شبیه ساز
جدول زیر دستورات کنسول شبیه ساز را با پارامترها و مقادیر آنها توضیح می دهد:
دستورات عمومی | توضیحات |
---|---|
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 برای 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 | وضعیت ظرفیت باقیمانده باتری را به صورت درصد از 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 | بسته ها را به یک فایل ارسال می کند. لیست زیر پارامترها و مقادیر پارامترها را توضیح می دهد:
|
شبیه سازی تلفن | توضیحات |
شبیه ساز اندروید شامل مودم های شبیه سازی شده 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 تماس را تغییر می دهد. می توانید حالت تماس را تغییر دهید تا فقط زمانی که وضعیت فعلی آن active یا waiting است، hold . |
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 است که حاوی اطلاعات مورد استفاده در فرآیند انتخاب و اکتساب سیستم است. |
حسگرها را روی شبیه ساز مدیریت کنید | توضیحات |
این دستورات مربوط به سنسورهای موجود در AVD است. علاوه بر استفاده از فرمان 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 | یک اس ام اس ورودی شبیه سازی شده ایجاد می کند. لیست زیر پارامترها و مقادیر آنها را توضیح می دهد:
مثال زیر پیام "سلام" را به شماره تلفن 4085555555 ارسال می کند: sms send 4085555555 hi there کنسول پیام اس ام اس را به فریم ورک اندروید می فرستد، که آن را به برنامه ای در شبیه ساز که پیامک را مدیریت می کند، مانند برنامه پیام ها، ارسال می کند. اگر 10 شماره را ارسال کنید، برنامه آن را به عنوان شماره تلفن فرمت می کند. رشته های عددی طولانی تر یا کوتاه تر، روشی را که شما آنها را ارسال کرده اید نشان می دهد. |
شبیه سازی اثر انگشت | توضیحات |
finger touch fingerprint-id | لمس انگشت حسگر را شبیه سازی می کند. |
finger remove | شبیه سازی برداشتن انگشت برای دستورالعملهای مربوط به نحوه استفاده از این دستورات، به بخش زیر در مورد شبیهسازی و اعتبارسنجی اثر انگشت مراجعه کنید. |
شبیه سازی و اعتبار سنجی اثر انگشت
از فرمان finger
برای شبیه سازی و تأیید اعتبار اثر انگشت برای برنامه خود استفاده کنید. شما به ابزار SDK 24.3 یا بالاتر و Android 6.0 (سطح API 23) یا بالاتر نیاز دارید.
برای شبیه سازی و اعتبارسنجی احراز هویت اثر انگشت، مراحل زیر را دنبال کنید:
- اگر هنوز شناسه اثر انگشت ندارید، با انتخاب Settings > Security > Fingerprint و دنبال کردن دستورالعملهای ثبتنام، یک اثر انگشت جدید را در شبیهساز ثبت کنید.
- برنامه خود را طوری تنظیم کنید که احراز هویت اثر انگشت را بپذیرد. پس از انجام این تنظیمات، دستگاه شما صفحه تأیید هویت اثر انگشت را نشان می دهد.
- در حالی که برنامه شما صفحه تأیید هویت اثر انگشت را نشان می دهد، به کنسول بروید و فرمان
finger touch
و شناسه اثر انگشتی که ایجاد کرده اید را وارد کنید. این یک لمس انگشت را شبیه سازی می کند. - سپس دستور
finger remove
برای شبیه سازی حذف انگشت وارد کنید.برنامه شما باید طوری پاسخ دهد که گویی کاربر انگشت خود را لمس کرده و سپس از روی حسگر اثر انگشت برداشته است.