هر دستگاه مجازی در حال اجرا، کنسولی را ارائه میدهد که به شما امکان میدهد محیط دستگاه شبیهسازی شده را جستجو و کنترل کنید. به عنوان مثال، میتوانید از کنسول برای مدیریت تغییر مسیر پورت، ویژگیهای شبکه و رویدادهای تلفنی در حالی که برنامه شما روی شبیهساز اجرا میشود، استفاده کنید.
دستورات زیر مستلزم آن است که شما از قبل یک شبیهساز را اجرا کرده باشید. برای اطلاعات بیشتر در مورد اجرای یک شبیهساز، به «اجرای برنامهها در شبیهساز اندروید» و «شروع شبیهساز از خط فرمان» مراجعه کنید.
شروع و توقف یک جلسه کنسول
برای دسترسی به کنسول و وارد کردن دستورات از طریق پنجره ترمینال، از telnet برای اتصال به پورت کنسول و ارائه توکن احراز هویت خود استفاده کنید. هر بار که کنسول عبارت OK را نمایش میدهد، آماده پذیرش دستورات است. هیچ اعلان معمولی وجود ندارد.
برای اتصال به کنسول یک دستگاه مجازی در حال اجرا:
یک پنجره ترمینال باز کنید و دستور زیر را وارد کنید:
telnet localhost console-portعنوان پنجره شبیهساز، شماره پورت کنسول را هنگام اجرا در یک پنجره جداگانه فهرست میکند، اما نه هنگام اجرا در یک پنجره ابزار. برای مثال، عنوان پنجره برای یک شبیهساز که از پورت کنسول ۵۵۵۴ استفاده میکند، میتواند Pixel8_API_34:5554 باشد. همچنین، دستور
adb devicesفهرستی از دستگاههای مجازی در حال اجرا و شماره پورت کنسول آنها را چاپ میکند. برای اطلاعات بیشتر، به Query for devices مراجعه کنید.نکته: شبیهساز به اتصالات روی پورتهای ۵۵۵۴ تا ۵۵۸۵ گوش میدهد و فقط اتصالات از localhost را میپذیرد.
بعد از اینکه کنسول عبارت OK را نمایش داد، دستور
auth auth_tokenرا وارد کنید.قبل از اینکه بتوانید دستورات کنسول را وارد کنید، کنسول شبیهساز نیاز به احراز هویت دارد.
auth_tokenباید با محتویات فایل.emulator_console_auth_tokenدر دایرکتوری خانگی شما مطابقت داشته باشد.اگر آن فایل وجود نداشته باشد، دستور
telnet localhost console-portفایلی را ایجاد میکند که حاوی یک توکن احراز هویت تصادفی است. برای غیرفعال کردن احراز هویت، توکن را از فایل.emulator_console_auth_tokenحذف کنید یا اگر وجود ندارد، یک فایل خالی ایجاد کنید.بعد از اینکه به کنسول متصل شدید، دستورات کنسول را وارد کنید.
برای دیدن لیستی از دستورات کنسول و کسب اطلاعات در مورد دستورات خاص،
help،help commandیاhelp-verboseرا وارد کنید.برای خروج از جلسه کنسول،
quitیاexitرا وارد کنید.
در اینجا یک جلسه نمونه آورده شده است:
$ 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.
دستورات آتش بزن و فراموش کن
اگر نیازی به باز بودن جلسه ندارید، از میانبر adb emu استفاده کنید که دستور را اجرا میکند و بلافاصله کنترل را به پوسته فراخوانی کننده برمیگرداند:
adb emu command commandParameter
فراخوانی با adb emu به شبیهساز موجود متصل میشود. اگر چندین شبیهساز همزمان در حال اجرا هستند، باید سریال شبیهساز مورد نظر خود را وارد کنید:
adb -s emulator-serial emu command commandParameter
مرجع دستورات شبیهساز
لیستهای زیر دستورات کنسول شبیهساز را به همراه پارامترها و مقادیر آنها شرح میدهند:
دستورات عمومی
avd {stop| start| status| name}دستگاه مجازی را به صورت زیر جستجو، کنترل و مدیریت میکند:- stop : اجرای دستگاه را متوقف میکند.
- start : اجرای دستگاه را آغاز میکند.
- status : وضعیت دستگاه مجازی را که میتواند در حال اجرا یا متوقف باشد، نمایش میدهد.
- name : نام دستگاه مجازی را پرسوجو میکند.
avd snapshot {list| save name| load name| delete name}وضعیت دستگاه را در snapshotها به صورت زیر ذخیره و بازیابی میکند:- لیست : تمام اسنپشاتهای ذخیرهشده را فهرست میکند.
- ذخیره نام : عکس فوری را با نام دلخواه ذخیره میکند.
- load name : اسنپشات نامگذاریشده را بارگذاری میکند.
- حذف نام : اسنپشات نامگذاریشده را حذف میکند.
مثال زیر یک snapshot با نام
firstactivitysnapshotذخیره میکند:avd snapshot save firstactivitysnapshotتا کردن : اگر دستگاه تاشو باشد و در حال حاضر باز باشد، دستگاه را تا میکند تا پیکربندی صفحه نمایش کوچکتر آن نمایش داده شود.
باز شدن : اگر دستگاه تاشو باشد و در حال حاضر تا شده باشد، دستگاه را باز میکند تا پیکربندی صفحه نمایش بزرگتر آن نمایش داده شود.
kill : دستگاه مجازی را خاتمه میدهد.
پینگ : بررسی میکند که آیا دستگاه مجازی در حال اجرا است یا خیر.
چرخش : AVD را در جهت خلاف عقربههای ساعت و با گامهای ۴۵ درجه میچرخاند.
خراب شدن شبیهساز
crash : باعث از کار افتادن شبیهساز در حین اجرای برنامه میشود.
crash-on-exit : هنگام خروج از برنامه، شبیهساز را از کار میاندازد.
برچسبهای اشکالزدایی
debug tags ... : پیامهای اشکالزدایی را از بخشهای خاصی از شبیهساز فعال یا غیرفعال میکند. پارامتر tags باید مقداری از لیست برچسبهای اشکالزدایی باشد که هنگام اجرای
emulator -help-debug-tagsظاهر میشود. برای اطلاعات بیشتر در مورد گزینه-help-debug-tags، به جدول گزینههای متداول مراجعه کنید. مثال زیر برچسب radio را فعال میکند:debug radio
تغییر مسیر پورت
redir list : تغییر مسیر پورت فعلی را فهرست میکند.
redir add protocol:host-port:guest-portیک تغییر مسیر پورت جدید به شرح زیر اضافه میکند:- پروتکل : باید یا tcp باشد یا udp.
- host-port : شماره پورتی که باید روی میزبان باز شود.
- guest-port : شماره پورتی که قرار است دادهها در شبیهساز به آن هدایت شوند.
redir del protocol:host-port تغییر مسیر پورت را حذف میکند.- پروتکل : باید یا tcp باشد یا udp.
- host-port : شماره پورتی که باید روی میزبان باز شود.
موقعیت جغرافیایی
با ارسال یک اصلاحیه GPS به شبیهساز، موقعیت جغرافیایی گزارششده به برنامههای در حال اجرا در داخل شبیهساز را تنظیم میکند.
شما میتوانید به محض اجرای یک دستگاه مجازی، یکی از دستورات جغرافیایی زیر را صادر کنید. شبیهساز با ایجاد یک ارائهدهنده موقعیت مکانی ساختگی، مکانی را که وارد میکنید، تنظیم میکند. این ارائهدهنده به شنوندههای موقعیت مکانی تنظیمشده توسط برنامهها پاسخ میدهد و موقعیت مکانی را در اختیار LocationManager قرار میدهد. هر برنامهای میتواند با فراخوانی LocationManager.getLastKnownLocation("gps") از مدیر موقعیت مکانی درخواست کند تا موقعیت فعلی GPS دستگاه شبیهسازیشده را دریافت کند.
geo fix longitude latitude [altitude] [satellites] [velocity] : یک تنظیم ساده GPS را به شبیهساز ارسال میکند. طول و عرض جغرافیایی را بر حسب درجه اعشاری مشخص کنید. از اعداد ۱ تا ۱۲ برای تعیین تعداد ماهوارههای مورد استفاده برای تعیین موقعیت استفاده کنید و ارتفاع را بر حسب متر و سرعت را بر حسب گره تعیین کنید.
جمله geo nmea : یک جمله NMEA 0183 را به دستگاه شبیهسازی شده ارسال میکند، گویی از یک مودم GPS شبیهسازی شده ارسال شده است. جمله را با '$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 <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انواع ارسال رویداد [انواع ...] : یک یا چند نوع رویداد جعلی ارسال میکند.
نوع کدهای رویداد : کدهای رویداد را برای نوع رویداد جعلی مشخص شده لیست میکند.
ارسال رویداد type[:code]:[value] [...] : یک یا چند رویداد جعلی را با کدهای اختیاری و مقادیر کد ارسال میکند.
EV_KEY — ارجاعات کد کلید
نوع رویداد EV_KEY برای شبیهسازی فشردن و رها کردن دکمه استفاده میشود. جداول زیر لیست گسترده کدهای کلید پشتیبانی شده را به دستههای منطقی تقسیم میکنند. برای هر کد کلید، ارسال مقدار 1 ، فشردن را شبیهسازی میکند، در حالی که مقدار 0 رها کردن را شبیهسازی میکند. مقدار 2 نشان دهنده تکرار کلید است.
زیرگروه A: کلیدهای سیستم اندروید
| کد | توضیحات |
|---|---|
KEY_HOME | ماشه دکمه خانه |
KEY_BACK | تریگر دکمه برگشت |
KEY_MENU | دکمه منو (سرریز) |
KEY_POWER | دکمه پاور (فشار طولانی/فشار طولانی) |
KEY_VOLUMEUP | دکمه افزایش صدا |
KEY_VOLUMEDOWN | دکمهی کاهش صدا |
KEY_CAMERA | دکمه فیزیکی شاتر دوربین |
KEY_FOCUS | شاتر فوکوس خودکار دوربین |
KEY_SEARCH | تریگر دکمه جستجو |
KEY_SLEEP | ماشه فرمان خواب |
KEY_WAKEUP | فعال کردن فرمان بیدار شدن |
KEY_NOTIFICATION | باز کردن کشوی اعلانها |
KEY_MUTE | قطع کردن صدای خروجی سیستم |
KEY_MICMUTE | بیصدا کردن ورودی میکروفون |
KEY_BRIGHTNESSDOWN | کاهش روشنایی نمایشگر |
KEY_BRIGHTNESSUP | افزایش روشنایی نمایشگر |
KEY_PHONE | باز کردن برنامه شمارهگیر پیشفرض |
KEY_SEND | ارسال یا شروع تماس تلفنی |
KEY_HEADSETHOOK | قلاب هدست (پاسخ/قطع تماس) |
KEY_SCREEN | دستور فعال کردن محافظ صفحه نمایش |
KEY_CONFIG | منوی سیستم پیکربندی |
KEY_SWITCHVIDEOMODE | تغییر حالت ویدیوی سیستم |
KEY_KBDILLUMTOGGLE | تغییر نور پس زمینه کیبورد |
زیرگروه ب: کنترلهای رسانه و پخش
| کد | توضیحات |
|---|---|
KEY_PLAYPAUSE | تغییر وضعیت پخش و مکث |
KEY_PLAY | پخش رسانه را آغاز کنید |
KEY_PAUSECD | مکث پخش سی دی |
KEY_STOPCD | توقف پخش سی دی |
KEY_NEXTSONG | رفتن به آهنگ بعدی |
KEY_PREVIOUSSONG | پرش به آهنگ قبلی |
KEY_REWIND | آهنگ فعال را به عقب برگردانید |
KEY_FASTFORWARD | آهنگ فعال با قابلیت حرکت سریع به جلو |
KEY_RECORD | دستور تریگر را ضبط کنید |
KEY_SHUFFLE | پخش تصادفی را تغییر دهید |
KEY_REPEAT | پخش تکراری را تغییر دهید |
KEY_MEDIA | ماشه کلید رسانه |
زیرگروه C: صفحه کلیدهای ناوبری و عمومی
| کد | توضیحات |
|---|---|
KEY_UP | جهت بالا از D-pad |
KEY_DOWN | جهت پایین D-pad |
KEY_LEFT | جهت چپ D-pad |
KEY_RIGHT | جهت درست با D-pad |
KEY_PAGEUP | پیمایش صفحه به بالا |
KEY_PAGEDOWN | پیمایش صفحه به پایین |
KEY_INSERT | کلید ماشه را وارد کنید |
KEY_DELETE | حذف ماشه کلید |
KEY_ENTER | کلید ماشه را وارد کنید |
KEY_ESC | فعال کننده کلید فرار |
KEY_TAB | کلید Tab ماشه |
KEY_SPACE | کلید فاصله (Spacebar) ماشه را فعال میکند |
KEY_BACKSPACE | کلید فعال کنندهی Backspace |
KEY_CLEAR | پاک کردن بافر ورودی |
KEY_CANCEL | لغو اقدام فعال |
KEY_OK | انتخاب را تأیید/تایید کنید |
KEY_SELECT | تریگر مورد را انتخاب کنید |
KEY_GOTO | به محل تعیین شده بروید |
KEY_HELP | دسترسی به متن راهنما |
جدول فرعی D: نمادهای الفبایی-عددی و صفحه کلید
- حروف الفبای استاندارد:
KEY_AتاKEY_Z(۲۶ کد). - کلیدهای صفحه کلید عددی:
KEY_1تاKEY_0(۱۰ کد).
| کد | نماد شخصیت |
|---|---|
KEY_COMMA | , |
KEY_DOT | . |
KEY_SLASH | / |
KEY_SEMICOLON | ; |
KEY_APOSTROPHE | ' |
KEY_GRAVE | \` |
KEY_MINUS | - |
KEY_EQUAL | = |
KEY_LEFTBRACE | [ |
KEY_RIGHTBRACE | ] |
KEY_BACKSLASH | \ |
KEY_KPASTERISK | * (صفحه کلید عددی) |
KEY_KPPLUS | + (صفحه کلید عددی) |
KEY_KPMINUS | - (صفحه کلید عددی) |
KEY_KPDOT | . صفحه کلید عددی) |
KEY_KPSLASH | / (صفحه کلید عددی) |
KEY_KPENTER | وارد کردن (صفحه کلید عددی) |
KEY_KPEQUAL | = (صفحه کلید عددی) |
KEY_KPCOMMA | , (صفحه کلید عددی) |
KEY_KPJPCOMMA | , (طرح ژاپنی) |
KEY_KPLEFTPAREN | ( (صفحه کلید عددی)) |
KEY_KPRIGHTPAREN | ) (صفحه کلید عددی) |
KEY_KPPLUSMINUS | ± (صفحه کلید عددی) |
زیرجدول E: کلیدهای اصلاحکننده و تابعی
- کلیدهای تابع استاندارد:
KEY_F1تاKEY_F24(۲۴ کد).
| کد | توضیحات |
|---|---|
KEY_LEFTSHIFT | اصلاحکنندهی صفحهکلید شیفت چپ |
KEY_RIGHTSHIFT | اصلاحکنندهی صفحهکلید Shift به راست |
KEY_LEFTCTRL | اصلاحکنندهی صفحهکلید با کنترل چپ |
KEY_RIGHTCTRL | اصلاحکنندهی صفحهکلید کنترل راست |
KEY_LEFTALT | اصلاحکنندهی کلید Alt چپ |
KEY_RIGHTALT | اصلاحکنندهی کلید Alt سمت راست |
KEY_LEFTMETA | کلید متا/فرمان چپ |
KEY_RIGHTMETA | کلید متا/فرمان راست |
KEY_CAPSLOCK | ضامن صفحه کلید Caps Lock |
KEY_NUMLOCK | تغییر وضعیت صفحه کلید Num Lock |
KEY_SCROLLLOCK | ضامن قفل پیمایش صفحه کلید |
KEY_COMPOSE | کمکرسان نوشتن کاراکتر |
KEY_FN | کلید FN کیبورد فیزیکی |
KEY_FN_ESC | ترکیبات کلیدهای تابع |
KEY_FN_1 | میانبر عملکرد ویژه ۱ |
KEY_FN_2 | میانبر عملکرد ویژه ۲ |
KEY_FN_D | میانبر تابع خاص D |
KEY_FN_E | میانبر عملکرد ویژه E |
KEY_FN_F | میانبر تابع خاص F |
KEY_FN_S | میانبر عملکرد ویژه S |
KEY_FN_B | میانبر تابع خاص B |
زیرگروه F: دستههای بازی و جویاستیکها
| کد | توضیحات |
|---|---|
BTN_A / BTN_B / BTN_C | دکمههای روی دسته کنترل A/B/C |
BTN_X / BTN_Y / BTN_Z | دکمههای روی کنترلر X/Y/Z |
BTN_START | دکمه منوی شروع گیمپد |
BTN_SELECT | دکمه انتخاب دسته بازی |
BTN_MODE | سوئیچ حالت کنترل کننده |
BTN_TL / BTN_TR | ضربه گیرهای شانه چپ / راست |
BTN_TL2 / BTN_TR2 | تریگرهای آنالوگ چپ / راست |
BTN_THUMBL / BTN_THUMBR | کلیکهای چپ/راست |
BTN_DPAD_UP | دسته بازی D-pad ماشه بالا |
BTN_DPAD_DOWN | دسته بازی D-pad ماشه پایین |
BTN_DPAD_LEFT | دسته بازی D-pad ماشه چپ |
BTN_DPAD_RIGHT | دسته بازی D-pad ماشه سمت راست |
BTN_THUMB | ماشه شستی اولیه جویاستیک |
BTN_TOP / BTN_TOP2 | دکمههای بالای جویاستیک |
BTN_PINKIE | دکمههای کوچک جویاستیک |
BTN_BASE به _BASE6 | دکمههای پایه پلتفرم جویاستیک |
BTN_DEAD | پرچم منطقه مرده گیمپد غیرفعال |
BTN_TRIGGER | ماشه دستی جوی استیک فیزیکی |
BTN_JOYSTICK | کد ورودی عمومی جویاستیک |
زیرگروه G: ورودیهای ماوس، لمسی و قلم نوری
| کد | توضیحات |
|---|---|
BTN_MOUSE | رویداد عمومی اشارهگر ماوس |
BTN_LEFT | کلیک با دکمه چپ ماوس |
BTN_RIGHT | کلیک راست موس |
BTN_MIDDLE | کلیک چرخ اسکرول میانی |
BTN_SIDE | کلید فعال کننده کناری ناوبری |
BTN_EXTRA | ماشه دکمه ماوس اضافی |
BTN_FORWARD | کلیک ناوبری مرورگر به جلو |
BTN_BACK | کلیک ناوبری مرورگر به عقب |
BTN_TASK | کلید تغییر وظایف سیستم |
BTN_TOUCH | تماس فیزیکی صفحه نمایش شناسایی شد |
BTN_STYLUS | نزدیکی قلم استایلوس فعال |
BTN_STYLUS2 | سوئیچ لوله ثانویه روی قلم |
BTN_TOOL_PEN | شناسه ابزار قلم استایلوس |
BTN_TOOL_RUBBER | شناسه ابزار پاککن قلم |
BTN_TOOL_BRUSH | شناسه ابزار قلم موی نقاش |
BTN_TOOL_PENCIL | شناسه ابزار مداد طراحی |
BTN_TOOL_AIRBRUSH | شناسه ابزار رنگآمیزی ایربراش |
BTN_TOOL_FINGER | تماس انگشت روی صفحه لمسی |
BTN_TOOL_MOUSE | شناسه ابزار ماوس خارجی |
BTN_TOOL_LENS | ابزار بزرگنمایی نوری |
BTN_TOOL_DOUBLETAP | دوبار لمس کردن پرچم سرعت با ژست حرکتی |
BTN_TOOL_TRIPLETAP | پرچم سرعت با سه بار لمس ژست حرکتی |
جدول فرعی H: میانبرهای برنامه
| کد | اقدام هدفمند |
|---|---|
KEY_WWW | مرورگر وب پیشفرض را اجرا میکند |
KEY_MAIL | کلاینت ایمیل پیشفرض را باز میکند |
KEY_BOOKMARKS | لیست نشانکهای مرورگر را باز میکند |
KEY_CALC | ابزار ماشین حساب را باز میکند |
KEY_FILE | باز کردن فایل اکسپلورر محلی |
KEY_EDIT | تریگر ویرایش سند |
KEY_NEW | سند ایجاد تریگر جدید |
KEY_OPEN | ماشه باز کردن سند |
KEY_SAVE | ماشه وظیفه ذخیره فایل |
KEY_CLOSE | ماشه وظیفه بستن فایل |
KEY_PRINT | ماشه وظیفه چاپ فایل |
KEY_COPY | عمل کپی بافر کلیپبورد |
KEY_PASTE | عمل درج بافر کلیپبورد |
KEY_CUT | عمل برش بافر کلیپ بورد |
KEY_UNDO | عمل لغو بافر کلیپبورد |
KEY_REDO | عمل بازخوانی بافر کلیپبورد |
KEY_CANCEL | ماشه فرآیند لغو بافر |
KEY_FIND | ابزار جستجوی اسناد |
KEY_REFRESH | ابزار بهروزرسانی سند |
KEY_EXIT | ابزار بستن سند |
KEY_DOCUMENTS | پورتال اسناد سیستم را راهاندازی میکند |
KEY_HOMEPAGE | مرورگر صفحه اصلی را اجرا میکند |
KEY_FAVORITES | پورتال مورد علاقههای مرورگر را باز میکند |
KEY_CHAT | پیامرسان فوری راهاندازی میکند |
KEY_EMAIL | تریگر جایگزین برای شروع ایمیل |
KEY_FINANCE | ابزار سهام/مالی باز |
KEY_SPORT | ابزار ردیابی ورزشی باز |
KEY_SHOP | پورتال خرید دیجیتال را باز کنید |
KEY_PLAYER | پخش کننده رسانه اصلی را باز کنید |
KEY_MP3 | پخش کننده MP3 اصلی را باز کنید |
KEY_TEXT | ویرایشگر متن پیشفرض را باز کنید |
KEY_LIST | ابزار باز کردن چک لیست |
KEY_MEMO | ابزار دفترچه یادداشت / یادداشت را باز کنید |
KEY_CALENDAR | پورتال تقویم / دستور کار را باز میکند |
KEY_DIRECTORY | دایرکتوری آدرس سیستم را باز میکند |
KEY_COMPUTER | کاوشگر مشخصات را باز میکند |
KEY_TV / KEY_TV2 | پورتال تلویزیونی راهاندازی میکند |
KEY_RADIO | ابزار رادیویی را راهاندازی میکند |
KEY_CD / KEY_DVD | خواننده درایو نوری را فعال میکند |
KEY_AUDIO / KEY_VIDEO | به مشخصات رسانه دسترسی پیدا میکند |
KEY_TUNER | گیرندهها/تیونرها را پیکربندی میکند |
KEY_SAT / KEY_SAT2 | فیدهای ماهوارهای را پیکربندی میکند |
KEY_TAPE | پخش نوار کاست |
KEY_VCR | پخش فید پخش کننده VCR |
KEY_VCR2 | پخش فید پخش کننده VCR 2 |
KEY_AUX | ورودیهای پورت رسانه کمکی |
KEY_SETUP | منوی تنظیمات |
KEY_PROG1 به _PROG4 | کلیدهای برنامه تعریف شده توسط کاربر |
KEY_ZOOM | ضامن نمای بزرگنمایی |
KEY_MODE | انتخاب حالت Viewport |
KEY_KEYBOARD | نمایش/پنهان کردن صفحهکلید مجازی |
KEY_LANGUAGE | تغییر زبان آهنگ صوتی |
KEY_TITLE | گزینههای عنوان رسانه را باز کنید |
KEY_SUBTITLE | رابط کاربری زیرنویسها را تغییر دهید |
KEY_ANGLE | تغییر زاویه دوربین فیلمبرداری |
KEY_EPG | راهنمای برنامه الکترونیکی را باز کنید |
KEY_PVR | ضبط کننده ویدیوی شخصی را باز کنید |
KEY_MHP | پلتفرم خانگی چندرسانهای باز |
KEY_CHANNEL | کانالهای تیونر تلویزیون را باز کنید |
KEY_CHANNELUP | کانال تلویزیون را رو به بالا تنظیم کنید |
KEY_CHANNELDOWN | کانال تلویزیون را رو به پایین تنظیم کنید |
KEY_RED | دکمه تعاملی قرمز |
KEY_GREEN | دکمه تعاملی سبز |
KEY_YELLOW | دکمه تعاملی زرد |
KEY_BLUE | دکمه تعاملی آبی |
KEY_FIRST | گزینه مورد اول را انتخاب کنید |
KEY_LAST | گزینه آخرین مورد را انتخاب کنید |
KEY_NEXT | گزینه آهنگ بعدی را انتخاب کنید |
KEY_PREVIOUS | گزینه آهنگ قبلی را انتخاب کنید |
KEY_RESTART | حلقه مسیر رسانه را مجدداً راه اندازی کنید |
KEY_SLOW | گزینه پخش صحنه آهسته |
KEY_AB | حلقه تکرار توالی AB |
KEY_PLAYCD | فرمان پخش دسته سیدی |
KEY_PAUSECD | دستور مکث در عرشه سی دی |
KEY_STOPCD | فرمان توقف پخش سیدی |
KEY_DIGITS | فرمان ورودی صفحه کلید دیجیتال |
KEY_TEEN | گزینه مقادیر نوجوانان صفحه کلید |
KEY_TWEN | گزینه مقادیر twen صفحه کلید |
KEY_DEL_EOL | حذف تا انتهای بافر خط |
KEY_DEL_EOS | حذف تا انتهای بافر صفحه نمایش |
KEY_INS_LINE | بافر خط جدید را وارد کنید |
KEY_BRL_DOT1 به _DOT8 | ورودیهای دکمه نمایشگر بریل |
KEY_VOICECOMMAND | اپلیکیشن دستیار صوتی را راهاندازی میکند |
KEY_SELECTIVE_SCREEN | برش منطقهای صفحه نمایش را فعال میکند |
KEY_BATTERY | اعلانهای باتری را نمایش میدهد |
KEY_STAR / KEY_SHARP | نمادهای صفحه کلید تلفن |
KEY_PLUS | صفحه کلید تلفن به علاوه نماد |
KEY_INFO | نمایش روکش پنل اطلاعات |
KEY_TIME | نمایش زمان فعلی ساعت |
KEY_VENDOR | مشخصات فروشنده را استعلام کنید |
KEY_ARCHIVE | ابزار بایگانی محلی را باز میکند |
KEY_PROGRAM | پارامترهای برنامه را پیکربندی میکند |
KEY_POWER2 | منبع تغذیه پشتیبان متناوب را فعال میکند |
EV_ABS — رویدادهای حرکت مطلق
نوع رویداد EV_ABS برای شبیهسازی لمسهای دقیق، حرکات کشیدن و رها کردن، عملکردهای چند لمسی و تنظیمات جویاستیک بسیار مهم است. مختصات مطلق زیر مستقیماً به وضوح فیزیکی صفحه نمایش نگاشت میشوند.
| کد | محدوده مختصات | توضیحات |
|---|---|---|
ABS_MT_TRACKING_ID | -1 یا ≥0 | شناسه ردیابی؛ -1 لمس را پایان میدهد |
ABS_MT_POSITION_X | 0 تا 1767 | مختصات X (تاخوردگی پیکسل) |
ABS_MT_POSITION_Y | 0 تا 2207 | مختصات Y (تاخوردگی پیکسل) |
ABS_MT_TOUCH_MAJOR | پیکسلها | عرض محور اصلی ناحیه لمسی |
ABS_MT_TOUCH_MINOR | پیکسلها | عرض محور فرعی ناحیه لمسی |
ABS_MT_WIDTH_MAJOR | پیکسلها | عرض محور اصلی ابزار |
ABS_MT_WIDTH_MINOR | پیکسلها | عرض محور فرعی ابزار |
ABS_MT_ORIENTATION | 0 تا 255 | زاویه جهت گیری تماس |
ABS_MT_PRESSURE | 0 تا 255 | بزرگی نیروی تماسی |
ABS_MT_DISTANCE | میلیمتر | فاصله هاور از صفحه نمایش |
ABS_MT_TOOL_TYPE | 0 تا 2 | 0 = انگشت، 1 = خودکار، 2 = مداد |
ABS_MT_BLOB_ID | عدد صحیح | شناسه لکه تماس |
ABS_MT_TOOL_X | پیکسلها | مختصات موقعیت X ابزار |
ABS_MT_TOOL_Y | پیکسلها | مختصات موقعیت Y ابزار |
ABS_MT_SLOT | 0 تا N | اسلات فعال (پروتکل B) |
ABS_X / _Y / _Z | آنالوگ | محورهای مختصات جویاستیک |
ABS_RX / _RY / _RZ | آنالوگ | محورهای چرخشی جویاستیک |
ABS_THROTTLE / _BRAKE | آنالوگ | پدالها و کنترلهای فرمان |
ABS_HAT0X / _HAT0Y | -1 / 0 / 1 | کلاه D-pad و سوئیچهای POV |
ABS_PRESSURE | 0 تا 255 | سطح نیروی قلم/اشارهگر |
ABS_DISTANCE | میلیمتر | فاصله شناور (قلم استایلوس) |
ABS_TILT_X / _TILT_Y | درجه | زاویه شیب قلم |
ABS_VOLUME | آنالوگ | سطوح صدای کنترلر |
تعامل لمسی اندروید توسط پروتکلهای چند لمسی (MT) هدایت میشود. شبیهسازهای مدرن هم پروتکل A (بدون وضعیت، ارسال بستههای تماس جدا شده توسط علائم همگامسازی) و هم پروتکل B (دارای وضعیت، اختصاص مخاطبین به اسلاتهای ردیابی اختصاصی) را پیادهسازی میکنند. پروتکل B امکان ردیابی کارآمد چندین لمس همزمان را برای حرکاتی مانند بزرگنمایی با دو انگشت فراهم میکند.
EV_REL و EV_SW — سوئیچهای حرکتی و سختافزاری
دسته رویداد EV_REL تغییرات نسبی اشارهگر یا مختصات را مدیریت میکند، که در درجه اول برای شبیهسازی حرکات خارجی ماوس یا اسکرول کردن چرخها استفاده میشود. دسته رویداد EV_SW سوئیچهای فیزیکی دستگاه را مدیریت میکند، مانند اینکه آیا یک تلفن یا تبلت تاشو است یا خیر، یا اینکه آیا سختافزار صوتی خارجی وارد شده است یا خیر.
| کد | ارزشها | توضیحات |
|---|---|---|
REL_X | دلتا | حرکت افقی مکان نما |
REL_Y | دلتا | حرکت عمودی مکان نما |
SW_LID | 0 / 1 | وضعیت درب لپتاپ ( 0 = باز، 1 = بسته) |
SW_TABLET_MODE | 0 / 1 | وضعیت حالت تبلت ( 0 = خاموش، 1 = فعال) |
SW_HEADPHONE_INSERT | 0 / 1 | وضعیت جک هدفون ( 0 = خروجی، 1 = ورودی) |
SW_MICROPHONE_INSERT | 0 / 1 | وضعیت جک میکروفون ( 0 = خروجی، 1 = ورودی) |
نحو ارسال فرمان
برای ارسال این کدها، دستور کنسول را با انواع، کدها و مقادیری که با دونقطه از هم جدا شدهاند، قالببندی کنید. میتوانید چندین تغییر مختصات را در یک رشته در صف قرار دهید. نکته مهم این است که همیشه یک علامت همگامسازی نهایی ( EV_SYN:0:0 ) اضافه کنید تا نشان دهد که چارچوب شبیهساز باید این ورودیها را با هم بستهبندی و پردازش کند.
مثالهای اسکریپتنویسی رویداد و ژستها
از آنجا که Telnet امکان ارسال پارامترهای چند بخشی را فراهم میکند، میتوانید توالی حرکات فیزیکی واقعگرایانه را شبیهسازی کنید. در زیر ساختارهای اسکریپت رویداد خام برای خودکارسازی حرکات از کنسول میزبان شما آمده است.
شبیهسازی ضربه روی صفحه نمایش
برای انجام یک ضربه تمیز روی صفحه نمایش در مختصات هدف، یک شناسه ردیابی اختصاص دهید، مختصات X و Y را روی صفحه مشخص کنید، لمس تماسی را شبیهسازی کنید، همگامسازی کنید و سپس رها کنید.
# Press down at coordinate (400, 800) and sync
event send EV_ABS:ABS_MT_TRACKING_ID:1
OK
event send EV_ABS:ABS_MT_POSITION_X:400
OK
event send EV_ABS:ABS_MT_POSITION_Y:800
OK
event send EV_KEY:BTN_TOUCH:1
OK
event send EV_SYN:0:0
OK
# Lift finger up and sync
event send EV_ABS:ABS_MT_TRACKING_ID:-1
OK
event send EV_KEY:BTN_TOUCH:0
OK
event send EV_SYN:0:0
OK
شبیهسازی اسکرول عمودی (کشیدن انگشت)
برای اجرای حرکت اسکرول و کشیدن انگشت، انگشت خود را در مختصات شروع نگه دارید، فریمهای مختصات حرکت میانی را ارسال کنید و در انتها رها کنید.
# Finger touch down at start coordinate (500, 1600)
event send EV_ABS:ABS_MT_TRACKING_ID:2
OK
event send EV_ABS:ABS_MT_POSITION_X:500
OK
event send EV_ABS:ABS_MT_POSITION_Y:1600
OK
event send EV_KEY:BTN_TOUCH:1
OK
event send EV_SYN:0:0
OK
# Move coordinates upward dynamically
event send EV_ABS:ABS_MT_POSITION_Y:1200
OK
event send EV_SYN:0:0
OK
event send EV_ABS:ABS_MT_POSITION_Y:800
OK
event send EV_SYN:0:0
OK
event send EV_ABS:ABS_MT_POSITION_Y:400
OK
event send EV_SYN:0:0
OK
# Finger release at coordinate (500, 400)
event send EV_ABS:ABS_MT_TRACKING_ID:-1
OK
event send EV_KEY:BTN_TOUCH:0
OK
event send EV_SYN:0:0
OK
شبیهسازی حرکت زوم با دو انگشت
برای فعال کردن زوم دو انگشتی، از اسلاتهای فعال MT (0 و 1) برای ردیابی و هماهنگسازی دو مختصات لمسی همزمان که از یکدیگر دور میشوند، استفاده کنید.
# Finger 1 down at (500, 1000) using slot 0
event send EV_ABS:ABS_MT_SLOT:0
OK
event send EV_ABS:ABS_MT_TRACKING_ID:10
OK
event send EV_ABS:ABS_MT_POSITION_X:500
OK
event send EV_ABS:ABS_MT_POSITION_Y:1000
OK
event send EV_KEY:BTN_TOUCH:1
OK
event send EV_SYN:0:0
OK
# Finger 2 down at (600, 1000) using slot 1
event send EV_ABS:ABS_MT_SLOT:1
OK
event send EV_ABS:ABS_MT_TRACKING_ID:11
OK
event send EV_ABS:ABS_MT_POSITION_X:600
OK
event send EV_ABS:ABS_MT_POSITION_Y:1000
OK
event send EV_SYN:0:0
OK
# Fingers slide apart from each other
event send EV_ABS:ABS_MT_SLOT:0
OK
event send EV_ABS:ABS_MT_POSITION_X:300
OK
event send EV_SYN:0:0
OK
event send EV_ABS:ABS_MT_SLOT:1
OK
event send EV_ABS:ABS_MT_POSITION_X:800
OK
event send EV_SYN:0:0
OK
# Lift Finger 1 using slot 0
event send EV_ABS:ABS_MT_SLOT:0
OK
event send EV_ABS:ABS_MT_TRACKING_ID:-1
OK
event send EV_SYN:0:0
OK
# Lift Finger 2 using slot 1
event send EV_ABS:ABS_MT_SLOT:1
OK
event send EV_ABS:ABS_MT_TRACKING_ID:-1
OK
event send EV_KEY:BTN_TOUCH:0
OK
event send EV_SYN:0:0
OK
شبیهسازی سوئیچ اتصال هدفون
شبیهسازی قرار دادن یا برداشتن جک هدفون برای آزمایش سوئیچهای مسیریابی صدا. مقدار 1 نشان دهنده قرار دادن جک و 0 نشان دهنده برداشتن هدفون است.
# Simulate headphones plugged in
event send EV_SW:SW_HEADPHONE_INSERT:1 EV_SYN:0:0
OK
# Simulate headphones unplugged
event send EV_SW:SW_HEADPHONE_INSERT:0 EV_SYN:0:0
OK
کشف کدهای رویداد کنسول از یک دستگاه واقعی
برای کشف توالی دقیق سینتکس رویداد برای هر اقدام سفارشی یا حرکت دکمه، از طریق adb shell متصل شوید و ابزار تشخیصی getevent را اجرا کنید. همانطور که با رابط کاربری گرافیکی شبیهساز تعامل میکنید، کنسول کدهای دقیق رویداد، انواع و موقعیتها را چاپ میکند.
# Run getevent to monitor input events dynamically
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
- پیام متنی رویداد : رشتهای از کاراکترها را ارسال میکند که فشرده شدن کلیدها را شبیهسازی میکنند. پیام باید یک رشته UTF-8 باشد. پستهای یونیکد مطابق با صفحه کلید فعلی دستگاه، نگاشت معکوس میشوند و کاراکترهای پشتیبانی نشده بیصدا حذف میشوند.
کنترلهای وضعیت توان
نمایشگر توان : وضعیت باتری و شارژر را نمایش میدهد.
برق AC {روشن| خاموش} : وضعیت شارژ AC را روی روشن یا خاموش تنظیم میکند.
وضعیت توان {نامشخص| در حال شارژ| در حال دشارژ| در حال شارژ نبودن| پر بودن} : وضعیت باتری را مطابق با مقدار مشخص شده تغییر میدهد.
وضعیت باتری را تنظیم میکند. (حالت وجود باتری را تنظیم میکند.)
سلامت پاور {ناشناخته| خوب| داغ شدن بیش از حد| قطع شدن| ولتاژ بیش از حد| خرابی} : وضعیت سلامت باتری را تنظیم میکند.
درصد ظرفیت باتری : وضعیت ظرفیت باتری باقیمانده را به صورت درصد از ۰ تا ۱۰۰ تنظیم میکند.
وضعیت اتصال شبکه (فقط اترنت و تلفن همراه)
وضعیت شبکه : وضعیت شبکه و ویژگیهای تأخیر و سرعت فعلی را بررسی میکند.
network delay latencyشبکه شبیهسازی شده را تغییر میدهد.این شبیهساز به شما امکان میدهد سطوح مختلف تأخیر شبکه را شبیهسازی کنید تا بتوانید برنامه خود را در محیطی که بیشتر شبیه شرایط اجرای واقعی است، آزمایش کنید. میتوانید در هنگام راهاندازی شبیهساز، سطح یا محدوده تأخیر را تنظیم کنید، یا میتوانید از کنسول برای تغییر تأخیر در حین اجرای برنامه در شبیهساز استفاده کنید.
قالب تأخیر شبکه یکی از موارد زیر است (اعداد به میلی ثانیه هستند):
قالب تأخیر شبکه:
gprs : GPRS که از محدوده تأخیر حداقل ۱۵۰ و حداکثر ۵۵۰ استفاده میکند.
لبه : EDGE/EGPRS، که از محدوده تأخیر حداقل ۸۰ و حداکثر ۴۰۰ استفاده میکند.
umts : UMTS/3G که از محدوده تأخیر حداقل ۳۵ و حداکثر ۲۰۰ استفاده میکند.
هیچ : بدون تأخیر.
num : تأخیر مشخص شده را بر حسب میلیثانیه شبیهسازی میکند.
min:max : محدوده تأخیر مشخص شده را شبیهسازی میکند.
برای تنظیم تأخیر در هنگام راهاندازی شبیهساز، از گزینه
-netdelayشبیهساز با مقدار تأخیر پشتیبانیشده استفاده کنید. مثالها:emulator -netdelay gprs emulator -netdelay 40,100برای ایجاد تغییر در تأخیر شبکه هنگام اجرای شبیهساز، به کنسول متصل شوید و از دستور
network delayاستفاده کنید:network delay gprs network delay 40 100network speed speedشبیهساز به شما امکان میدهد نرخهای انتقال شبکه مختلف را شبیهسازی کنید. میتوانید در هنگام راهاندازی شبیهساز، نرخ یا محدوده انتقال را تنظیم کنید، یا میتوانید از کنسول برای تغییر نرخ در حین اجرای برنامه در شبیهساز استفاده کنید.قالب سرعت شبکه یکی از موارد زیر است (اعداد کیلوبیت بر ثانیه هستند):
فرمت سرعت شبکه:
gsm : GSM/CSD که از سرعت ۱۴.۴ برای ارسال و دریافت استفاده میکند.
hscsd : HSCSD که از سرعت ۱۴.۴ در بالا و ۴۳.۲ در پایین استفاده میکند.
gprs : GPRS که از سرعت ۴۰.۰ برای ارسال و ۸۰.۰ برای ارسال استفاده میکند.
لبه : EDGE/EGPRS که از سرعت ۱۱۸.۴ به بالا و ۲۳۶.۸ به پایین استفاده میکند.
umts : UMTS/3G که از سرعت ۱۲۸.۰ در سرعت بالا و ۱۹۲۰ در سرعت پایین استفاده میکند.
hsdpa : HSDPA که از سرعت ۳۴۸.۰ برای دانلود و ۱۴۴۰۰.۰ برای دانلود استفاده میکند.
lte : LTE که از سرعت ۵۸۰۰۰ در ارسال و ۱۷۳۰۰۰ در ارسال استفاده میکند.
evdo : EVDO که از سرعت ۷۵۰۰۰ در جهت بالا و ۲۸۰۰۰۰ در جهت پایین استفاده میکند.
کامل : سرعت نامحدود، اما به سرعت اتصال رایانه شما بستگی دارد.
num : نرخ دقیق را بر حسب کیلوبیت بر ثانیه برای آپلود و دانلود تنظیم میکند.
up:down : نرخ دقیق را بر حسب کیلوبیت بر ثانیه برای آپلود و دانلود به صورت جداگانه تنظیم میکند.
برای تنظیم سرعت شبکه در هنگام راهاندازی شبیهساز، از گزینه
-netspeedemulator استفاده کنید. مثالها:emulator -netspeed gsm @Pixel_API_26 emulator -netspeed 14.4,80 @Pixel_API_26برای ایجاد تغییر در سرعت شبکه در حین اجرای شبیهساز، به کنسول متصل شوید و از دستور
network speedاستفاده کنید:network speed 14.4 80network capture {start| stop} fileبستهها را به یک فایل ارسال میکند. لیست زیر پارامترها و مقادیر پارامترها را شرح میدهد:توجه: از نسخه ۳۶.۵ به بعد شبیهساز اندروید، ترافیک اتصال وایفای به طور پیشفرض توسط netsim مدیریت میشود. دستور network capture console فقط ترافیک قدیمی تلفن همراه/WAN را که از طریق پشته QEMU slirp مسیریابی میشوند، ضبط میکند. برای ضبط بستههای وایفای، بلوتوث یا شبکه پیشرفته در نسخههای مدرن شبیهساز، به بخش Capture network traffic در راهنمای Advanced Emulator Networking مراجعه کنید.
start file : شروع به ضبط بستههای شبکه میکند. برای امنیت، نام فایل باید یک نام ساده باشد (بدون جداکننده مسیر مانند
/و بدون..). فایل ضبط بسته در پوشهconsole_out/در پوشه محتوای AVD شما ذخیره میشود (برای مثال،~/.android/avd/avd_name.avd/console_out/file).توقف فایل : ارسال بستهها به فایل مشخص شده را متوقف میکند.
شبیهسازی تلفن
شبیهساز اندروید شامل مودمهای شبیهسازیشدهی GSM و CDMA مخصوص به خود است که به شما امکان میدهد عملکردهای تلفنی را در شبیهساز شبیهسازی کنید. برای مثال، با GSM میتوانید تماسهای تلفنی ورودی را شبیهسازی کرده و اتصالات داده را برقرار و خاتمه دهید. با CDMA، شما یک منبع اشتراک و لیست رومینگ ترجیحی ارائه میدهید. سیستم اندروید تماسهای شبیهسازیشده را دقیقاً مانند تماسهای واقعی مدیریت میکند. شبیهساز از صدای تماس پشتیبانی نمیکند.
gsm {call| accept| cancel| busy} phonenumberپارامترهای gsm به شرح زیر است:- call : یک تماس تلفنی ورودی از phonenumber را شبیهسازی میکند.
- accept : یک تماس ورودی از phonenumber را میپذیرد و وضعیت تماس را به فعال تغییر میدهد. شما میتوانید وضعیت یک تماس را فقط زمانی به فعال تغییر دهید که وضعیت فعلی آن در حالت انتظار یا انتظار (holded) باشد.
- لغو : یک تماس تلفنی ورودی از یا تماس تلفنی خروجی به شماره تلفن را خاتمه میدهد.
- مشغول : یک تماس خروجی به phonenumber را میبندد و وضعیت تماس را به مشغول تغییر میدهد. شما میتوانید وضعیت یک تماس را فقط زمانی به مشغول تغییر دهید که وضعیت فعلی آن در حالت انتظار باشد.
gsm {data| voice} stateدستور data state وضعیت اتصال داده GPRS و دستور voice state وضعیت اتصال صوتی GPRS را به شرح زیر تغییر میدهد:- ثبت نشده : شبکهای در دسترس نیست.
- خانه : در شبکه محلی، بدون رومینگ.
- رومینگ : در شبکه رومینگ.
- جستجو : جستجوی شبکهها.
- رد شد : فقط تماسهای اضطراری.
- خاموش : همانند ثبت نشده است.
- روشن : همانند خانه.
gsm hold : وضعیت یک تماس را به حالت انتظار تغییر میدهد. شما میتوانید وضعیت یک تماس را فقط زمانی به حالت انتظار تغییر دهید که وضعیت فعلی آن فعال یا در حال انتظار باشد.
لیست gsm : تمام تماسهای ورودی و خروجی و وضعیت آنها را فهرست میکند.
وضعیت gsm : وضعیت فعلی صدا/داده GSM را گزارش میدهد. مقادیر، مقادیری هستند که برای دستورات صوتی و داده شرح داده شدهاند.
gsm signal {rssi| ber}قدرت سیگنال گزارش شده (rssi) و میزان خطای بیت (ber) را در ۱۵ ثانیه بعدی بهروزرسانی تغییر میدهد. لیست زیر پارامترها و مقادیر آنها را شرح میدهد:- rssi : محدوده ۰ تا ۳۱ و ۹۹ برای ناشناخته است.
- ber : محدوده بین ۰ تا ۷ و ۹۹ برای نامشخص است.
gsm signal-profile num : مشخصات قدرت سیگنال را تنظیم میکند. num عددی از ۰ تا ۴ است.
cdma ssource sourceمنبع اشتراک CDMA فعلی را تنظیم میکند، که در آن منبع یک لیست مجاز مبتنی بر شبکه است که شامل مشترکین اپراتور CDMA و مقادیر آنها به شرح زیر است:- nv : اشتراک را از RAM غیرفرار میخواند.
- ruim : اشتراک را از ماژول هویت کاربر قابل حذف (RUIM) میخواند.
cdma prl_version version : نسخه فعلی لیست رومینگ ترجیحی (PRL) را ذخیره میکند. شماره نسخه مربوط به پایگاه داده PRL است که شامل اطلاعاتی است که در طول فرآیند انتخاب و اکتساب سیستم استفاده میشود.
مدیریت حسگرها در شبیهساز
این دستورات مربوط به سنسورهای موجود در AVD هستند. علاوه بر استفاده از دستور sensor، میتوانید تنظیمات را در شبیهساز در صفحه Virtual sensors در تبهای Accelerometer و Additional sensors مشاهده و تنظیم کنید.
وضعیت حسگر : فهرستی از تمام حسگرها و وضعیت آنها را نمایش میدهد.
sensor get sensor-name : تنظیمات مربوط به sensor-name را دریافت میکند. مثال زیر مقدار مربوط به سنسور شتاب را دریافت میکند:
sensor get acceleration acceleration = 2.23517e-07:9.77631:0.812348مقادیر شتاب که با دو نقطه (:) از هم جدا شدهاند، به مختصات x، y و z برای حسگرهای مجازی اشاره دارند.
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یک پیامک ورودی شبیهسازی شده تولید میکند. لیست زیر پارامترها و مقادیر آنها را شرح میدهد:- sender-phone-number : شامل یک رشته عددی دلخواه است.
- پیامک : پیام کوتاه (sms).
مثال زیر پیام "hi there" را به شماره تلفن ۴۰۸۵۵۵۵۵۵۵ ارسال میکند:
sms send 4085555555 hi there
کنسول، پیام SMS را به فریمورک اندروید ارسال میکند که آن را به برنامهای روی شبیهساز که SMS را مدیریت میکند، مانند برنامه Messages، ارسال میکند. اگر 10 عدد وارد کنید، برنامه آن را به صورت شماره تلفن قالببندی میکند. رشتههای عددی طولانیتر یا کوتاهتر، نحوه ارسال آنها را نشان میدهند.
شبیهسازی اثر انگشت
شناسه اثر انگشت لمسی : لمس حسگر توسط انگشت را شبیهسازی میکند.
برداشتن انگشت : برداشتن انگشت را شبیهسازی میکند.
برای دستورالعملهای مربوط به نحوه استفاده از این دستورات، به بخش زیر در مورد شبیهسازی و اعتبارسنجی اثر انگشت مراجعه کنید.
ضبط صفحه
دستور ضبط صفحه نمایش، امکان ضبط فایلهای ویدیویی با کیفیت بالا از صفحه نمایش فیزیکی شبیهساز را مستقیماً از سیستم میزبان فراهم میکند. این قابلیت برای یکپارچهسازی مداوم خطوط لوله و گزارش خودکار اشکالات بسیار مفید است.
-
screenrecord {start| stop} fileفرآیند ضبط صفحه نمایش را شروع یا متوقف میکند.- start file : ضبط ویدیو را شروع میکند. فایل خروجی باید با پسوند اجباری
.webmتمام شود. ویدیوی ضبط شده مستقیماً در دایرکتوری خروجی کنسول AVD شما ذخیره میشود:~/.android/avd/avd_name.avd/console_out/file. - توقف فایل : فرآیند ضبط نمایشگر فعال را متوقف میکند.
- start file : ضبط ویدیو را شروع میکند. فایل خروجی باید با پسوند اجباری
اتوماسیون و ماکرو
زیرسیستم اتوماسیون به توسعهدهندگان اجازه میدهد تا انتقال حالتهای ماکرو را روی دستگاه مجازی در حال اجرا ضبط کرده و آنها را برای اجرای جریانهای تست خودکار پخش کنند.
-
automation {record| stop-record| play| stop-play}ضبط خودکار ماکروها را مدیریت میکند.- record : شروع به ضبط تغییرات وضعیت دستگاه و ورودیها میکند.
- توقف ضبط : جلسه ضبط ماکروی فعلی را متوقف میکند.
- پخش : شروع به پخش یک توالی ماکروی ضبط شده میکند.
- توقف-پخش : توالی پخش ماکروی فعال را متوقف میکند.
فیزیک (6DoF)
دستورات فیزیک، ثبت موقعیتهای مکانی واقعی زمین را برای مدلهای حرکتی فیزیکی شش درجه آزادی (6DoF) مدیریت میکنند که برای شبیهسازی ردیابی حرکت پیشرفته استفاده میشوند.
-
physics {record-gt| stop}ضبطهای مدل ژست فیزیکی را مدیریت میکند.- record-gt : شروع به ضبط دادههای حرکت 6DoF مبتنی بر واقعیت زمینی میکند.
- توقف : فرآیند ضبط اطلاعات واقعی فعلی را متوقف میکند.
کنترلهای پیشرفته دستگاه
این بخش، نقاط پایانی فرمان کنسول بسیار تخصصی را برای پیکربندیهای شبیهسازی پیشرفته، از جمله پروکسیهای شبکه، پیکربندیهای چند نمایشگری، لغو رندر و اشکالزدایی مستقیم هایپروایزر، جمعآوری میکند.
multidisplay {add| del}مانیتورهای مجازی ثانویه را برای آزمایش پیکربندیهای چندصفحهای اضافه یا حذف میکند. توجه: مانیتورهای ثانویه در پروفایلهای fold مانند Pixel Fold یا شبیهساز Resizable پشتیبانی نمیشوند.proxy {set| clear}فورواردینگ پروکسی شبکه را به صورت برنامهنویسی شده از کنسول پیکربندی میکند.- set host port : تنظیمات پروکسی هدف را پیکربندی میکند.
- پاک کردن : تنظیمات پروکسی را به حالت پیشفرض برمیگرداند. توجه: عملیات تنظیم پروکسی در محیطهای اجرای بدون سر (headless execution) با شکست مواجه میشود.
virtualscene-image {wall| table} image_pathدیوارهای پسزمینه یا جداول افقی نمایش داده شده در فید دوربین صحنه مجازی را با یک فایل تصویر کاربر سفارشی میکند.resize-display scaleبه صورت پویا وضوح صفحه را بین مقیاسهای از پیش تعیینشده تنظیم میکند. توجه: تنظیمات وضوح در پیکربندیهای بدون سر پشتیبانی نمیشوند.nodraw {on| off}رندرینگ رابط کاربری گرافیکی فیزیکی را روی صفحه میزبان غیرفعال میکند تا در حین اجرای خودکار خودکار بدون نیاز به پردازش در پسزمینه و با حجم بالا، حافظه سیستم و بار پردازنده گرافیکی را کاهش دهد.grpc portکنترل پیشرفتهی برنامهریزیشدهی دستگاه را روی نقاط پایانی پورت gRPC سفارشی پیکربندی میکند.qemu monitorدسترسی مستقیم و تعاملی ترمینال به کنسول هایپروایزر اصلی را فراهم میکند. این دستور فقط میتواند از طریق جلسات فعال کنسول Telnet وارد شود.icebox track pidزمانی که فرآیند برنامه مشخص شده با یک خطای مدیریت نشده یا خرابی مواجه میشود، اسنپشاتهای خودکار سیستم را فعال میکند.phonenumber numberتلفن محلی مجازی دستگاه هدف را تنظیم میکند.
رابط برنامهنویسی gRPC
نسخههای مدرن شبیهساز از یک رابط برنامهنویسی قدرتمند gRPC در کنار کنسول قدیمی Telnet پشتیبانی میکنند. در حالی که کنسول Telnet برای جلسات تعاملی سریع یا اسکریپتنویسی ساده عالی است، رابط gRPC برای کنترل خودکار با کارایی بالا، ایمن و قوی در محیطهای یکپارچهسازی مداوم (CI) و بدون سر (headless) طراحی شده است. gRPC با ارائه نقاط پایانی سرویس مستقیم، نیاز به تجزیه جریانهای متنی، مدیریت handshakeهای جلسه ترمینال یا افشای پورتهای میزبان محلی رمزگذاری نشده را از بین میبرد.
برای کمک به انتخاب بین کنسول قدیمی Telnet و رابط برنامهنویسی gRPC مدرن، مقایسه زیر را از نظر عملکرد، امنیت و قابلیتهای ویژگی بررسی کنید:
| ویژگی | کنسول تلنت | رابط gRPC |
|---|---|---|
| بهترین برای | اشکالزدایی دستی، جلسات تعاملی. | CI/CD بدون سر، تجهیزات تست خودکار سنگین. |
| سرعت | کندتر؛ سربار متنی، تأخیر اتصال. | بهینهسازیشده؛ HTTP/2 مالتیپلکسشده، پروتوتایپ سریع. |
| امنیت | رمزگذاری نشده؛ پورتهای محلی (۵۵۵۴–۵۵۸۵). | میتواند با TLS ایمن شود، روی شبکهها کار میکند. |
| جریانها | پشتیبانی نشده؛ فقط درخواست-پاسخ. | پخش جریانی برای logcat، ضبط صدای مهمان. |
| رسانه | فایلهای خروجی را روی دیسک میزبان/مهمان مینویسد. | بافرهای دودویی مستقیم از طریق سیم. |
| سیستم عامل مهمان | محدود به دستورات ثابت شبیهساز. | دستورات پوسته bash بومی مهمان را اجرا میکند. |
راهاندازی و فراخوانی gRPC
برای استفاده از نقاط پایانی gRPC، شبیهساز اندروید را از خط فرمان اجرا کنید و پرچم -grpc را که پورت loopback هدف را مشخص میکند، اضافه کنید.
# Start the emulator with the gRPC service enabled on port 8556
emulator -grpc localhost:8556 @Pixel_Fold
پس از اجرای شبیهساز با فعال بودن سرویس gRPC، میتوانید فراخوانیهای RPC برنامهریزیشده انجام دهید. برای آزمایش خط فرمان، از ابزار grpcurl برای برقراری ارتباط با سرویسهای شبیهساز استفاده کنید. همه درخواستها در قالب JSON قالببندی شده و از طریق متن ساده ارسال میشوند.
# Query the status of the virtual device using grpcurl
grpcurl -plaintext -d '{}' localhost:8556 \
android.emulation.control.EmulatorController/getStatus
# Simulate an incoming phone call
grpcurl -plaintext -d '{"operation": "InitCall", "number": "1234567890"}' localhost:8556 \
android.emulation.control.EmulatorController/sendPhone
# Simulate typing text into the guest OS
grpcurl -plaintext -d '{"text": "Hello"}' localhost:8556 \
android.emulation.control.EmulatorController/sendKey
نگاشت سرویس کنسول Telnet به gRPC
جدول مرجع زیر، دستورات کنسول Telnet قدیمی را به سرویسها و متدهای gRPC مربوطهشان نگاشت میکند و نحوه خودکارسازی تعاملات رایج دستگاههای مجازی را از طریق برنامهنویسی نشان میدهد:
| دسته بندی | دستور قدیمی Telnet | سرویس/روش gRPC |
|---|---|---|
| وضعیت | ping | EmulatorController/getStatus |
| وضعیت | avd name | incubating.AvdService/getAvdInfo |
| وضعیت | kill | EmulatorController/setVmState |
| وضعیت | restart | EmulatorController/setVmState |
| قدرت | power display | EmulatorController/getBattery |
| قدرت | power capacity | EmulatorController/setBattery |
| ژئو لوک | geo fix | EmulatorController/setGps |
| حسگرها | sensor set | incubating.SensorService/setSensor |
| بیومتریک | finger touch | EmulatorController/sendFingerprint |
| وضعیت بدن | posture | EmulatorController/setPosture |
| وضعیت بدن | physics / fold | EmulatorController/setPhysicalModel |
| پیامک | sms send | EmulatorController/sendSms |
| تماس GSM | gsm call | EmulatorController/sendPhone |
| تماس GSM | phonenumber | EmulatorController/setPhoneNumber |
| تغییر مسیر | redir add | Waterfall/ForwardPort |
| ورودی | event send EV_KEY | EmulatorController/sendKey |
| ورودی | event send EV_ABS | EmulatorController/sendTouch |
| رسانه | screenrecord | incubating.ScreenRecording |
| رندرینگ | nodraw | EmulatorController/setDisplayMode |
| عکسهای فوری | avd snapshot list | SnapshotService/ListSnapshots |
| عکسهای فوری | avd snapshot load/save | SnapshotService/LoadSnapshot |
دستورات برنامهنویسی منحصر به فرد برای gRPC
رابط gRPC چندین قابلیت پیشرفته را ارائه میدهد که از نظر فیزیکی اجرای آنها از طریق اتصالات کنسول قدیمی Telnet غیرممکن است. این قابلیتها شامل پخش مستقیم logcat، ضبط یا تزریق صدا دو طرفه، تغییرات رابط کاربری گرافیکی میزبان و دسترسی مستقیم به پوسته است.
| سرویس/روش gRPC | پارامتر | قابلیت |
|---|---|---|
streamLogcat | {"maxLines": 100} | خروجیهای logcat سیستم مهمان را پخش میکند |
streamAudio | {} | صدای بلندگو را از طریق سیم پخش میکند |
injectAudio | {"audio": "..."} | جریانهای صوتی میکروفون را تزریق میکند |
UiController | {"theme": "DARK"} | تمهای پنجرهی میزبان را تغییر میدهد |
Waterfall/Exec | {"cmd": "ls"} | دستورات پوسته سیستم عامل مهمان بومی را اجرا میکند |
شبیهسازی و اعتبارسنجی اثر انگشت

از دستور finger برای شبیهسازی و اعتبارسنجی احراز هویت اثر انگشت برای برنامه خود استفاده کنید. به SDK Tools نسخه ۲۴.۳ یا بالاتر و اندروید ۶.۰ (سطح API ۲۳) یا بالاتر نیاز دارید.
برای شبیهسازی و اعتبارسنجی احراز هویت اثر انگشت، مراحل زیر را دنبال کنید:
اگر هنوز شناسه اثر انگشت ندارید، با انتخاب تنظیمات > امنیت > اثر انگشت و دنبال کردن دستورالعملهای ثبتنام، یک اثر انگشت جدید در شبیهساز ثبت کنید.
Set up your app to accept fingerprint authentication . After you perform this setup, your device displays the fingerprint authentication screen.
While your app displays the fingerprint authentication screen, go to the console and enter the
finger touchcommand and the fingerprint ID you created. This simulates a finger touch.Then, enter the
finger removecommand to simulate finger removal. Your app should respond as if a user touched and then removed their finger from the fingerprint sensor.