כל מכשיר וירטואלי פועל מספק מסוף שמאפשר לך להריץ שאילתות על האמולציה ולשלוט בה את סביבת המכשיר. לדוגמה, אפשר להשתמש במסוף כדי לנהל הפניה אוטומטית ליציאה אחרת, הוספת רשת ומאפיינים של אירועי טלפוניה בזמן שהאפליקציה פועלת באמולטור.
בפקודות הבאות נדרש אמולטור פועל. לקבלת מידע נוסף מידע על הפעלת אמולטור, הפעלת אפליקציות באמולטור Android מפעילים את האמולטור משורת הפקודה.
התחלה והפסקה של סשן במסוף
כדי לגשת למסוף ולהזין פקודות מחלון הטרמינל, משתמשים ב-telnet
כדי
להתחבר ליציאת המסוף ולספק את אסימון האימות. בכל פעם שהמסוף מוצג
אוקיי, האפליקציה מוכנה לקבלת פקודות. אין הנחיה אופיינית.
כדי להתחבר למסוף של מכשיר וירטואלי פועל:
- פותחים חלון טרמינל ומזינים את הפקודה הבאה:
- אחרי שבמסוף יוצג
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 (Global Positioning System Fix Data) שמקבל את
שעה, מיקום ותיקון נתונים למקלט GPS:
geo nmea $GPGGA ,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx |
אירועי חומרה מזויפים | תיאור |
event types
|
בתיבת הדו-שיח הזו מפורטים כל סוגי האירועים המזויפים. באירועים שכוללים קודים, מספר הקודים מופיע ב
סוגריים בצד ימין.
event types event <type> can be an integer or one of the following aliases: EV_SYN EV_KEY (405 code aliases) EV_REL (2 code aliases) EV_ABS (27 code aliases) EV_MSC EV_SW (4 code aliases) EV_LED EV_SND EV_REP EV_FF EV_PWR EV_FF_STATUS EV_MAX OK |
event send types [types ...]
|
נשלחים נתונים של סוג אירוע מזויף אחד או יותר. |
event codes type
|
בתיבת הדו-שיח הזו מפורטים קודי האירועים של סוג האירוע המזויף שצוין. |
event send type[:code]:[value] [...]
|
נשלחים אירועים מזויפים אחד או יותר עם קודים אופציונליים וערכי קוד.
כדי לגלות איזה אירוע בדיוק לשלוח, אפשר להשתמש בפקודה אלה האירועים שנוצרים כשלוחצים על לחצן ההפעלה: adb shell getevent -lt /dev/input/event12: EV_KEY KEY_POWER DOWN /dev/input/event12: EV_SYN SYN_REPORT 00000000 /dev/input/event12: EV_KEY KEY_POWER UP /dev/input/event12: EV_SYN SYN_REPORT 00000000 EV_KEY של מקש Keydown ו-keyup:
event send EV_KEY:KEY_POWER:0 OK event send EV_KEY:KEY_POWER:1 OK |
event text message
|
הפונקציה שולחת מחרוזת של תווים שמדמות לחיצות על מקשים. ההודעה חייבת להיות במחרוזת UTF-8. מתבצע מיפוי הפוך של פוסטים ב-Unicode בהתאם למקלדת המכשיר הנוכחית, והם לא נתמכים התווים נמחקים ברקע. |
אמצעי בקרה למצב ההפעלה של המכשיר | תיאור |
power display
|
הצגת מצב הסוללה והמטען. |
power ac {on|off}
|
הגדרת מצב טעינה של מיזוג אוויר ל-on או ל-off .
|
power status {unknown|charging|discharging|not-charging|full}
|
שינוי סטטוס הסוללה כפי שצוין. |
power present {true|false}
|
הגדרת מצב הנוכחות של הסוללה. |
power health {unknown|good|overheat|dead|overvoltage|failure}
|
הגדרת מצב תקינות הסוללה. |
power capacity percent
|
הגדרת קיבולת הסוללה שנותרה כאחוז בין 0 ל-100. |
סטטוס החיבור לרשת | תיאור |
network status
|
בדיקת סטטוס הרשת ומאפייני ההשהיה והמהירות הנוכחיים. |
network delay latency
|
שינוי זמן האחזור של הרשת באמולציה. האמולטור מאפשר לדמות רמות שונות של זמן אחזור ברשת, כדי לבדוק בסביבה שאופיינית יותר לתנאי הפעילות בפועל. אפשר להגדיר רמת זמן אחזור או טווח בזמן ההפעלה של האמולטור, או להשתמש כדי לשנות את זמן האחזור בזמן שהאפליקציה פועלת באמולטור. הפורמט של רשת latency הוא אחד מהבאים (המספרים הם אלפיות שנייה): פורמט זמן האחזור של הרשת:
כדי להגדיר זמן אחזור בהפעלה של האמולטור, יש להשתמש ברכיב emulator -netdelay gprs emulator -netdelay 40,100 כדי לבצע שינויים בעיכוב הרשת בזמן שהאמולטור פועל, צריך להתחבר למסוף ולהשתמש
הפקודה network delay gprs network delay 40 100 |
network speed speed |
האמולטור מאפשר לדמות קצבי העברה שונים ברשת.
אפשר להגדיר קצב או טווח העברה בהפעלה של האמולטור, או להשתמש במסוף כדי שינוי הקצב בזמן שהאפליקציה פועלת באמולטור. הפורמט של הרשת פורמט מהירות הרשת:
כדי להגדיר את מהירות הרשת בהפעלה של האמולטור, צריך להשתמש ב emulator -netspeed gsm @Pixel_API_26 emulator -netspeed 14.4,80 @Pixel_API_26 כדי לערוך שינויים במהירות הרשת בזמן שהאמולטור פועל, צריך להתחבר למסוף
ולהשתמש בפקודה network speed 14.4 80 |
network capture {start|stop} file |
שליחת חבילות לקובץ. הרשימה הבאה מתארת את הפרמטרים
ערכי הפרמטרים:
|
אמולציית טלפוניה | תיאור |
האמולטור של Android כולל מודם GSM ו-CDMA משלו, שמאפשר לדמות טלפוניה הפונקציות באמולטור. לדוגמה, באמצעות GSM אפשר לדמות שיחות טלפון נכנסות ולסיים את חיבורי הנתונים. ב-CDMA, אתם מספקים מקור מינויים רשימה בנדידה. מערכת Android מטפלת בשיחות הדמיות בדיוק כפי שהיא מטפלת בשיחות בפועל. האמולטור לא תומך באודיו של שיחה. | |
gsm {call|accept|cancel|busy} phonenumber
|
אלה הפרמטרים gsm :
|
gsm {data|voice} state
|
הפקודה data state משנה את המצב של חיבור הנתונים GPRS,
והפקודה data voice state משנה את המצב של קול ה-GPRS
באופן הבא:
|
gsm hold
|
שינוי מצב השיחה ל-hold . אפשר לשנות
קריאה למצב hold רק כשהמצב הנוכחי שלו הוא active או
waiting .
|
gsm list
|
רשימה של כל השיחות הנכנסות והיוצאות והמצב שלהן. |
gsm status
|
דיווח על מצב הנתונים/הקול הנוכחי של GSM. הערכים הם אלה
כפי שמתואר בשביל הפקודות voice ו-data .
|
gsm signal {rssi|ber}
|
שינוי עוצמת האות המדווחת (rssi) ושיעור שגיאות העברת הנתונים (ber) ב-15 הבאים
שניות מרגע העדכון. ברשימה הבאה מתוארים הפרמטרים והערכים שלהם:
|
gsm signal-profile num
|
הגדרת הפרופיל של עוצמת האות.
num הוא מספר בין 0 ל-4.
|
cdma ssource source
|
מגדיר את מקור המינויים הנוכחי ל-CDMA, שבו
source היא רשימת היתרים מבוססת-רשת שכוללת את הקטע
המנויים של ספק ה-CDMA והערכים שלהם, כך:
|
cdma prl_version version
|
הצגת הגרסה הנוכחית של רשימת הנדידה המועדפת (PRL). מספר הגרסה הוא של ה-PRL מסד נתונים שמכיל מידע ששימש בתהליך הבחירה והרכישה של המערכת. |
ניהול החיישנים באמולטור | תיאור |
הפקודות האלה קשורות
אילו חיישנים זמינים ב-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 | תיאור |
sms send sender-phone-number textmessage
|
יצירת אמולציה של הודעת SMS נכנסת. הרשימה הבאה מתארת את הפרמטרים
הערכים שלהם:
לפי הדוגמה הבאה נשלחת ההודעה "שלום" למספר הטלפון 4085555555: sms send 4085555555 hi there המסוף מעביר את הודעת ה-SMS ל-framework של Android, שמעביר אותה אפליקציה באמולטור שמטפל ב-SMS, כמו אפליקציית Messages. אם מעבירים 10 מספרים, שהאפליקציה מציגה אותו כמספר טלפון. מחרוזות מספר ארוכות או קצרות יותר מציגות את הדרך. ששלחת אותם.
|
סימולציה של טביעת אצבע | תיאור |
finger touch fingerprint-id
|
הדמייה של אצבע שנגעת בחיישן. |
finger remove
|
הדמיה של הסרת אצבע.
לקבלת הוראות לשימוש בפקודות האלה, קראו את הקטע הבא על הדמיה ואימות של טביעות אצבע |
סימולציה ואימות של טביעת אצבע
משתמשים בפקודה finger
כדי לדמות ולאמת אימות באמצעות טביעת אצבע
אפליקציה. צריך כלים ל-SDK מגרסה 24.3 ואילך ו-Android מגרסה 6.0 (רמת API 23) ואילך.
כדי לדמות אימות של טביעת אצבע ולאמת אותו, מבצעים את השלבים הבאים:
- אם עדיין אין לך מזהה טביעת אצבע, צריך לרשום טביעת אצבע חדשה באמולטור בחירה באפשרות הגדרות > אבטחה > טביעת אצבע וביצוע של הוראות הרשמה.
- הגדרת האפליקציה לקבלת הסכמה טביעת אצבע אימות. לאחר ביצוע ההגדרה הזו, במכשיר תוצג טביעת האצבע מסך האימות.
- בזמן שהאפליקציה מציגה את המסך של אימות טביעת האצבע, עוברים אל המסוף ו
מזינים את הפקודה
finger touch
ואת מזהה טביעת האצבע שיצרתם. הזה מדמה מגע באצבע. - לאחר מכן, מזינים את הפקודה
finger remove
כדי לדמות את הסרת האצבע.האפליקציה אמורה להגיב כאילו משתמש נגע ואז הסיר את האצבע מחיישן טביעות אצבע.