כל מכשיר וירטואלי שפועל מספק קונסולה שמאפשרת לשלוח שאילתות ולשלוט בסביבת המכשיר המדומה. לדוגמה, אפשר להשתמש במסוף כדי לנהל את הפניית היציאות, את מאפייני הרשת ואת אירועי הטלפוניה בזמן שהאפליקציה פועלת באמולטור.
כדי להשתמש בפקודות הבאות, צריך להריץ אמולטור. מידע נוסף על הפעלת אמולטור זמין במאמרים הרצת אפליקציות באמולטור Android והפעלת האמולטור משורת הפקודה.
איך מתחילים ומפסיקים סשן במסוף
כדי לגשת למסוף ולהזין פקודות מחלון טרמינל, צריך להשתמש ב-Telnet כדי להתחבר ליציאת המסוף ולספק את אסימון האימות. בכל פעם שמוצג OK במסוף, הוא מוכן לקבל פקודות. אין הנחיה טיפוסית.
כדי להתחבר למסוף של מכשיר וירטואלי פועל:
פותחים חלון טרמינל ומזינים את הפקודה הבאה:
telnet localhost console-portאם האמולטור פועל בחלון נפרד, מספר יציאת המסוף מופיע בכותרת החלון, אבל אם הוא פועל בחלון של הכלי, המספר לא מופיע. לדוגמה, כותרת החלון של אמולטור שמשתמש ביציאת מסוף 5554 יכולה להיות Pixel8_API_34:5554. בנוסף, הפקודה
adb devicesמדפיסה רשימה של מכשירים וירטואליים פעילים ומספרי יציאות המסוף שלהם. מידע נוסף מופיע במאמר בנושא שאילתות לגבי מכשירים.הערה: האמולטור מאזין לחיבורים ביציאות 5554 עד 5585 ומקבל חיבורים רק מ-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}שומר ומחזיר את מצב המכשיר בתמונות מצב, באופן הבא:- list: מציג רשימה של כל קובצי ה-snapshot השמורים.
- save name: שומר את התמונה בשם name.
- load name: טעינת תמונת המצב שצוין השם שלה.
- delete name: מחיקת קובץ ה-snapshot עם השם.
בדוגמה הבאה נשמרת תמונת מצב בשם
firstactivitysnapshot:avd snapshot save firstactivitysnapshotfold: קיפול המכשיר כדי להציג את הגדרת תצורה של מסך הקטן יותר, אם המכשיר מתקפל וכרגע הוא פתוח.
unfold: פותח את המכשיר כדי להציג את הגדרת תצורה של מסך הגדול יותר, אם המכשיר מתקפל ובמצב מקופל.
kill: סוגר את המכשיר הווירטואלי.
ping: בדיקה אם המכשיר הווירטואלי פועל.
rotate: מסובב את ה-AVD נגד כיוון השעון במרווחים של 45 מעלות.
קריסת האמולטור
קריסה: קריסת האמולטור במהלך הפעלת האפליקציה.
crash-on-exit: גורם לקריסת האמולטור כשהאפליקציה יוצאת.
ניפוי באגים בתגים
debug tags ...: מפעיל או משבית הודעות ניפוי באגים מחלקים ספציפיים של האמולטור. הפרמטר tags צריך להיות ערך מתוך רשימת תגי הניפוי באגים שמופיעה כשמריצים את הפקודה
emulator -help-debug-tags. מידע נוסף על האפשרות-help-debug-tagsמופיע בטבלה של אפשרויות נפוצות. בדוגמה הבאה מפעילים את תג הרדיו:debug radio
הפניה ליציאה אחרת
redir list: מציג את הפניית היציאה הנוכחית.
redir add protocol:host-port:guest-portמוסיף הפניית יציאה חדשה, באופן הבא:- protocol: הערך חייב להיות tcp או udp.
- host-port: מספר היציאה שייפתח במארח.
- guest-port: מספר היציאה לניתוב הנתונים באמולטור.
redir del protocol:host-portמחיקת הפניה ליציאה.- protocol: הערך חייב להיות tcp או udp.
- host-port: מספר היציאה שייפתח במארח.
מיקום גיאוגרפי
ההגדרה הזו קובעת את המיקום הגיאוגרפי שמדווח לאפליקציות שפועלות בתוך אמולטור, על ידי שליחת תיקון GPS לאמולטור.
אפשר להשתמש באחת מהפקודות הגיאוגרפיות הבאות ברגע שמכשיר וירטואלי פועל. האמולטור מגדיר את המיקום שהזנתם על ידי יצירת ספק מיקום מדומה. הספק הזה מגיב למאזיני מיקום שהוגדרו על ידי אפליקציות ומספק את המיקום ל-LocationManager. כל אפליקציה יכולה לשלוח שאילתה למנהל המיקום כדי לקבל את נתוני ה-GPS הנוכחיים של המכשיר המדומה באמצעות קריאה ל-LocationManager.getLastKnownLocation("gps").
geo fix longitude latitude [altitude] [satellites] [velocity]: שולח תיקון GPS פשוט לאמולטור. מציינים את קו האורך וקו הרוחב במעלות עשרוניות. משתמשים במספר מ-1 עד 12 כדי לציין את מספר הלוויינים שבהם רוצים להשתמש כדי לקבוע את המיקום, ומציינים את הגובה במטרים ואת המהירות בקשרים.
geo nmea sentence: שולח משפט 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 OKevent send types [types ...]: שליחה של סוג אירוע מזויף אחד או יותר.
סוג קודי האירועים: רשימה של קודי האירועים עבור סוג האירוע המזויף שצוין.
event send type[:code]:[value] [...]: שולח אירוע מזויף אחד או יותר עם קודים וערכי קודים אופציונליים.
EV_KEY – הפניות לקודי מקשים
סוג האירוע EV_KEY משמש להדמיה של לחיצות על לחצנים ושחרור שלהם. בטבלאות הבאות חילקנו את הרשימה הארוכה של קודי המקשים הנתמכים לקטגוריות הגיוניות. לכל קוד מקש, שליחת ערך של 1 מדמה לחיצה, ושליחת ערך של 0 מדמה שחרור. הערך 2 מייצג חזרה על מקש.
טבלת משנה א': מפתחות מערכת Android
| קוד | תיאור |
|---|---|
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 |
הפעלה או כיבוי של התאורה האחורית במקלדת |
טבלת משנה ב': מדיה ורכיבי UI להפעלה
| קוד | תיאור |
|---|---|
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 |
ניווט באמצעות Page up |
KEY_PAGEDOWN |
ניווט בדפדוף למטה |
KEY_INSERT |
הוספת טריגר של מקש |
KEY_DELETE |
מחיקת טריגר של מקש |
KEY_ENTER |
הזנת טריגר של מקש |
KEY_ESC |
הפעלה באמצעות מקש Escape |
KEY_TAB |
טריגר של מקש Tab |
KEY_SPACE |
טריגר של מקש הרווח |
KEY_BACKSPACE |
הפעלת המקש Backspace |
KEY_CLEAR |
ניקוי מאגר הקלט |
KEY_CANCEL |
ביטול פעולה פעילה |
KEY_OK |
אישור הבחירה |
KEY_SELECT |
בחירת טריגר של פריט |
KEY_GOTO |
מעבר למקום שנקבע |
KEY_HELP |
גישה להקשר של העזרה |
טבלת משנה D: אלפאנומריים וסמלים במקלדת הנומרית
- אותיות אלפבית רגילות:
KEY_AעדKEY_Z(26 קודים). - מקשים במקלדת נומרית:
KEY_1עדKEY_0(10 קודים).
| קוד | סמל של דמות |
|---|---|
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 |
Enter (מקלדת נומרית) |
KEY_KPEQUAL |
= (מקלדת נומרית) |
KEY_KPCOMMA |
, (מקלדת נומרית) |
KEY_KPJPCOMMA |
, (פריסה יפנית) |
KEY_KPLEFTPAREN |
( (מקלדת נומרית) |
KEY_KPRIGHTPAREN |
) (מקלדת נומרית) |
KEY_KPPLUSMINUS |
± (מקלדת נומרית) |
טבלת משנה ה'מקשי צירוף ומקשי פונקציה':
- מקשי פונקציות רגילים:
KEY_F1עדKEY_F24(24 קודים).
| קוד | תיאור |
|---|---|
KEY_LEFTSHIFT |
מקש Shift שמאלי לשינוי המקלדת |
KEY_RIGHTSHIFT |
מקש ה-Shift הימני לשינוי המקלדת |
KEY_LEFTCTRL |
מקש הצירוף Left Control |
KEY_RIGHTCTRL |
מקש הצירוף Control בצד ימין של המקלדת |
KEY_LEFTALT |
מקש הצירוף Alt שמאלי |
KEY_RIGHTALT |
מקש הצירוף Alt בצד ימין של המקלדת |
KEY_LEFTMETA |
מקש Meta/Command שמאלי |
KEY_RIGHTMETA |
מקש מטא/פקודה ימני |
KEY_CAPSLOCK |
מתג Caps Lock במקלדת |
KEY_NUMLOCK |
החלפת מקלדת Num Lock |
KEY_SCROLLLOCK |
הפעלה או השבתה של מקש Scroll Lock במקלדת |
KEY_COMPOSE |
עזרה בכתיבת דמויות |
KEY_FN |
מקש FN במקלדת פיזית |
KEY_FN_ESC |
שילובים של מקשי פונקציות |
KEY_FN_1 |
קיצור דרך לפונקציה מיוחדת 1 |
KEY_FN_2 |
קיצור דרך לפונקציה מיוחדת 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 |
דגל מהירות של לחיצה משולשת בתנועה |
טבלת משנה ח': קיצורי דרך לאפליקציות
| קוד | פעולת היעד |
|---|---|
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 |
הפעלת פיד של נגן וידאו |
KEY_VCR2 |
הפעלת פיד של נגן VCR 2 |
KEY_AUX |
שקעי עזר לקלט מדיה |
KEY_SETUP |
תפריט הגדרת התצורה |
KEY_PROG1 עד _PROG4 |
מפתחות תוכנה שהוגדרו על ידי המשתמש |
KEY_ZOOM |
החלפת מצב של שינוי מרחק התצוגה |
KEY_MODE |
בחירה של מצב אזור התצוגה |
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 |
A-B repeat sequence loop |
KEY_PLAYCD |
פקודת הפעלה של נגן תקליטורים |
KEY_PAUSECD |
פקודת השהיה של נגן תקליטורים |
KEY_STOPCD |
פקודת עצירה של נגן תקליטורים |
KEY_DIGITS |
פקודה להזנת קוד במקלדת דיגיטלית |
KEY_TEEN |
אפשרות לערכי מקלדת לבני נוער |
KEY_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 (Pixel Fold) |
ABS_MT_POSITION_Y |
0 עד 2207 |
קואורדינטת Y (Pixel Fold) |
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 |
מספר שלם | מזהה ה-blob של איש הקשר |
ABS_MT_TOOL_X |
פיקסלים | קואורדינטת מיקום X של הכלי |
ABS_MT_TOOL_Y |
פיקסלים | קואורדינטת מיקום Y של הכלי |
ABS_MT_SLOT |
0 עד N |
משבצת פעילה (פרוטוקול ב') |
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 |
אנלוגי | רמות עוצמת הקול של השלט |
האינטראקציה עם מסך המגע ב-Android מבוססת על פרוטוקולים של מולטי-טאץ' (MT). אמולטורים מודרניים מיישמים גם את פרוטוקול א' (בלי שמירת מצב, שליחת מנות של אנשי קשר מופרדות על ידי סימני סנכרון) וגם את פרוטוקול ב' (עם שמירת מצב, הקצאת אנשי קשר למשבצות מעקב ייעודיות). פרוטוקול 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. פוסטים ב-Unicode ממופים הפוך בהתאם למקלדת הנוכחית של המכשיר, ותווים לא נתמכים מושמטים ללא הודעה.
אמצעי בקרה למצב צריכת החשמל
תצוגת ההפעלה: מציגה את מצב הסוללה והמטען.
power ac {on| off}: מגדיר את מצב הטעינה באמצעות מתח AC להפעלה או להשבתה.
power status {unknown| charging| discharging| not-charging| full}: משנה את מצב הסוללה בהתאם לערך שצוין.
power present {true| false}: הגדרת מצב נוכחות הסוללה.
power health {unknown| good| overheat| dead| overvoltage| failure}: הגדרת מצב תקינות הסוללה.
אחוז קיבולת הסוללה: הגדרת מצב קיבולת הסוללה שנותרה באחוזים, מ-0 עד 100.
סטטוס החיבור לרשת (רק אתרנט ורשת סלולרית)
סטטוס הרשת: בדיקה של סטטוס הרשת, העיכוב הנוכחי ומאפייני המהירות.
network delay latencyשינוי של זמן האחזור ברשת המדומה.האמולטור מאפשר לדמות רמות שונות של זמן אחזור ברשת, כדי שתוכלו לבדוק את האפליקציה בסביבה שדומה יותר לתנאי ההפעלה בפועל. אפשר להגדיר רמת חביון או טווח חביון בהפעלה של האמולטור, או להשתמש במסוף כדי לשנות את החביון בזמן שהאפליקציה פועלת באמולטור.
הפורמט של זמן האחזור ברשת הוא אחד מהבאים (המספרים הם אלפיות השנייה):
פורמט זמן האחזור של הרשת:
gprs: GPRS, שמשתמש בטווח זמן אחזור של 150 מינימום ו-550 מקסימום.
EDGE: EDGE/EGPRS, שמשתמש בטווח חביון של 80 מינימום ו-400 מקסימום.
umts: UMTS/3G, שמשתמש בטווח זמן אחזור של 35 מינימום ו-200 מקסימום.
none: ללא זמן אחזור.
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, שמשתמש במהירות של 14.4 למעלה ו-14.4 למטה.
hscsd: HSCSD, שמשתמש במהירות של 14.4 למעלה ו-43.2 למטה.
gprs: GPRS, שמשתמש במהירות של 40.0 למעלה ו-80.0 למטה.
EDGE: EDGE/EGPRS, שמשתמש במהירות של 118.4 למעלה ו-236.8 למטה.
umts: UMTS/3G, שמשתמש במהירות של 128.0 למעלה ו-1920 למטה.
hsdpa: HSDPA, שמשתמש במהירות של 348.0 למעלה ו-14,400.0 למטה.
lte: LTE, שמשתמש במהירות של 58,000 למעלה ו-173,000 למטה.
evdo: EVDO, שמשתמש במהירות של 75,000 להעלאה ו-280,000 להורדה.
מלאה: מהירות ללא הגבלה, אבל תלויה במהירות החיבור של המחשב.
num: הגדרה של קצב מדויק ביחידות של קילוביט לשנייה (Kbps) שמשמש להעלאה ולהורדה.
up:down: הגדרת קצב מדויק ביחידות של קילוביט לשנייה להעלאה ולהורדה בנפרד.
כדי להגדיר את מהירות הרשת בהפעלת האמולטור, משתמשים באפשרות
-netspeedemulator. דוגמאות:emulator -netspeed gsm @Pixel_API_26 emulator -netspeed 14.4,80 @Pixel_API_26כדי לשנות את מהירות הרשת בזמן שהאמולטור פועל, מתחברים למסוף ומשתמשים בפקודה
network speed:network speed 14.4 80
network capture {start| stop} fileשולח מנות לקובץ. הרשימה הבאה מתארת את הפרמטרים ואת ערכי הפרמטרים:הערה: החל מגרסה 36.5 של אמולטור Android ואילך, תנועת נתונים של חיבור Wi-Fi מטופלת על ידי netsim כברירת מחדל. פקודת המסוף network capture מתעדת רק תנועה ברשת סלולרית או ברשת WAN מדור קודם, שמנותבת דרך מחסנית QEMU slirp. כדי ללכוד מנות Wi-Fi, Bluetooth או מנות רשת מתקדמות בגרסאות מודרניות של אמולטורים, אפשר לעיין במאמר לכידת תנועת רשת במדריך בנושא רשתות מתקדמות של אמולטורים.
start file: מתחיל ללכוד חבילות נתונים ברשת. מטעמי אבטחה, הקובץ צריך להיות שם קובץ בלבד (ללא מפרידי נתיבים כמו
/וללא..). קובץ לכידת המנות יישמר בספריית התוכן של ה-AVD בתיקייהconsole_out/(לדוגמה,~/.android/avd/avd_name.avd/console_out/file).stop file: מפסיק את שליחת החבילות לקובץ שצוין.
אמולציה של טלפוניה
האמולטור של Android כולל מודמים משלו של GSM ו-CDMA, שמאפשרים לדמות פונקציות של טלפוניה באמולטור. לדוגמה, באמצעות GSM אפשר לדמות שיחות טלפון נכנסות וליצור ולסיים חיבורי נתונים. ב-CDMA, אתם מספקים מקור מינוי ורשימת נדידה מועדפת. מערכת Android מטפלת בשיחות מדומה בדיוק כמו בשיחות אמיתיות. האמולטור לא תומך באודיו של שיחות.
gsm {call| accept| cancel| busy} phonenumberאלה הפרמטרים של gsm:- call: מדמה שיחת טלפון נכנסת ממספר הטלפון.
- accept: מקבל שיחה נכנסת ממספר טלפון ומשנה את מצב השיחה ל'פעיל'. אפשר לשנות את סטטוס השיחה ל'פעילה' רק אם הסטטוס הנוכחי שלה הוא 'ממתינה' או 'בהמתנה'.
- cancel: סיום שיחת טלפון נכנסת מ-phonenumber או שיחת טלפון יוצאת אל phonenumber.
- busy: סוגר שיחה יוצאת למספר טלפון ומשנה את מצב השיחה ל-busy. אפשר לשנות את סטטוס השיחה ל'תפוס' רק אם הסטטוס הנוכחי שלה הוא 'ממתינה'.
gsm {data| voice} stateהפקודה data state משנה את המצב של חיבור הנתונים ב-GPRS, והפקודה voice state משנה את המצב של חיבור הקול ב-GPRS, באופן הבא:- לא רשום: אין רשת זמינה.
- ביתית: ברשת מקומית, לא בנדידה.
- נדידה: ברשת נדידה.
- חיפוש: חיפוש רשתות.
- נדחתה: שיחות חירום בלבד.
- off: Same as unregistered.
- on: כמו בבית.
gsm hold: שינוי מצב השיחה להמתנה. אפשר להעביר שיחה למצב המתנה רק אם המצב הנוכחי שלה הוא פעיל או בהמתנה.
gsm list: רשימה של כל השיחות הנכנסות והיוצאות והסטטוס שלהן.
gsm status: מדווח על המצב הנוכחי של נתוני קול/נתונים ב-GSM. הערכים הם אלה שמתוארים בפקודות הקוליות והפקודות לנתונים.
gsm signal {rssi| ber}הפקודה משנה את עוצמת האות (rssi) ואת שיעור שגיאות הביטים (ber) שדווחו ב-15 השניות הבאות של העדכון. הרשימה הבאה מתארת את הפרמטרים ואת הערכים שלהם:- rssi: הטווח הוא 0 עד 31, ו-99 אם לא ידוע.
- ber: הטווח הוא 0 עד 7 ו-99 לערך לא ידוע.
gsm signal-profile num: הגדרת פרופיל עוצמת האות. num הוא מספר מ-0 עד 4.
cdma ssource sourceמגדיר את המקור הנוכחי של מינוי CDMA, כאשר המקור הוא רשימת היתרים מבוססת-רשת שמכילה את המנויים של ספק CDMA והערכים שלהם, באופן הבא:- nv: קורא את המינוי מ-RAM לא נדיף.
- ruim: קריאת המינוי מ-Removable User Identity Module (מודול זהות משתמש נשלף, RUIM).
cdma prl_version version: מציג את הגרסה הנוכחית של רשימת הנדידה המועדפת (PRL). מספר הגרסה הוא של מסד הנתונים של PRL שמכיל מידע שמשמש במהלך תהליך הבחירה והרכישה של המערכת.
ניהול חיישנים באמולטור
הפקודות האלה קשורות לחיישנים שזמינים ב-AVD. בנוסף לשימוש בפקודת החיישן, אפשר לראות ולשנות את ההגדרות באמולטור במסך 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
sms send sender-phone-number textmessageיוצר הודעת SMS נכנסת מדומה. הרשימה הבאה מתארת את הפרמטרים והערכים שלהם:- sender-phone-number: מכיל מחרוזת מספרית שרירותית.
- textmessage: הודעת ה-SMS.
בדוגמה הבאה נשלחת ההודעה "hi there" למספר הטלפון 4085555555:
sms send 4085555555 hi there
המסוף מעביר את הודעת ה-SMS למסגרת Android, שמעבירה אותה לאפליקציה באמולטור שמטפלת ב-SMS, כמו אפליקציית Messages. אם מעבירים 10 מספרים, האפליקציה מעצבת אותם כמספר טלפון. מחרוזות מספריות ארוכות או קצרות יותר מוצגות כמו שהן נשלחו.
סימולציה של טביעת אצבע
finger touch fingerprint-id: מדמה מגע של אצבע בחיישן.
finger remove: מדמה הסרה של האצבע.
הוראות לשימוש בפקודות האלה מופיעות בקטע הבא בנושא סימולציה ואימות של טביעות אצבע.
הקלטת המסך
הפקודה להקלטת המסך מאפשרת לצלם קובצי וידאו באיכות גבוהה של התצוגה הפיזית של האמולטור ישירות ממערכת המארח. האפשרות הזו שימושית מאוד לפייפליינים של אינטגרציה רציפה ולדיווח אוטומטי על באגים.
screenrecord {start| stop} fileמתחיל או מפסיק את תהליך הקלטת המסך.- start file: מתחיל הקלטת וידאו. קובץ הפלט צריך להסתיים בסיומת
.webm. הסרטון שצולם נשמר ישירות בספריית פלט המסוף של ה-AVD:~/.android/avd/avd_name.avd/console_out/file. - stop file: מפסיק את תהליך ההקלטה הפעיל של המסך.
- start file: מתחיל הקלטת וידאו. קובץ הפלט צריך להסתיים בסיומת
אוטומציה ומאקרו
מערכת המשנה לאוטומציה מאפשרת למפתחים להקליט מעברים של מצבי מאקרו במכשיר הווירטואלי הפועל ולהפעיל אותם מחדש כדי לבצע תהליכי בדיקה אוטומטיים.
-
automation {record| stop-record| play| stop-play}ניהול הקלטות מאקרו אוטומטיות.- record: מתחיל להקליט שינויים במצב המכשיר וקלט.
- stop-record: מפסיק את הסשן הנוכחי של הקלטת מאקרו.
- play: מתחיל להפעיל רצף מאקרו מוקלט.
- stop-play: מפסיק את רצף ההפעלה של המאקרו הפעיל.
פיזיקה (6DoF)
הפקודות של הפיזיקה מנהלות רישום של תנוחות מרחביות של תנועה פיזית עם שש דרגות חופש (6DoF), שמשמשות להדמיה של מעקב תנועה מתקדם.
physics {record-gt| stop}ניהול הקלטות של מודל תנוחות פיזיות.- record-gt: מתחיל להקליט נתוני תנועה של 6DoF (שש דרגות חופש) של האמת הבסיסית.
- stop: מפסיק את תהליך ההקלטה הנוכחי של נתוני האמת.
ממשק השליטה במכשירים מתקדם
בקטע הזה מרוכזות נקודות קצה של פקודות קונסולה מאוד ספציפיות להגדרות מתקדמות של אמולציה, כולל שרתי proxy ברשת, הגדרות של כמה מסכים, ביטולים של עיבוד נתונים וניפוי באגים ישיר של היפר-ויזורים.
multidisplay {add| del}מוסיף או מוחק מסכים וירטואליים משניים כדי לבדוק הגדרות של ריבוי מסכים. הערה: אין תמיכה במסכים משניים בפרופילים של מכשירים מתקפלים כמו Pixel Fold או האמולטור שניתן לשינוי גודל.proxy {set| clear}הגדרת העברה של שרת proxy ברשת באופן פרוגרמטי מהמסוף.- set host port: הגדרת הגדרות לשרת proxy ליעד.
- clear: איפוס הגדרות ה-proxy לברירת המחדל. הערה: פעולות להגדרת שרת proxy נכשלות בסביבות הפעלה ללא GUI.
virtualscene-image {wall| table} image_pathהתאמה אישית של קבצים של תמונות משתמשים כדי להציג אותם כרקע של קירות או שולחנות אופקיים בפיד המצלמה של הסצנה הווירטואלית.resize-display scaleהתאמה דינמית של רזולוציית המסך בין קנה מידה מוגדר מראש. הערה: התאמות של רזולוציה לא נתמכות בהגדרות ללא ראש.nodraw {on| off}משבית את העיבוד של ממשק משתמש פיזי במסך המארח כדי לצמצם את זיכרון המערכת ואת העומס על ה-GPU במהלך הפעלות אוטומטיות של headless ברקע בהיקף גדול.grpc portהגדרה של שליטה מתקדמת במכשירים באמצעות תוכנה דרך נקודות קצה של יציאות gRPC בהתאמה אישית.
qemu monitorמאפשרת גישה ישירה ואינטראקטיבית למסוף של ההיפר-ויז'ר הבסיסי. אפשר להזין את הפקודה הזו רק במהלך הפעלת מסוף Telnet פעיל.
icebox track pidמפעיל צילומי מצב אוטומטיים של המערכת כשתהליך האפליקציה שצוין חווה חריגה או קריסה שלא טופלו.
phonenumber numberמגדיר את מספר הטלפון המקומי הווירטואלי של מכשיר היעד.
ממשק פרוגרמטי של gRPC
גרסאות מודרניות של אמולטורים תומכות בממשק תוכנותי gRPC עוצמתי, לצד מסוף Telnet מדור קודם. קונסולת Telnet מצוינת לסשנים אינטראקטיביים מהירים או לסקריפטים פשוטים, אבל ממשק gRPC מיועד לשליטה אוטומטית מאובטחת, חזקה ובעלת ביצועים גבוהים בשילוב רציף (CI) ובסביבות ללא ממשק משתמש. באמצעות נקודות קצה של שירות ישיר, gRPC מבטל את הצורך בניתוח של זרמי טקסט, בניהול של לחיצות ידיים של הפעלת מסוף או בחשיפה של יציאות localhost לא מוצפנות.
כדי לעזור לכם לבחור בין מסוף Telnet מדור קודם לבין ממשק gRPC מודרני לתכנות, ריכזנו כאן השוואה בין הביצועים, האבטחה והיכולות של התכונות:
| תכונה | מסוף Telnet | ממשק gRPC |
|---|---|---|
| מתאים במיוחד עבור | ניפוי באגים ידני, סשנים אינטראקטיביים. | CI/CD ללא ממשק משתמש, מערכות בדיקה אוטומטיות מורכבות. |
| מהירות | איטי יותר; תקורה של טקסט, זמן אחזור של החיבור. | אופטימלי; HTTP/2 מרובה, פרוטוקול מהיר. |
| אבטחה | לא מוצפן; יציאות מקומיות (5554 עד 5585). | יכול להיות מאובטח באמצעות TLS, פועל ברשתות. |
| Streams | לא נתמך; רק בקשות ותשובות. | שידורים ל-logcat, ללכידת אודיו של אורח. |
| מדיה | כתיבת קובצי פלט לדיסק של המארח או האורח. | מאגרי נתונים בינאריים ישירים דרך חוט. |
| מערכת הפעלה אורחת | מוגבל לפקודות קבועות של אמולטורים. | מריצה פקודות נייטיב של מעטפת Bash של אורח. |
הפעלת gRPC וביצוע שיחות
כדי להשתמש בנקודות הקצה של gRPC, מפעילים את אמולטור Android משורת הפקודה וכוללים את הדגל -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 | power display |
EmulatorController/getBattery |
| Power | 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 | 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 |
| Rendering | 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"} |
מריץ פקודות Shell של מערכת הפעלה אורחת |
סימולציה ואימות של טביעת אצבע
אפשר להשתמש בפקודה finger כדי לדמות ולאמת אימות באמצעות טביעת אצבע באפליקציה. נדרשים SDK Tools מגרסה 24.3 ואילך ו-Android מגרסה 6.0 (רמת API 23) ואילך.
כדי לדמות ולאמת אימות באמצעות טביעת אצבע, פועלים לפי השלבים הבאים:
אם עדיין אין לכם מזהה טביעת אצבע, צריך לרשום טביעת אצבע חדשה באמולטור. לשם כך, בוחרים באפשרות הגדרות > אבטחה > טביעת אצבע ופועלים לפי הוראות הרישום.
מגדירים את האפליקציה כך שתקבל אימות בטביעת אצבע. אחרי שמבצעים את ההגדרה הזו, מוצג במכשיר מסך אימות טביעת האצבע.
בזמן שמסך אימות טביעת האצבע מוצג באפליקציה, עוברים למסוף ומזינים את הפקודה
finger touchואת מזהה טביעת האצבע שיצרתם. הפעולה הזו מדמה מגע של אצבע.לאחר מכן, מזינים את הפקודה
finger removeכדי לדמות הסרה של האצבע. האפליקציה צריכה להגיב כאילו משתמש נגע בחיישן טביעת האצבע ואז הזיז את האצבע ממנו.