נתוני הגרסה של אמולטור

Android Emulator כלול ב-Android Studio.

גרסאות של האמולטור שקדמו לגרסה 25.3.0 הופצו כחלק מ-Android SDK Tools.

כדי לוודא שקיבלתם את הגרסה האחרונה, כדאי לבדוק אם יש עדכונים במנהל ה-SDK.

כדי להוריד גרסאות קודמות של Android Emulator, אפשר להיכנס לארכיון ההורדות של Android Emulator.

הערות המוצר לגרסאות של המהדרג שקדמו לגרסה 25.3.0 מפורטות בהערות המוצר של Android SDK Tools.

כדי לקבל מידע על בעיות מוכרות ועל פתרון בעיות, אפשר לעיין במאמר פתרון בעיות במהדורת האדמין.

35.4.4 קנרי (12 בדצמבר 2024)

אמולטור Android XR חדש

הוספנו אמולטור חדש וניסיוני של Android XR לפיתוח ובדיקה של אפליקציות שנוצרו באמצעות Jetpack XR SDK לקסדות. במדריך הזה מוסבר איך להתקין את אמולטור Android XR ולהגדיר את סביבת הפיתוח.

אמולטור Android XR הוא כלי ניסיוני. עם זאת, החלטנו לשתף את העדכון מוקדם כדי לאפשר לכם לבדוק אותו בשלב מוקדם. צפויות בעיות, במיוחד בהגדרות מסוימות של מנהלי התקנים ו-GPU של Windows. יכולות להתעורר בעיות גם לגבי בדיקות תאימות של אפליקציות קיימות לנייד ב-2D. המשוב שלכם יעזור לנו לשפר את התכונות שנשיק בעתיד ולקבוע את סדר העדיפויות שלהן.

עד כה, אמולטור Android XR נבדק בהגדרות החומרה הבאות:

  • Mac‏ (ARM)
  • Windows 11
    • nVidia GPU, ‏ 4GB של VRAM, גרסת מנהל התקן 553.35 ואילך
  • זיכרון RAM בנפח 16GB או יותר
  • 8 ליבות או יותר

בעיות מוכרות

אמולטור – יציבות וביצועים:

  • בחלק מההגדרות של Windows יכולות להתרחש נעילות או קריסות קריטיות של המערכת במהלך האתחול או במהלך הפעלת אפליקציות. צריך לוודא שפלטפורמת ה-hypervisor של Windows‏ (WHPX) מופעלת. לשם כך, פועלים לפי המדריך למפתחים של Android Studio להפעלת WHPX.
  • בעיות כמו רכיבי AVD או ממשק משתמש שלא מגיבים במחשבים ניידים אחרי מחזור השהיה-הפעלה מחדש (למשל, סגירת מחשב נייד ופתיחה שלו).
  • קריסות מדי פעם כשעוברים מאפליקציות מ'מצב מסך הבית' ל'מצב מסך מלא'
  • ממשקי ה-API של Gemini עדיין לא זמינים. האפליקציה של תבנית ההתחלה של Gemini API תקרוס.

אמולטור – סימולציה של קלט ופלט:

  • יכול להיות שהמקלדת הווירטואלית לשדות החיפוש והעריכה תהיה מוצגת רק באופן חלקי בשדה הראייה
  • אי אפשר להעביר רכיבים בכיוון z (פנימה והחוצה מהמסך) באמצעות העכבר והמקלדת

  • חוסר יציבות בקלט האודיו של המיקרופון המארח ב-AVD עלול לגרום להפעלות מחדש ולקריסות של AVD.

  • לפעמים יש רעשי רקע או שהצליל מטושטש.

  • כשהמצלמה מועברת מחוץ לסלון הווירטואלי, נראות שגיאות עיבוד.

  • ההגדרות של Windows מציגות צבעים כהים יותר מהרגיל.

  • האודיו לא פועל יותר אחרי שמשאירים את הסימולטור במצב חוסר פעילות ונועלים את המסך ב-macOS. (הפעלה מחדש של הסימולטור תשחזר אותו).

  • חיבור הרשת מתנתק כשהמחשב המארח עובר לרשת Wi-Fi אחרת.

  • כש-Caps Lock מופעל, עדיין אפשר להקליד אותיות קטנות.

  • הגלילה באמצעות משטח המגע ב-Mac לא חלקה.

  • יכול להיות שגלילה באמצעות קליק וגרירה בחלק מרכיבי ממשק המשתמש לא תפעל מטעמי עיצוב. אם לא, משתמשים בגלגל העכבר כדי לגלול במקום זאת.

  • טקסט מטושטש, ממשק משתמש ופגמים אחרים ב-Chrome בהגדרות מסוימות של מערכת Windows. פתרון עקיף סביר: הפעלת WHP.

אמולטור – סימולציה של מטוסים ועוגנים:

  • לפעמים נקודות העגינה לא מופיעות מחדש באותו מיקום
  • לא ניתן לעגן חלונות נעים לקירות או לתקרה
  • המישורים המדומים לא תואמים לפריסת החדר התלת-ממדי במצב העברה (passthrough)
  • יש אזורים מוגבלים בסך הכול להצמדת אובייקטים בחדר הווירטואלי
  • ארטיפקט קטן גלוי בתצוגת העברה ב-Windows
  • במקרים מסוימים, הצבת עוגנים עלולה לגרום לקריסה של האפליקציה
  • קווים שחורים עשויים להופיע מעל האפליקציות כשמזיזים אותן קרוב לחלק התחתון של המסך ב-Windows

אמולטור – אחרים:

  • הסימולטור מופעל רק במצב 'עצמאי'. עדיין אין תמיכה במצב 'מוטמע' (ממשק משתמש מוטמע).
  • כניסה לחשבונות במהלך ההפעלה של הסימולטור ב-Windows עלולה לגרום להקפאה של הסימולטור
  • יכול להיות שתוכן ממשק המשתמש של חלונות ייעלם אחרי שינוי הגודל (פתרון עקיף: לחיצה על הלחצן 'דף הבית')
  • באפליקציית JXRCore ActivityPanelTest, החלונית המשנית לא מוצגת בהתחלה
  • ייתכן שפריטים מההגדרות המהירות ייעלמו מהגדרות המערכת אחרי פרק זמן ארוך.
  • יכול להיות שממשק המשתמש של המהדר יופיע מחוץ לאזור המסך בהתחלה. אם כן, משנים מעט את גודל החלון של המהדר וזה אמור לחזור למצב תקין.
  • יכול להיות שהמכונה הווירטואלית לא תופעל כשמשתמשים ב-Chrome Remote Desktop ב-Windows
  • עדיין אין תמיכה ב-Open XR במהדורת האמולטור, ויכול להיות שאפליקציות Open XR יגרמו לקריסה של האמולטור
  • כשמנסים לשלוח דוחות באגים דרך ההגדרות המורחבות של Android Studio ב-Windows, ייתכנו כשלים נדירים
  • הסמל 'חזרה אחורה' לא מוצג בצורה תקינה באפליקציית ההגדרות עד שמעבירים את הסמן לידו ב-Mac
  • במקרים מסוימים, יכול להיות שיהיו שגיאות ב-build כשמשתמשים במודול 'פרופיל בסיס' כחלק מפרויקט של תבנית XR
  • נכון לעכשיו, התכונה 'XR Talkback' משולבת במהדורת הסימולטור רק באופן חלקי

אפליקציית Scene Viewer:

  • העברת רכיבים בתוך 'תצוגת סצנות' עלולה לגרום לקריסה שלה. כדי לעקוף את הבעיה, פשוט צריך להזיז את מיקום הראש מעט מהמיקום הראשוני שלו (למשל, באמצעות תנועת פנורמה, תנועת טרולי, WASD וכו') לפני שמנסים להזיז את הרכיב.
  • התכונה 'בגודל אמיתי ביחס של 1:1' לא תפעל כראוי אם הגודל האמיתי של המודל התלת-ממדי נמוך או גבוה מהגבולות המינימלי והמקסימלי של קנה המידה (הגבולות האלה מוגדרים כרגע ל-20 ס"מ ול-70 מ', בהתאמה).
  • המודל התלת-ממדי יכול לקפוץ בפריים הראשון אחרי הטעינה

35.2.10 (1 באוקטובר 2024)

  • נוספו מכשירי Pixel AVD חדשים, כולל Pixel 9, ‏ Pixel 9 Pro, ‏ Pixel 9 Pro XL ו-Pixel 9 Pro Fold
  • נוספה קובץ אימג' חדש של מערכת ל-Tablet עבור Vanilla Ice Cream‏ (API 35)

35.1.20 (29 באוגוסט 2024)

  • נוספה תמיכה ב-AVD של Pixel 8a
  • תיקוני באגים שונים במכשירים מתקפלים
  • עדכון של Qt ותיקונים לקריסות ולתקיעויות שקשורות ל-Qt
  • [תיקון באג] תיקון לקריסות ולתקיעויות ב-Windows עם אפליקציות שמשתמשות ב-Vulkan

34.2.16 (9 ביולי 2024)

  • [תיקון באג] ממשק המשתמש קופא ב-Pixel Fold במהלך קיפול או פתיחה
  • [תיקון באג] תצוגה שגויה של גרסת Android בתור Android Vanilla Ice Cream Preview במקום API 35 ב-Mac M1.
  • [תיקון באג] בעיה מס' 296162661: הפונקציה HasSystemFeature‏ FEATURE_SENSOR_HINGE_ANGLE מחזירה את הערך true במהדמ טאבלט Pixel C

34.2.15 (31 במאי 2024)

  • תיקונים שונים של קריסות שקשורות למצב swangle ולניקוי מפרסמים

34.2.14 (20 במאי 2024)

נבדק עם Android Studio Jellyfish Stable Patch 1.

  • [תיקון באג] לפעמים תמונת המצב נתקעת באמולטור מוטמע
  • [תיקון באג] הלחצנים 'לא' ו 'ביטול' לא פועלים כראוי ב-snapshot
  • [תיקון באג] לחצני לוח הכיוונים לא פועלים
  • [תיקון באג] תוקנה הבעיה ב-Windows שמונעת את הפעלת הסימולטור בתנאים מסוימים כשמשתמשים במצבי GPU עם ANGLE, ומציגה ביומן את הודעת השגיאה 'Failed to initialize GL emulation' (נכשלה ההפעלה של GL emulation). שימו לב: הפעלת הסימולטור באמצעות שורת הפקודה עם האפשרות -gpu swangle_indirect עדיין עשויה לגרום לשגיאה הזו בגרסה הזו. אם עדיין רוצים להפעיל את הסימולטור באמצעות שורת פקודה ב-Windows עם עיבוד גרפי בתוכנה בגרסה הזו, צריך להשתמש ב--gpu swiftshader_indirect
  • [תיקון באג] מקש הקיצור למיקום במקלדת טוען מפה שלא ניתן להשתמש בה
  • [תיקון באג] כשמגדירים מיקום, תיבת הדו-שיח 'שמירה של המסלול' חסרה

34.2.13 (30 באפריל 2024)

נבדק ב-Android Studio Jellyfish Stable.

  • עדכון ל-Qt 6.5.3
  • תאימות לעדכוני Google Maps API שנעשה בהם שימוש בתכונות המיקום באמצעי הבקרה המורחבים של המהדר, שיחולו בסוף מאי.
  • תיקוני קריסות עם השפעה משמעותית
  • תיקונים שונים ל-Pixel AVDs
  • עדכון ספריית הגרפיקה שמשמש לעיבוד גרפי בתוכנה
  • [תיקון באג]בעיה 225541819 הפעלת Chrome גורמת לקריסה של אמולטור ב-x86_64
  • [תיקון באג]בעיה 314614435 הניתוח של המתג -http-proxy שגוי

34.1.20 (1 באפריל 2024)

נבדק ב-Android Studio Iguana Stable.

  • [תיקון באג] בעיה מס' 314614435: תוקנה בעיה שבה מתבצע ניתוח שגוי של המתג -http-proxy

34.1.19 (7 במרץ 2024)

נבדק ב-Android Studio Iguana Stable.

  • [תיקון באג] בעיה מס' 312677259: תוקנה בעיה של קיפאון המסך במהלך שימוש במהדורת אמולטור מוטמעת אחרי שינוי גודל החלון.

34.1.18 (29 בפברואר 2024)

נבדק ב-Android Studio Iguana Stable.

  • נוספו מכשירים לאמולטור, כולל:
    • Pixel Fold
    • Pixel Tablet
    • Pixel 8
    • Pixel 8 Pro
    • Pixel 7a
  • בדיקת שילוב של gRPC: נקודות קצה של gRPC זמינות עכשיו לבדיקות עם מכשירי מדידה שפועלות בתוך הסימולטור, וכך מאפשרות בדיקה של תרחישים מציאותיים. התכונה הזו מאפשרת למפתחים לקיים אינטראקציה בטוחה עם נקודת הקצה של gRPC שמתארח במהדורת Android Emulator, מתוך בדיקות של מכשירי Android.
  • תיקוני באגים שונים
    • תיקון באג: שיפורים בנוחות השימוש במכשירים מתקפלים
    • תיקון באג: שינוי המיקום של המהדמ ת אחרי סיבוב
    • תיקוני קריסות

33.1.24 (28 בדצמבר 2023)

נבדק ב-Android Studio Hedgehog Stable וב-Iguana Beta 1.

  • תוקנה בעיה במצלמת האינטרנט של המהדמנת שלא מאפשרת להקליט מסך בפורמט mp4.
  • תיקון קריסה של אמולטור ב-Pixel Fold AVD כשהמכשיר פתוח במהלך הקלטת מסך.
  • תוקנה בעיה שבה ב-Pixel Fold מוצגת עור טלפון אחר עם מקלדת מנותקת, והטלפון לא ניתן לשימוש (הבעיה תוקנה ב-Windows, ב-Mac Intel וב-Linux)
  • תיקון באג במראה של חיישנים וירטואליים במצב נייח (תוקן ב-Windows,‏ Mac Intel ו-Linux)
  • תיקנו מספר קריסות, במיוחד במהלך סגירת המהדמ.

33.1.23 (30 בנובמבר 2023)

נבדק ב-Android Studio Giraffe Patch 4 וב-Hedgehog Stable.

  • הטמעה חדשה של מכשיר מתקפל כדי לדמות טוב יותר את מכשיר Pixel Fold, עובדת עם API 34 העדכני ביותר
  • שדרוג לקצה העורפי של הגרפיקה: הטמענו את פרוטוקול gfxstream לקצה העורפי של הגרפיקה. השיפור הזה משפר את הביצועים הכוללים של הגרפיקה ואת היציבות של המערכת. בנוסף, אנחנו משיקים תמיכה ב-Vulkan 1.3 החל מגרסה 34 של קובץ האימג' של המערכת עם API
  • בקשת תכונה: אפשרות להשבית את התנועה 'צירוף אצבעות כדי להגדיל' או להקצות מחדש את מקש הקיצור שלה
  • [תיקון באג] בעיה מס' 302562962 תיקון קריסה של מצלמת האינטרנט במהלך שימוש ב-MacOS sonoma
  • [תיקון באג] בעיה מס' 293503871 תוקנה בעיה שבה ההגדרה 'מיקרופון' לא נשמרת כשמפעילים מחדש את המהדמ.
  • [תיקון באג] בעיה מס' 270386314 תוקנה שגיאה באנימציה שבה סרגל הצד נשאר פתוח אחרי שמצמצמים את מסך AVD
  • [תיקון באג] בעיה מס' 154896775 תיקון הכלי לשליחת באגים

32.1.15 (29 באוגוסט 2023)

נבדק ב-Android Studio Giraffe Patch 1 וב-Hedgehog Canary 16.

  • עמידה בדרישות החומרה של GAS לחיישנים במהדמ של AAE
  • [תיקון באג] בעיה מס' 266201208 לא ניתן לשלוח הודעת SMS בעברית ב-API 33
  • [תיקון באג] בעיה מס' 257097404 ב-Emulator לא מוצג השעה הנכונה אחרי שהמארח מתעורר ב-API 29 ו-30
  • [תיקון באג] בעיה מס' 228201899 אי אפשר לראות את מפות Google באמצעי הבקרה המורחבים של Android Emulator

32.1.14 (27 ביוני 2023)

נבדק ב-Android Studio Hedgehog Canary 8,‏ Giraffe Beta 5 ו-Flamingo Stable.

  • תיקון עיוותים וכיוונים של מצלמת אמולטור.
  • [תיקון באג] בעיה מס' 257097404 "השעה במהדורת האמולטור לא מוצגת בצורה נכונה אחרי שהמארח מתעורר". עדיין אפשר לשחזר את הבאג הזה ב-API 29 וב-API 30.
  • [תיקון באג] בעיה מס' 243456582 "יכול להיות שגרסאות Android אחרי API 30 לא יתחילו לפעול כמו שצריך במהדמרים במכונות Mac M1"

32.1.13 (22 במאי 2023)

נבדק ב-Android Studio Hedgehog Canary 2,‏ Giraffe Beta 1 ו-Flamingo Stable.

32.1.12 (21 במרץ 2023)

נבדק ב-Android Studio Giraffe Canary 10,‏ Flamingo RC ו-Electric Eel Patch 2.

  • [תיקון באג] בעיה מס' 267647323 הרשת לא פועלת באמולטור שהופעל מ-Android Studio
  • [תיקון באג] בעיה מס' 268498686 המסך של המהדר מהבהב
  • [תיקון באג] בעיה מס' 270034824 ביצועי המהדמ ת נפגמו אחרי העדכון לגרסה 33.1.1
  • [תיקון באג] בעיה מס' 225541819 הפעלת Chrome גורמת לקריסה של אמולטור ב-x86_64
  • [תיקון באג] בעיה מס' 257097404 בזמן שהמארח מתעורר, השעון במהדורת האמולטור לא מציג את השעה הנכונה
  • הוספת דיווח על קריסות במכשירי Apple עם מעבדי M1

32.1.11 (8 בפברואר 2023)

נבדק ב-Android Studio Giraffe Canary 2,‏ Flamingo Beta 1 ו-Electric Eel Patch 1.

  • אופטימיזציה של מהירות הרשת
  • תמיכה בעכבר באמולטור המוטמע
  • שיפורים ב-Virtio-snd
  • השבתת השימוש בקישור סימבולי בזמן ביטול האריזה של Android Emulator במהלך ההתקנה
  • תיקון קריסה ב-emulator-check

31.3.14 (13 בדצמבר 2022)

נבדק ב-Android Studio Dolphin,‏ Electric Eel RC1 ו-Flamingo Canary 9.

  • [תיקון באג] תיקון קריסות של AVD שמתרחשות בזמן הכניסה ל-Play Store.

31.3.13 (27 באוקטובר 2022)

נבדק ב-Android Studio Dolphin,‏ Electric Eel Beta 2 ו-Flamingo Canary 5.

31.3.12 (10 באוקטובר 2022)

נבדק ב-Android Studio Dolphin וב-Electric Eel Beta 1.

העדכון הזה כולל את השיפורים והתיקונים הבאים:

  • [תיקון באג] בעיה מס' 247843000: שגיאה בטיפול בנתיב יחסי של AVD
  • הגדלת נפח האחסון בדיסק לגרסאות API 24 ואילך

31.3.11 (23 בספטמבר 2022)

נבדק ב-Android Studio Dolphin וב-Electric Eel Canary 10.

העדכון הזה כולל את השיפורים והתיקונים הבאים:

  • [תיקון באג] קריסה של AVD מוטמע בחלון של אמצעי הבקרה המורחבים
  • [תיקון באג] בעיה מס' 183139207: בעיות אודיו שקשורות להפעלת המיקרופון על ידי המהדר
  • [תיקון באג] בעיה מס' 229764024: באג של מגע דביק ב-AVD שגורם לבעיות בהתנהגות של ממשק המשתמש
  • [תיקון באג] שגיאה בהפעלת API 33 AVD ב-Mac M1.
  • [תיקון באג] בעיה מס' 243053479: מהירות רשת איטית אחרי עדכון המהדר
  • [תיקון באג] בעיה מס' 244617627: המיקום במפות Google לא פועל ב-Windows וב-Linux
  • [תיקון באג] בעיה מס' 232971796: הלחצן 'התקשר למכשיר' לא פועל בדף 'אמצעי בקרה מורחבים' > 'טלפון'
  • עדכון של Android Emulator ל-minigbm
  • העברת סקריפטים ל-build ל-Python3

31.3.10 (18 באוגוסט 2022)

נבדק ב-Android Studio Dolphin Beta 5 וב-Electric Eel Canary 9.

עכשיו אפשר להוריד את הסימולטור בנפרד. אם נתקלת בבעיות או בקריסות בגרסה היציבה האחרונה, אפשר לדווח על באג ולשקול להוריד גרסה קודמת שפועלת מארכיוני ההורדות של המהדמנים.

העדכון הזה כולל את השיפורים והתיקונים הבאים:

  • תמיכה טובה יותר בנתיבים של Unicode ב-Windows
  • טיפול משופר בהשבתה של אמולטור, כדי שאפשר יהיה להפעיל מחדש את אותו AVD.
  • עיצוב מעודכן של AVD מתקפל והגדרות ברירת מחדל
  • לחצנים מעודכנים של אמולטור Wear
  • שיפורים בסטרימינג של אודיו ב-gRPC
  • נוספה פקודת מסוף של אמולטור שניתן לשנות את הגודל שלה
  • תיקון ב-Chrome ל-API 31
  • [תיקון באג] אימות חשבון Google נכשל בגרסה GmsCore v21.42.18

31.2.10 (20 באפריל 2022)

נבדק ב-Android Studio Dolphin Canary 8 וב-Chipmunk RC 1.

העדכון הזה כולל את השיפורים והתיקונים הבאים:

  • הוספת כלי לטעינה של פונקציות Vulkan עם חלופות
  • [תיקון באג] תיקון שגיאה ב-build של gcc8

31.2.9 (23 במרץ 2022)

נבדק ב-Android Studio Dolphin Canary 7.

העדכון הזה כולל את התיקון הבא:

  • [תיקון באג] התעלמות מלחץ זיכרון כששומרים קובץ snapshot ב-M1

31.2.8 (7 בפברואר 2022)

נבדק ב-Android Studio Bumblebee Patch 1 וב-Chipmunk Canary 6.

העדכון הזה כולל את השיפורים והתיקונים הבאים:

  • [תיקון באג] לא ניתן להיכנס לאפליקציות
  • [תיקון באג] בעיה מס' 215368358: הפקודה 'adb reboot' בפלטפורמת Intel תגרום לקריסה של avd עם 'vcpu shutdown request'

31.2.7 (1 בפברואר 2022)

נבדק ב-Android Studio Bumblebee Patch 1 וב-Chipmunk Canary 6.

העדכון הזה כולל את התיקון הבא:

  • [תיקון באג] שגיאה של תקיעת אמולטור במכונות M1.

31.2.6 (20 בינואר 2022)

נבדק ב-Android Studio Arctic Fox,‏ Bumblebee Beta 4 ו-Chipmunk Canary 6.

העדכון הזה כולל את השיפורים והתיקונים הבאים:

  • נוספו לחצני Wear לאמולטור Wear OS.
  • כל מאפייני הרכב ניתנים עכשיו לעריכה בכרטיסייה VHAL.
  • [תיקון באג] אימות חשבון Google נכשל בגרסה 21.42.18 של GmsCore.
  • [תיקון באג] Netshaper לא עבד טוב עם VirtioWifi.
  • [תיקון באג] הפקודה של עכבר האירוע במסוף לא פעלה.
  • הוספנו בדיקת KVM ליצירת AVD מקומי.

31.1.3 (18 בינואר 2022)

העדכון הזה כולל את השיפורים והתיקונים הבאים:

  • הפעלת יציאות מסוף ל-Fuchsia.
  • כשמשנים את הגודל של חלון שמופיע בכמה מסכים, המערכת מתעלמת מהכיוון.
  • Wi-Fi: נוספה תמיכה בסינון חבילות unicast על סמך כתובת ה-MAC של MAT.
  • Wi-Fi: תוקנה קריסה כש-vmnet נמצא בשימוש.

30.9.5 (15 בדצמבר 2021)

העדכון הזה כולל את השיפורים והתיקונים הבאים:

  • נוספה אפשרות לשנות בקלות את הגודל של החלון לגודל של מחשב או טאבלט.
  • הוספנו תמיכה בקלט של מגע רב-משתמש ממכשירי מארח תואמים.
  • VirtioWifi: נוספה תמיכה ברשתות tap.
  • הפעלת חוגה להזנת נתונים בקובצי אימג' של מערכת Wear.
  • תוקנה הבעיה בהגדרת האודיו ב-gRPC.
  • עדכנו את ההפעלה של SensorReplay Emulator כדי לתמוך בחיישני Android רגילים.
  • מחברים את הסימולטור לציוד היקפי ולמכשירים באמצעות USB עם העברה (pass-through) של USB.

30.4.5 (23 בפברואר 2021)

העדכון הזה כולל את השיפורים והתיקונים הבאים:

  • macOS: תוקנו בעיות בעיוות של קלט האודיו.
  • נוספה תמיכה ב-virtio-vsock במרחב המשתמש.
  • קובצי אימג' עתידיים של מערכות ישתמשו ב-virtio-console להודעות של logcat ושל הליבה.
  • הגברת מהירות הרינדור של Vulkan.
  • נוספה תמיכה בניפוי באגים בתמונות מצב במקרה של כשל בבדיקה.
  • virtio-gpu: הגדרות מעודכנות שתומכות ברשימה המלאה של משאבי blob העדכניים.
  • הוספנו תמיכה בתמונות מצב (snapshots) להעברות גרפיקה מסוג 'asg'.
  • macOS: הוספנו תמיכה ב-build מול macOS SDK מגרסה 11.1 ואילך.
  • KVMclock מופעל כברירת מחדל בתמונות מערכת חדשות יותר.
  • נוספה תמיכה בחיישן דופק למהירי Wear.
  • הוסרה הקצה העורפי של libportability Vulkan.
  • נוספה תמיכה בתכונות נוספות בסימולטור המודם.

30.0.26 (16 באוגוסט 2020)

העדכון הזה כולל כמה תכונות חדשות, שיפורים בתכונות קיימות ותיקוני באגים.

תמיכה במכשירים מתקפלים עם חיישן ציר וירטואלי ותצוגה תלת-ממדית

  • הוספנו תמיכה בחיישני צירים למכשירים מתקפלים. לשם כך, נדרשת קובץ אימג' עתידי של מערכת Android 11 והגדרת AVD. תצוגה מתקפלת תלת-ממדית ופרמטרים של צירים משולבים עכשיו בהגדרות הקבועות מראש הקיימות למכשירים מתקפלים. אפשר להשתמש בקוד הבא, למשל, בקובץ config.ini של AVD מתקפל בגודל 7.3:

    hw.sensor.hinge = yes
    hw.sensor.hinge.count = 1
    hw.sensor.hinge.type = 1
    hw.sensor.hinge.ranges = 180-360
    hw.sensor.hinge.defaults = 180
    hw.sensor.hinge.areas = 54.7-0
    hw.sensor.posture_list=4, 3
    hw.sensor.hinge_angles_posture_definitions=210-360, 180-210
    hw.sensor.hinge.fold_to_displayRegion.0.1_at_posture=4
    
  • עכשיו יש גם פרמטר של סוג משנה למכשירים מתקפלים. נכס config.ini hw.sensor.hinge.sub_type = hinge/fold זמין עכשיו. למידע נוסף, אפשר לעיין בפוסט בבלוג פיתוח ל-Android 11 באמצעות Android Emulator.

  • חיישן הציר מופעל עכשיו כברירת מחדל.

  • אם מוגדר מכשיר מתקפל, מעכשיו האמולטור שולח ל-Guest עדכונים של חיישני זווית הציר ושינויים בתנוחה. במכשירים מתקפלים קיימים, החיישן של ציר המכשיר יעדכן את הזווית והתנוחה שלו כשלוחצים על לחצני הקיפול או הפתיחה בסרגל הכלים.

אמולטור למארחים מסוג ARM64

  • קוד המקור של אמולטור Linux תומך עכשיו בתכנות ל-x86_64 ומארחים מסוג arm64, ומאפשר להריץ קובצי אימג' של מערכת arm64 באמצעות וירטואליזציה של KVM. נכון לעכשיו, יש תמיכה רק ב--gpu swiftshader_indirect (עיבוד גרפי של Swiftshader arm64 למארח), אבל אפשר גם להשתמש בקבוצה תואמת של ספריות libEGL/libGLESv2 של GPU המארח. לשם כך, מחליפים את lib64/gles_swiftshader בספריות האלה ומפעילים מחדש עם -gpu swiftshader_indirect. יכול להיות גם שעותקי snapshot לא יפעלו (מוסיפים את -no-snapshot לשורת הפקודה). הוראות:

    mkdir emu
    cd emu
    repo init -u https://android.googlesource.com/platform/manifest -b emu-master-dev --depth=1
    repo sync -qcj 12
    cd external/qemu
    pip install absl-py
    pip install urlfetch
    sudo apt-get install crossbuild-essential-arm64
    python android/build/python/cmake.py --noqtwebengine --noshowprefixforinfo --target linux_aarch64
    
  • אנחנו עובדים על תמיכה ב-Apple Silicon.

תמיכה ב-virtio-gpu

  • נוספה תמיכה בצד המארח למשאבים עתידיים של blob עקבי למארח virtio-gpu.
  • בגלל אופן הפעולה של עיבוד ב-emulator, אנחנו מעבדים עכשיו את virtio-gpu virtqueue בשרשור vcpu (כי העיבוד מועבר בכל מקרה לשרשור אחר). עיבוד virtio-gpu יופעל בגרסה עתידית של קובץ האימג' של המערכת ושל ה-emulator.
  • בתמונה עתידית של מערכת, הסימולטור יוכל להריץ את כל הגרפיקה באמצעות סטאק שמבוסס על virtio-gpu.

תכונות חדשות ושיפורים נוספים

  • עכשיו אפשר להשתמש ב-USB passthrough ב-Windows באמצעות -qemu -usb -device usb-host,vendorid=<usb-vendor-id>,productid=<usb-product-id>. (התכונה הזו אמורה לפעול גם ב-Linux וב-macOS)
  • ספריות WebRTC עודכנו לגרסה M83.
  • מעכשיו, אפשר להשתמש במהדורת ה-emulator כדי להפעיל סטרימינג של אודיו במאגרי תגים באמצעות WebRTC.
  • נקודת הקצה של צינור darwinn הוסרה.
  • עכשיו אפשר להשתמש ב-CUDA VPx decode לסרטונים, אם הוא זמין בחומרה, דרך משתנה הסביבה ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1.
  • ב-macOS, ה-SSE 4.1 ו-4.2 זמינים עכשיו מתוך האורח ב-Android.
  • ב-macOS, התכונה INVTSC מופעלת עכשיו כברירת מחדל. כך אפשר לשפר את הדיוק של מדידת הזמן מצד האורח.
  • עכשיו אנחנו עוקבים אחרי חלונית הבקרה המורחבת שהמשתמש בחר במדדים.
  • מעכשיו, במהלך הדמיה של Linux נעשה שימוש בשעון וירטואלי של KVM כשגרסת הליבה של האורח היא 5.4 ואילך (קובצי אימג' של מערכת R ואילך).
  • מעכשיו, ב-Emulator נעשה שימוש ב-LZ4 כדי לבצע דחיסה לאחור של ליבות אורח, וכך הוא תואם לצינור עיבוד הנתונים המודרני של הליבה.
  • נוספו פקודות מסוף כדי לקבל את ספריית ה-AVD של המהדר, את נתיב קובץ הגילוי בתרחיש לדוגמה המוטמע ב-Studio ואת הנתיב לתמונות המצב:

    adb emu avd path # Obtains path to AVD directory
    adb emu avd discoverypath # Obtains path to discovery file
    adb emu avd snapshotspath # Obtains path to snapshots folder
    adb emu avd snapshotpath <snapshotName> # Obtains path to the folder that stores the snapshot for the snapshot with name <snapshotName>
    
  • כדי שיהיה קל יותר לחסוך מקום במסך האנכי, הוספנו אפשרות להסתיר את מסגרת המכשיר של ה-AVD הנוכחי בקטע אמצעי בקרה מורחבים > הגדרות. כדי להסתיר באופן גלובלי את מסגרות המכשירים בכל מכשירי ה-AVD, הוספנו את דגל התכונה NoDeviceFrame. אפשר להפעיל אותו על ידי הפעלת הסימולטור משורת הפקודה עם המסגרת -feature NoDevice, או כדי לנעול אותו, מוסיפים את NoDeviceFrame = on אל ~/.android/advancedFeatures.ini (צריך ליצור את הקובץ הזה אם הוא עדיין לא קיים).

  • נוספה תפריט נפתח בדף הסלולר להפעלה ולהשבתה של תמיכה במדידה. הפעולה הזו לא רלוונטית לתמונות מערכת ישנות שלא תומכות במתג למדידת השימוש ב-5G.

    • הוספנו גם פקודה במסוף לאותו מטרה: gsm meter on|off
  • שדרוג של כלי הפיתוח או ה-build ל-C++17.

תיקונים: אמולטור מוטמע

  • עכשיו הלוח אמורה לפעול.
  • תוקנה בעיה שבה תווים גדולים נשלחו בתור תווים קטנים במהלך ההרצה במהדמ.
  • תוקנה בעיה בחיוב של אסימון מסוף מנתיב Unicode ב-Windows.
  • תוקנה הודעת השגיאה SO_REUSEPORT ב-Linux.
  • תוקנה בעיה של פגיעה ב-snapshot כששולחים פקודות snapshot דרך gRPC, וגם כשמקישים על לחצן השמירה של ה-snapshot במהדורת Android Studio המוטמעת של המהדמ.
  • כשמשתמשים במהדמ של Linux שמוטמע ב-Studio, גילינו שאם עושים זאת דרך Chrome Remote Desktop, יש באג שבו XDG_RUNTIME_DIR לא מוגדר, ויכול להיות שהוא יגרום לכך שהמהדמ המוטמע לא יופיע כי קובצי הגילוי של המהדמ ממוקמים ב-XDG_RUNTIME_DIR. אפשר לבדוק את הסטטוס של הבעיה המתאימה במעקב אחר הבעיות ב-Chrome.

    כפתרון עקיף, מעכשיו הסימולטור חוזר להשתמש בקבצי גילוי בתיקייה שעשויה להיות שונה, שמבוססת על UID של המשתמש: /run/user/&lt;uid>.

  • אמולטור מוטמע: במכשירים עם פינות מעוגלות או חריץ, עכשיו אפשר לראות שינוי בפריסה כדי לפנות מקום לפינות ולחריץ. לשם כך צריך להפעיל מחדש את האמולטורים האלה.

  • נקודת הקצה של gRPC תומכת עכשיו בשליחת הודעות SMS למכשיר.

תיקונים כלליים

  • זיהינו בעיות תאימות בהפעלת אמולטור Windows כש-Riot Vanguard פעיל. מעכשיו, אמולטור Windows מזהה את תוכנת האנטי-צ'יט Vanguard, ומופיעה הודעת אזהרה אם Vanguard מזוהה.
  • תוקנה שגיאה FD_SETSIZE ב-Windows. עכשיו אנחנו משתמשים ב-WSAEventSelect() במקום ב-select() כדי ליצור חיבורים לא חוסמים לשרתים של לולאה חוזרת (loopback).
  • הוספנו תמיכה בתכונה F16C CPUID למהדר של Linux, עם תיקונים לבעיות שפועלות באפליקציות מסוימות עם ARM64 דרך תרגום NDK. תמיכה ב-macOS/Windows בעבודה.
  • תוקנה ההפעלה של מסלולי gpx/kml כך שתתבסס על חותמות זמן.
  • תוקן סמל הקפיצה בזמן ההפעלה ב-MacOs.
  • אם הערכים של hw.audioInput=no ו-hw.audioOutput=no ב-config.ini הם 0, אודיו האמולטור מושבת עכשיו כראוי.
  • תוקנה בעיה שבה אם חלון הסימולטור הופחת למינימום בזמן שחלון הפקדים המורחבים היה פתוח אבל לא פעיל, חלון הפקדים המורחבים המשיך להופיע כשמשנים את הגודל של חלון הסימולטור. נבטל את ההתנהגות הזו (המקרה שבו חלון אמצעי הבקרה המורחבים פעיל) לגמרי בעדכון עתידי.
  • תוקן באג לא יציב שבו ה-Wi-Fi לא מחובר כשהאמולטור מופעל.
  • תוקנה בעיה של תקיעה ביציאה כשהמכונה הווירטואלית מנפיקה פקודות מעטפת עם זמן קצוב ארוך או לא מוגדר.
  • עדכנו את pc-bios בתיקונים כדי לתמוך טוב יותר בתמונות גדולות שמועברות אל -initrd. ב-BIOS הקודם הייתה שיטה לא יעילה במיוחד.
  • תוקנה קריסה במהלך סיום כשמשתמשים באפשרות -wifi-server-port.
  • הסימולטור מדפיס עכשיו אזהרה אם מועברות ל--prop אפשרויות שלא נתמכות (רק מאפייני qemu.* נתמכים).
  • כשמפתחים את הסימולטור ב-Windows, יש פחות סיכוי לכשלים לא עקביים בכתיבת לקובצים. מידע נוסף זמין בהוראות ליצירת גרסאות build של Windows.
  • השבתנו את לחצן הזום במכשירי AVD מתקפלים, כי הוא גרם לבעיות.
  • מעכשיו, ב-Emulator מדווחים בצורה נכונה על זמן האתחול שמגיע מהפעלה מחדש של המכשיר.
  • Linux: במקרה של הרשאות KVM לא מספיקות, מעכשיו האדמולטור מדפיס הוראות לניפוי באגים מהר יותר.
  • תוקנה בעיה שבה לא ניתן היה להפעיל באימולטור קובצי אימג' של מערכת מהזמן האחרון ללא האצה.
  • תוקן נזק בזיכרון או קריסה בזמן ההפעלה באמצעות גלאי שהשלים את תהליך האתחול.
  • תוקן דליפת זיכרון במהלך סשנים ארוכים של הקלטת מסך.
  • סמלי המהדמנים עודכנו כך שישקפו את המיתוג של Studio 4.1.
  • נוספה תמיכה משופרת בזיהוי סשנים מרוחקים ב-Windows.

תיקונים: פענוח גרפי ופענוח וידאו

  • תוקנה בעיה שבה המשחק Asphalt 9 החדש עבר רינדור עם מסך שחור.
  • הוסר ספאם בנושא שטיפה של מאגר מפותח באמצעות NULL.
  • תוקנה בעיה של תנאי מרוץ (race condition) בזמן הריסת המצב של Vulkan כשאפליקציית Vulkan של האורח יצאה.
  • תוכנות ההצללה (shader) של Vulkan ASTC/ETC2 להדמיה מוטמעות עכשיו בספרייה libOpenglRender. הקריאה הזו תהיה אמינה יותר מקריאה ממערכת הקבצים.
  • תוקנה בעיה ב-Vulkan שבה, אם מריצים עם מכונה של Vulkan 1.0 במארח, vkGetImageMemoryRequirements2KHR מנקה באופן שגוי את השדה pNext של המבנה VkMemoryRequirements2 שהוחזר.
  • תוקנה דליפת זיכרון במעבד הגרפיקה של Vulkan.
  • תוקנה נסיגה (regression) שהתרחשה לאחרונה, שבה לא ניתן היה לקמפל שגיאות של GLSL ES 1.00 עם שמות משתנים כמו isampler2D.
  • מתרגם ה-shader של ANGLE עודכן בתיקונים שונים לטיפול בכשלים אפשריים בזמן הידור של שגיאות ב-Linux.
  • עכשיו אנחנו גורמים לקריסה של הסימולטור אם לא ניתן לקמפל את שפת השיזוף הבסיסית של blit ב-framebuffer, כדי לעקוב אחרי התופעה.
  • עדכון של מתרגם שידורי ה-shader של ANGLE כדי לעמוד בקצב של ANGLE במקור. התיקון הזה פתר בעיה של פגיעה בזיכרון במהלך תרגום וקיפול של שגיאות (constant-folding) של שגיאות OpenGL ES שמשתמשות במטריצות לא ריבועיות. מתרגם השיזרים הוא עכשיו ספרייה משותפת נפרדת, libshadertranslator.dll.
  • תוקנה בעיה בהפעלה הראשונית של Vulkan במנהלי GPU מסוימים, שבה לא נמצאו פונקציות מסוימות של מכשיר 1.1.
  • Vulkan: חזרנו להשתמש במטען שנוצר מראש, כי העדפת מטען Vulkan של המערכת גרמה לבעיות בהגדרות מסוימות. נמצא פתרון טוב יותר.
  • תוקנה בעיה בשימוש בזיכרון חיצוני של Vulkan, שבה יכול להיות שיובאו לארח אינדקסים לא תואמים של סוגי זיכרון.
  • תוקנה בעיה בהדמיה של GL_ALIASED_POINT_SIZE_RANGE שבה ה-enum לא נתמך במארח.
  • תוקנה בעיה שבה בחלק מ-GPU של המארח לא ניתן היה לקמפל שגיאות של Skia עקב שגיאות שקשורות ל-GL_EXT_shader_framebuffer_fetch.
  • מאחר שהעותק שלנו של המרת הגרפיקה (renderer) D3D9 ANGLE הוסר לפני כמה גרסאות, אנחנו מעבירים עכשיו באופן אוטומטי משתמשים שהשתמשו במרת הגרפיקה הזה ל-d3d11 ANGLE, אם הוא נבחר בהעדפות של ממשק המשתמש.
  • נוספו פרטי ניפוי באגים להפעלה של WGL ב-Windows כדי לאפשר מעקב אחר כשלים.
  • כשהערך הוא hw.gltransport=virtio-gpu-pipe, הביצועים משתפרים כי לא מתבצע ספין במארח בהעברות מהמארח לאורחים.
  • נוספו עוד רשומות ביומן ניפוי הבאגים למקרה שבו הדמיית OpenGLES נכשלת בהפעלה.
  • תוקנה בעיה שבה סרטונים ב-YouTube רעדו או לא הופיעו בטעינה של קובץ snapshot.
  • בינתיים חזרנו לפענוח תוכנה של libvpx כי גילינו בעיות בפענוח החומרה של libvpx ב-CUDA. אם יש לכם הטמעה נתמכת של פענוח חומרה ב-CUDA בצד המארח, תוכלו להפעיל מחדש את פענוח החומרה של libvpx באמצעות משתנה הסביבה ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1.

30.0.10 (30 באפריל 2020)

העדכון הזה כולל תמיכה בהפעלת הסימולטור ישירות ב-Android Studio ובמכשירים וירטואליים שבהם מצב החלון 'שינוי הגודל והמיקום של החלונות' מופעל כברירת מחדל.

הפעלת הסימולטור ב-Android Studio

עכשיו אפשר להפעיל את Android Studio ישירות באמולטור Android. אתם יכולים להשתמש בתכונה הזו כדי לחסוך מקום במסך, לנווט במהירות בין הסימולטור לבין חלון העריכה באמצעות מקשי קיצור, ולנהל את תהליך העבודה של הסימולטור וה-IDE בחלון אפליקציה אחד.

מצב חלון חופשי

עכשיו אפשר ליצור מכשיר AVD שבו מופעל מצב חלון בצורת פרח. לשם כך, בוחרים את פרופיל החומרה של טאבלט בצורת פרח בגודל 13.5 אינץ' כשיוצרים מכשיר וירטואלי ב-Android Studio. כדי להשתמש בפרופיל החומרה הזה, צריך קובץ אימג' של מערכת עם Android 11 Developer Preview 3 ואילך.

בעיות מוכרות

אי אפשר כרגע לשנות את הגודל של חלונות במצב חופשי בגלל בעיות בהעברת המיקוד למנהל החלונות. הבעיה הזו תטופל במהדורה עתידית של קובץ האימג' של מערכת Android 11.

30.0.0 (19 בפברואר 2020)

העדכון הזה כולל קובצי אימג' של מערכת Android 11 (רמת API 30) ושיפור בביצועים כשמריצים קבצים בינאריים של ARM.

קובצי אימג' של מערכת Android 11

עכשיו אפשר ליצור מכונה וירטואלית ל-Android 11 על ידי בחירה באחת מתמונות המערכת הזמינות ברמת API 30:

  • x86: כולל גם ABIs של x86 וגם של ARMv7.
  • x86_64: כולל ממשקי ABI של x86, ‏ x86_64, ‏ ARMv7 ו-ARM64.

תמיכה בקובצי ARM בינאריים בתמונות מערכת של Android 9 ו-11

אם בעבר לא הצלחת להשתמש ב-Android Emulator כי האפליקציה שלך הייתה תלויה בקובצי ARM בינאריים, עכשיו אפשר להשתמש בתמונת המערכת של Android 9 x86 או בכל תמונה של מערכת Android 11 כדי להריץ את האפליקציה – כבר לא צריך להוריד תמונה ספציפית של מערכת כדי להריץ קובצי ARM בינאריים. קובצי האימג' של מערכת Android 9 ו-Android 11 תומכים ב-ARM כברירת מחדל ומספקים ביצועים משופרים באופן משמעותי בהשוואה לקובצי אימג' עם אמולציה מלאה של ARM.

בעיות מוכרות

  • קובצי אימג' של מערכת Android 11 בפורמטים x86 ו-x86_64 לא מצליחים להריץ קובצי אימג' בינאריים מסוימים של ARMv7. כדאי לפתח עבור ARM64 כשמטרגטים ל-Android 11.

29.0.11 (29 במאי 2019)

העדכון הזה כולל את השיפורים והתיקונים הבאים:

  • Windows: הסימולטור מסתמך עכשיו על קובץ ה-DLL של libgcc שאנחנו שולחים במקום להיערך באופן סטטי באמצעות libgcc.
  • Linux: הוספנו תמיכה ב-logcat ל-gRPC API. מידע נוסף על gRPC זמין במאמר ממיר סטרימינג של gRPC (Linux).
  • מעכשיו, הסימולטור כולל build ללא ממשק משתמש (headless) לאורחים של x86 ב-32 ביט (qemu-system-i386). התכונה הזו מאפשרת להריץ תמונות x86 ב-32 ביט לרמות API 26 ומטה באמצעות ה-build ללא ממשק משתמש. שימו לב שבמכונות אורחות x86 של 32 ביט עם API מגרסה 27 ואילך, הסימולטור משתמש במנוע של 64 ביט (qemu-system-x86_64), כי בתמונות המערכת האלה, מרחב המשתמש הוא של 32 ביט אבל הליבה היא של 64 ביט. Android Studio משתמש בליבה כדי לבחור מנועי אמולציה.
  • עכשיו אפשר לציין נתיבים מותאמים אישית של ספריות Qt באמצעות משתנה הסביבה ANDROID_QT_LIB_PATH.
  • עכשיו אפשר להריץ את האמולטור עם קבצים בינאריים קודמים שמשתמשים ב-QEMU1, אם קובצי ההפעלה של QEMU1‏ (emulator[64]-[x86|arm|etc]) ממוקמים בספריית האמולטור.
  • Windows: תוקנה בעיה שגרמה לפעמים לכך שהמכונה הווירטואלית לא תתחיל לפעול עם ההודעה 'בקשה להשבתת vCPU'.
  • תוקנה בעיה של מחסום צינור עיבוד נתונים מיותר בטקסטורות דחוסות במהדורה של Vulkan.
  • תוקנה שגיאה שהתרחשה בבקשות proxy של http כשנעשה שימוש בקידוד העברה במקטעים. מידע נוסף זמין בפרטי ההתחייבות.

29.0.9 (7 במאי 2019)

העדכון הזה כולל את התיקון הבא:

  • Windows: תוקנה בעיה שבה מצלמת הסצנה הווירטואלית ומצלמת האינטרנט לא עבדו באמולטור.

29.0.8 (6 במאי 2019)

העדכון הזה כולל את השיפורים והתיקונים הבאים:

  • הוספנו תמיכה במספר צגי חומרה וירטואליים כשיש שירות אורח שמפרט ומגדיר כל צג. מספר מסכים של חומרה וירטואלית ייכללו בעדכון עתידי של קובץ האימג' של מערכת האמולטור.
  • נוספה אפשרות חדשה בשורת הפקודה: -delay-adb. האפשרות הזו משביתה את העיבוד של חבילות ADB עד שהפעלת האורח תושלם (מתוך הפעלה קרה). האפשרות הזו עוזרת לפתור בעיות שעשויות להתרחש אם משתמשים במהדורת האדמין בסביבת CI שמפעילה מחדש את המהדורה האדמין ומשתמשת ב-DDMS בו-זמנית.
  • תוקנה שגיאה שהתרחשה בזמן טעינת קובצי snapshot, שבה glIsRenderbuffer היה מחזיר את הערך השגוי.
  • תוקנו כמה בעיות שקשורות למצב לא עדכני כשהאורח ב-Android מופעל מחדש.
  • Windows: תוקנו בעיות שגרמו לכך שהמכונה הווירטואלית לא תתחיל לפעול כששם המשתמש ב-Windows מכיל תווים או רווחים שאינם תווי ASCII.

בעיות מוכרות

  • ממשק המשתמש של קובצי snapshot מושבת בתמונות מערכת לכלי רכב, כי נכון לעכשיו אין תמיכה בתמונות המערכת האלה.

29.0.6 (1 במאי 2019)

העדכון הזה כולל כמה תכונות חדשות, שיפורים בתכונות קיימות ותיקוני באגים.

הסרת התמיכה ב-QEMU1 וב-Windows 32-bit

כדי לשפר את התחזוקה של הסימולטור, אנחנו כבר לא שולחים קובצי בינארי של QEMU1 ו-Windows בגרסת 32-bit. אם אתם משתמשים ב-Windows 32 ביט, לא תוכלו לשדרג לגרסה 29.0.6.

דרישות לתמונות מערכת של Android Q

אם רוצים להריץ מכונה וירטואלית של Android (AVD) שמשתמשת בתמונת מערכת של Android Q, צריך להשתמש עכשיו בגרסה 29.0.6 (גרסת המהדורה הזו) ואילך.

שיפורים ב-Project Marble

העדכון הזה הוא המשך לעבודה שלנו בפרויקט Project Marble, שהכרזנו עליו בכנס המפתחים של Android בנובמבר 2018. מידע נוסף על שיפורים אחרים של Project Marble במהדורות קודמות זמין במאמר Android Emulator: Project Marble Improvements.

בעדכון הזה, רוב המאמצים שלנו בפרויקט Marble הוקדשו לצמצום השימוש במשאבים של המהדר, למשל צמצום השימוש של המהדר במעבד (CPU) במצב חוסר פעילות. הוספנו גם שינויים שיקלו על העבודה עם הסימולטור במגוון רחב יותר של סביבות, וטיפלנו בבעיות איכות כלליות.

בקטעים הבאים מתוארים השיפורים ב-Project Marble שכלולים בעדכון הזה:

שיפורים בהתנהגות האודיו של המארחים

החל מגרסה 28.0.3, האמולטור חוסם את קלט האודיו מהמארח כברירת מחדל.

אם רוצים להשתמש בנתוני האודיו של המארח, אפשר להפעיל את האפשרות הזו בקטע אמצעי בקרה מורחבים > מיקרופון ולהפעיל את האפשרות המיקרופון הווירטואלי משתמש בקלט האודיו של המארח. האפשרות הזו מושבתת באופן אוטומטי בכל פעם שמפעילים מחדש את הסימולטור.

אם אתם משתמשים בשורת הפקודה, תוכלו גם להפעיל את האודיו של המארח באמצעות האפשרות -allow-host-audio, ולהשתמש בפקודות ה-ADB הבאות כדי להפעיל או להשבית את נתוני האודיו של המארח, בהתאמה:

  • adb emu avd hostmicon
  • adb emu avd hostmicoff

שיפורים בגרסאות build של אמולטור ללא ראש

החל מגרסה 28.0.25, הסימולטור כולל אפשרות build ללא ממשק משתמש שאפשר להריץ בלי ממשק המשתמש. אפשר להשתמש ב-builds ללא ממשק משתמש כדי להגדיר את המהדרג ל-Docker ולתהליכי עבודה של אינטגרציה רציפה (CI).

בעדכון הזה ביצענו שיפורים נוספים כדי לאפשר להפעלת הסימולטור לפעול עם מספר מינימלי של יחסי תלות. ב-Linux, גרסאות build ללא ממשק משתמש כבר לא כוללות את הספריות pulseaudio או libX11. מספר הספריות המשותפות שתלוית במערכת ולא נכללות בחבילת האמולטור צומצם לרשימה הבאה:

  • Linux-vdso.so.1
  • Libutil.so.1
  • Libm.so.6
  • Libdl.so.2
  • Librt.so.1
  • Libpthread.so.0
  • Libgcc_s.so.1
  • Libc.so.6
  • ld-linux-x86-64.so.2

שדרוג ספריות Qt UI לגרסה 5.12 LTS

העדכון הזה כולל את השיפורים הבאים מגרסת Qt 5.12 LTS:

  • כדי למנוע קריסות בפענוח של libpng ב-Qt כשמפעילים קובצי אימג' מסוימים של מערכת, מעכשיו במהלך פענוח של קובצי PNG, האדמולטור משתמש בעותק משלו של libpng.
  • כדי לטפל בבעיות בהתקנות מסוימות של Linux שמכילות גרסאות לא תואמות של ספריות מסוימות שתלויות ב-Qt, אנחנו מעכשיו חבילות את libfreetype,‏ libsoftokn,‏ libsqlite3 ו-libxkbcommon עם הסימולטור.
  • מעכשיו, הסימולטור משתמש בספריות החלונות הילידיות של הפלטפורמה כדי לקבל את מידות המסך, במקום להשתמש בספריות Qt שהחזירו תוצאות לא מהימנות.

אופטימיזציה אוטומטית של המעבד אחרי הפעלה מחדש

כדי לטפל בשימוש ב-CPU, מעכשיו הסימולטור מפעיל את פקודות ה-ADB הבאות בהפעלה מחדש אחרי שהוא מקבל אות boot complete:

adb shell settings put screen_off_timeout 214783647
הפקודה הזו מגדילה את פרק הזמן הקצוב לתפוגה של כיבוי המסך, כדי שאפשר יהיה להשתמש במהדמה במצב סוללה בלי טעינה. במצב סוללה, השימוש ב-CPU ברקע מצטמצם באופן משמעותי.
במצב טעינה במתח ישר, פעולות הרקע של GMSCore, כמו עדכוני אפליקציות, יכולות להשתלט על כל ליבות המעבד של המכשיר – ובאופן מורחב, על המחשב של המשתמש – ללא אזהרה.
adb shell pm revoke com.google.android.googlequicksearchbox android.permission.RECORD_AUDIO
הפקודה הזו מבטלת את הרשאות המיקרופון של אפליקציית החיפוש של Google, וכך מפחיתה באופן משמעותי את השימוש במעבד ברקע במסך הבית ובמרכז האפליקציות כשאפליקציית החיפוש של Google פעילה.
הפקודה הזו פועלת בנוסף להתנהגות ברירת המחדל של הסימולטור, שמפעילה השבתה של אודיו המארח עבור המארח. בנוסף, האפשרות הזו מספקת באופן אוטומטי את הפחתת השימוש במעבד שמתוארת בקטע זיהוי מילות מפתח מהגרסה 28.0.23.

משתני סביבה חדשים למעקב אחר ביצועים

עכשיו אפשר להשתמש בשני משתני סביבה חדשים כדי לאפשר מעקב מפורט אחרי הביצועים ושימוש המשאבים של המהדר.

SHOW_PERF_STATS=1
משתנה הסביבה הזה מאפשר לעקוב אחרי השימוש גם במעבד (CPU) וגם בזיכרון ה-RAM. במעקב אחרי השימוש ב-RAM יש הבחנה בין שימוש בגרפיקה לבין סך הזיכרון שנמצא במטמון.
ANDROID_EMU_TRACING=1
משתנה הסביבה הזה מאפשר הדפסה בכל פעם שפעולת קלט או גרפיקה נמשכת זמן רב (יותר מ-1 אלפית שנייה).
אנחנו משתמשים במשתנה הסביבה הזה גם כדי לאבחן בעיות שמשתמשי Windows נתקלו בהן, עם יותר תנודות (פריימים שנשמטים) מאשר משתמשים ב-MacOS או ב-Linux.

שיפורים כלליים ב-Project Marble

העדכון הזה כולל גם את השיפורים הכלליים הבאים, שנכללים ביוזמה Project Marble:

  • עכשיו אפשר להשהות באופן מיידי את כל מעבדי ה-vCPU במהדמ באמצעות פקודות המסוף הבאות:
    • adb emu avd pause
    • adb emu avd resume
  • הפחתה משמעותית של התקורה של ציור ב-OpenGL. השיפור הזה מפחית את השימוש ב-CPU בזמן שהאנימציות מופעלות במהלך ההדמיה.
  • התמיכה במכשיר הרשת הווירטואלי e1000 של QEMU הוחזרה. אפשר להשתמש במכשיר הזה כדי להגדיר את הסימולטור בסביבת רשת מקושרת. בסביבת רשת גישור, הסימולטור מוצג ברשת המארחת ורשת המארחת מוצגת בסימולטור.
  • עכשיו נעשה שימוש בקובצי BIOS בינאריים שמתאימים ל-QEMU 2.12 כדי להפעיל את האמולטור.
  • שדרוג הגרסה של ffmpeg ל-3.4.5 לקידוד ולפענוח וידאו.
  • הפחתנו באופן משמעותי את התקורה של הקלט/פלט (I/O) בלולאה הראשית של QEMU ב-macOS, על ידי החלפת הלולאה הראשית שמבוססת על select() בלולאה ראשית שמבוססת על kqueue.
  • הגדלת גודל המאגר של Logcat ל-2MB כדי לטפל בבעיות של EOF לא צפוי בזמן הרצת logcat עם המהדר.
  • מעכשיו, הסימולטור מייצא את משתנה הסביבה LC_ALL=C כברירת מחדל. השינוי הזה מטפל בקריסות ובבעיות של אי-תאימות שקשורות להרצת האדמולטור באזורים שונים.
  • עכשיו אפשר לעקוב אחרי השימוש ב-CPU וב-RAM של הסימולטור באמצעות נתוני ביצועים. אפשר לגשת לנתונים האלה בקטע אמצעי בקרה מורחבים > הגדרות > מתקדם > נתוני ביצועים. אפשר להשתמש בנתונים הסטטיסטיים האלה כדי לאבחן במהירות בעיות, אם נראה שהמכונה הווירטואלית משתמשת ב-CPU או ב-RAM יותר מדי.
  • glReadPixels GL_IMPLEMENTATION_COLOR_READ_TYPE משתמש עכשיו בתוצאה של GPU המארח במקום בתוצאה של מעבד הווידאו המאומלל. השינוי הזה עוזר לפתור בעיות שבהן תמונות ונכסים לא מוצגים בגלל פורמט לא תקין לקריאה חוזרת.
  • הוספנו תמיכה בתוספי OpenGL ES‏ GL_EXT_texture_format_BGRA8888 ו-GL_APPLE_texture_format_BGRA8888, אם המארח תומך בתוספים האלה.
  • הוספנו פרטי אבחון נוספים לממשק המשתמש של דוח הבאג. בנוסף, אפשר לגשת לדוחות הבאגים מהמסוף באמצעות הפקודות הבאות:
    • telnet localhost 5554
    • avd bugreport
  • בתמונות המערכת של Android Q, נפח ה-RAM המינימלי של הסימולטור גדל ל-2GB.
  • נוספו עוד רישומים ביומן והדפסות בכל פעם ש-OpenGL או hypervisor נכשלים באתחול.
  • אם הסימולטור לא יכול להפעיל מכונה של -read-only בו-זמנית ב-AVD, הוא ינסה להפעיל מחדש את ה-AVD של -read-only עוד 3 פעמים תוך 3 שניות. השינוי הזה מגדיל את הסיכוי שהמכונה הווירטואלית תוכל להפעיל מכונות -read-only בו-זמנית ב-AVD, אם מכונות אחרות של AVD שאפשר לכתוב בהן עדיין לא סיימו לנקות קבצים לא תקינים.
  • מעכשיו, האמולטור תומך ב-Hardware Composer 2.0 בתמונות מערכת עתידיות. השינוי הזה אמור להפחית את התקורה של מנהל ההתקן בזמן הפעלת רוב האנימציות.
  • גרסאות ה-build של המהדר מבוססות עכשיו על CMake/Ninja.
  • בממשק המשתמש של אמצעי הבקרה המורחבים של המהדר, קווים מפרידים בטבלת מקשי הקיצור שוחזרו.
  • מעכשיו, המשתמשים יכולים להביע הסכמה לספק לצוות שלנו מדדי שימוש ב-CPU וב-RAM במרווח של 10 שניות. אנחנו משתמשים במדדים האלה כדי להעשיר את הנתונים שלנו לגבי השימוש במשאבים של המהדר באמצעות תרחישי שימוש שונים מהמשתמשים שלנו, וכך לשפר את היעילות והמהירות של המהדר.

תיקונים כלליים ב-Project Marble

העדכון הזה כולל גם את התיקונים הכלליים הבאים, שנכללים ביוזמה Project Marble:

  • תוקנו בעיות של תנודות ופריימים שגויים שמוצגים במערכות עם מעבדי GPU של Intel כשמשתמשים בתמונות מערכת של Android Q.
  • תוקנו בעיות שבהן הוצג מסך שחור כשמשתמשים בתמונות מערכת של Android Q עם סקינים של Pixel 2 XL (או כל סקין עם חריץ או פינות מעוגלות).
  • תוקנה בעיה שבה אפשרות שורת הפקודה -partition-size לא הגדירה את גודל מחיצה הנתונים.
  • תוקנה בעיה שבה pulseaudio במהלך הדמיה של Linx היה מתחיל לפעול ומשתמש בליבה שלמה של מעבד במצבים מסוימים.
  • תוקנו בעיות בגישה לזיכרון מחוץ למגבלות במהלך עיבוד של טקסטורות דחוסות.
  • תוקנו שגיאות GL שהתרחשו במארח ב-glTexSubImage2D במהלך עדכון של מאגרי gralloc מסוימים (בפורמט RGB 565, ‏ RGB10A2, ‏ RGB(A)16F).
  • תוקנה בעיית תצוגה בתמונות מערכת של Android Q עם קובצי snapshot, שבהן הגיאומטריה של חלונית ההתראות עברה רינדור עם הגדרה לא נכונה של מחלק המופעים.
  • תוקנו כמה בעיות שקשורות לקריסה ולתקיעה בזמן ההפעלה, שקשה מאוד לשחזר, שנגרמו בגלל אובדן אותות ב-Qt או סטטוסים לא עקביים ולא יציבים בזמן ההפעלה.
  • תוקנו מספר בעיות של בו-זמניות. עכשיו אנחנו יכולים ליצור את אמולטור Linux באמצעות ThreadSanitizer‏ (TSAN), שיכול לזהות בקלות באגים שקשה לשחזר אותם בדרכים אחרות.
  • למשתמשי Linux: גילינו שבליבות מארח מסוימים, הליבה של Android האורח יכולה להוביל לשגיאה וליציאה מ-KVM עם שגיאת חומרה גנרית. כדי לשפר את יכולת ניפוי הבאגים, האמולטור abort() עכשיו במקרה כזה (בעבר, האמולטור פשוט נתקע).
  • למשתמשי Linux: כדי להקל על הגדרות CI, אפשר להשתמש באפשרות החדשה בשורת הפקודה -stdouterr-file <file-name> כדי להפנות את stdout וגם את stderr לקובץ.
  • תוקנה בעיה שבה נעשה שימוש שגוי ב-SO_REUSEADDR. למידע נוסף, ראו פרטי ההתחייבות.
  • תוקנה בעיה ארוכת טווח במהדורת Windows של המהדר, שבה תהליכים משניים, כמו פקודות ADB, לא הצליחו להתחיל אם שם המשתמש הכיל רווחים.
  • תוקנה בעיה של אי-הפעלה של RCU בשרשראות vCPU של HAXM. יכול להיות שהתיקון הזה יטפל בחלק מהקריסות ומתנאי מרוץ.
  • תוקן קריסה שהתרחשה בתבניות מסוימות של שמירת תמונות מצב וטעינתן מממשק המשתמש שלהן באמצעות קובצי אימג' מערכת עדכניים של Android Q.
  • תוקנה בעיה שבה המצלמה של הסצנה הווירטואלית הייתה ריקה כשהמכונה הווירטואלית הופעל מתוך קובץ snapshot, אם מק"רו של AR הופעל בזמן שמקובץ ה-snapshot נשמר.
  • תוקנה בעיה שבה משתמשים מסוימים עם הגדרות של מחשב מרוחק ראו מסך שחור כשהפעילו את המהדר ב-Linux. כדי למנוע זאת, האמולטור מגדיר עכשיו את MESA_RGB_VISUAL באופן מפורש. מידע נוסף זמין בפרטי ההתחייבות.
  • תוקנה בעיה שבה לחצני הסיבוב הופיעו ב-AVD בטלוויזיה.
  • תוקנה בעיה שבה אם סימנתם שהמכונה הווירטואלית תמיד תופיע בחלק העליון של המסך, חלון הפקדים המורחבים הופיע בכל פעם שהמכונה הווירטואלית הוסתרה.

פרופילי חומרה למכשירים מתקפלים

מעכשיו, הסימולטור כולל פרופילי חומרה למכשירים מתקפלים. כדי להשתמש בפרופילי החומרה החדשים האלה, צריך להשתמש ב-Android Studio 3.5 Canary 10 ואילך.

יש שני פרופילים של חומרה מתקפלת שאפשר להשתמש בהם כדי ליצור מכונה וירטואלית ל-Android:

  • מכשיר מתקפל בגודל 7.3": 1536x2152 במצב פתוח, 4.6" 840x1960 במצב מקופל
  • מכשיר מתקפל בגודל 8": 2200x2480 במצב פתוח, 6.6" 1480x2480 במצב מקופל

כשמריצים את הסימולטור באמצעות אחד מפרופילי החומרה האלה, אפשר לקפל ולפתוח את המכשיר באמצעות פעולות הקפלה והפתיחה בסרגל הכלים של הסימולטור, פקודות במסוף או מקשי הקיצור הבאים:

  • קיפול: Ctrl + F (Command + F ב-macOS)
  • פתיחה: Ctrl + U (Command + U ב-macOS)

פקודות מאקרו ב-AR

מעכשיו, הסימולטור כולל מאקרואים של AR שיכולים לעזור לכם לבדוק פעולות AR נפוצות. לדוגמה, אפשר להשתמש במאקרו כדי לאפס את כל החיישנים במכשיר למצב ברירת המחדל שלהם.

מידע נוסף זמין במאמר בדיקת פעולות נפוצות של AR באמצעות מאקרו.

תמיכה ב-Vulkan (Windows, ‏ Linux)

משתמשי Windows ו-Linux יכולים עכשיו לבדוק אפליקציות Vulkan באמצעות Android Emulator עד Vulkan 1.1 באמצעות קובץ אימג' של מערכת תואם (Android Q Beta 3 ואילך ל-Vulkan 1.1,‏ Android Q Beta 2 ל-Vulkan 1.0) ו-GPU מארח תואם (כולל רוב המעבדים הגרפיים של Intel,‏ NVIDIA ו-AMD מ-2014 ואילך).

כדי להפעיל תמיכה ב-Vulkan, צריך להוסיף את דגלי התכונות הבאים לקובץ ~/.android/advancedFeatures.ini (יוצרים את הקובץ אם הוא לא קיים):

  • Vulkan = on
  • GLDirectMem = on

תמיכה ראשונית למפתחי ROM

מפתחי ROM שמפתחים את היעדים sdk_phone_x86 או sdk_phone_x86_64 (הוריאנטים של userdebug ו-eng) בהסתעפות master של AOSP יכולים עכשיו להריץ אמולטור שתומך ב-Vulkan.

התמיכה הזו עדיין בגרסת ניסוי, והיא מיועדת בעיקר למפתחים שעובדים על קובצי אימג' של מערכות, על מנהלי התקנים ועל מנועי משחקים. עדיין חסרים הרבה תוספים. עם זאת, יש תמיכה בזיכרון HOST_COHERENT, ועכשיו אמורה להיות לכם אפשרות להריץ את הדוגמאות למדריך של Vulkan API.

אם אתם משתמשים ב-Linux, תוכלו לנסות את הפקודות הבאות:

mkdir aosp-master
cd aosp-master
repo init -u https://android.googlesource.com/platform/manifest -b master --depth=1
repo sync -c -j12
. build/envsetup.sh
lunch sdk_phone_x86_64-userdebug
make -j12
emulator -no-snapshot -feature Vulkan,GLDirectMem

רינדור של Skia באמצעות Vulkan

כרטיסי GPU של NVIDIA ו-AMD שתומכים ב-Vulkan תומכים גם באינטראקציה הדדית ללא העתקה עם OpenGL באמצעות התוסף GL_EXT_memory_objects. הסימולטור משתמש ביכולת הזו כדי לספק דרך מלאה לרינדור ממשק המשתמש של Android באמצעות ממשקי ה-API של Skia Vulkan.

אם יש לכם מעבד GPU של NVIDIA או AMD שתומך ב-Vulkan, תוכלו להשתמש בפקודות הבאות כדי לבדוק את העיבוד של Skia באמצעות קובץ אימג' תואם של מערכת (Android Q Beta 3 ואילך):

adb shell
su
setprop debug.hwui.renderer skiavk
stop
start

תמיכה ב-Vulkan ב-macOS

התמיכה ב-macOS עדיין בגרסת ניסוי, אבל האמולטור כבר כולל את ממשקי ה-API של Swiftshader,‏ MoltenVK ו-libportability‏ (gfx-rs). כדי להתנסות ב-API האלה, מגדירים את משתני הסביבה הבאים:

  • Swiftshader: ‏ ANDROID_EMU_VK_ICD=swiftshader
  • MoltenVK: ‏ ANDROID_EMU_VK_ICD=moltenvk
  • libportability: ‏ ANDROID_EMU_VK_ICD=portability

בעיות מוכרות

לפעמים HAXM לא מצליח למפות זיכרון עקבי של Vulkan לאורחים, ומשבית את הסימולטור. הבעיה הזו תטופל בעדכון HAXM שיצא בקרוב.

אמולטור סטרימינג של gRPC (Linux)

אנחנו תמיד מנסים להפוך את הסימולטור למגוון ככל האפשר, על ידי מתן אפשרות לעיבוד ואינטראקטיביות של GPU המארח במגוון הרחב ביותר של הקשרים שפועלים. למשתמשים שלנו ב-CI ובמחשבים מרוחקים יש את הבעיות הבאות שנמשכות כבר זמן רב:

  • שליחת פקודות קלט למהדר באופן פרוגרמטי כוללת הפעלה של פקודות adb shell שעלולות לגרום לעומס גבוה, או שימוש במסוף telnet, שהוא מהיר יותר אבל יכול שלא לפעול עם הגדרות רשת מסוימות.
  • משתמשי CI מריצים לעיתים קרובות מכונות וירטואליות ללא גוף (headless), ולכן יכול להיות שיהיה קשה לזהות בעיות שדורשות שהמסך יהיה גלוי או אינטראקטיבי.
  • לרוב, משתמשים במחשב מרוחק לא יכולים לקיים אינטראקציה עם הסימולטור כשמשתמשים ברינדור של GPU של המארח, כי רינדור של GPU קשור בדרך כלל למסכים הלא וירטואליים של המארח.

כדי לטפל בבעיה הזו, מעכשיו במהלך הפעלה במכונה עם Linux, הסימולטור משמש כשירות gRPC. ‏gRPC הוא מסגרת כללית ל-RPC שפועלת דרך HTTP.

כברירת מחדל, שירות ה-gRPC של המהדר מושבת, אבל אפשר להפעיל את השירות באמצעות האפשרות הבאה בשורת הפקודה, שבה <port> הוא היציאה שבה המהדר אמור לשרת בקשות gRPC (בדרך כלל 5556):

-grpc <port>

אחרי שמפעילים את השירות, אפשר להנפיק פקודות gRPC מהלקוחות. קבוצת הפקודות הנוכחית מאפשרת גם לשלוח אירועי קלט וגם לקבל צילומי מסך. הפקודות האלה עוזרות לפתור את הבעיות הבאות:

  • אפשר לשלוח פקודות קלט למהדורת האפליקציה באמצעות HTTP עם עלות נמוכה. בנוסף, HTTP מאפשר לשלוח פקודות בהגדרות רשת נוספות.
  • אפשר לשלוח פקודות של צילומי מסך כדי לשלוח שאילתה לגבי המסך הנוכחי, גם אם האמולטור פועל ללא גוף. כדי ליצור אינטראקטיביות, אפשר גם לשלוח אירועי קלט בחזרה למהדר.
  • משתמשי מחשב מרוחק יכולים להריץ את הסימולטור ללא ראש במסך הראשי עם עיבוד נתונים מואץ על ידי GPU, תוך שימוש ב-gRPC כדי לקבל צילומי מסך ולשלוח אירועי קלט כדי לקיים אינטראקציה עם הסימולטור.

רשימה מלאה של הפקודות הזמינות מופיעה בprotobuf הזה.

כדי לעזור לכם להתחיל להשתמש ב-gRPC, סיפקנו כמה לקוחות לדוגמה שתוכלו להיעזר בהם.

נכון לעכשיו, הדוגמאות האלה נכללות:

  • שירות מבוסס-Go שאפשר להשתמש בו כדי לשלוח שאילתות לגבי מצבי אמולטור.
  • אפליקציית React שממחישה אינטראקטיביות מרחוק באמצעות צילומי מסך ו-RPCs של קלט. הדוגמה הזו דורשת protobuf בגרסה 3.7.0 ואילך.
  • דוגמה ל-Python שמריצה שאילתה על הגדרות ה-VM של המהדר ואז שולחת סדרה של פקודות.

28.0.25 (29 במרץ 2019)

העדכון הזה כולל את השיפורים והתיקונים הבאים:

build של אמולטור ללא ממשק משתמש

היה קשה להגדיר את הסימולטור עם Docker ותהליכי עבודה אחרים של שילוב רציף (CI), בגלל הציפיות המשתמעות שהמערכת תוכל לתמוך ב-Qt יחד עם יחסי התלות בספריות המשותפות שלה (בין היתר).

כצעד ראשון לפתרון הבעיה, הוספנו גרסה של מרכז האפליקציות של המהדמרים עם קובצי הפעלה של QEMU שלא תלויים ב-Qt. ב-Linux עדיין יש קישור ל-libX11, אבל אנחנו מקווים להסיר אותו גם בקרוב.

כדי להשתמש במהדורת ללא ממשק משתמש של המהדר, מריצים את המהדר משורת הפקודה כרגיל, אבל מחליפים את ההפעלה הבינארית של המהדר ב-emulator-headless. מידע נוסף זמין בעדכון המוצר של גרסת Canary 28.1.8.

  • תוקנה הבעיה של רטט ותצוגה שגויה של פריימים ב-GPU של Intel כשמריצים קובצי אימג' של מערכת Android Q.
  • תוקנו בעיות שבהן הוצג מסך שחור כשמשתמשים בתמונות מערכת של Android Q עם סקינים של Pixel 2 XL.
  • קובצי ה-BIOS הבינאריים העדכניים ביותר משמשים עכשיו להפעלת הסימולטור. השינוי הזה יכול לעזור לצמצם את השגיאות מסוג 'בקשה להשבתת vCPU' שמתרחשות לפעמים כשמריצים את הסימולטור ב-Windows.
  • הועבר תיקון לבעיה 'תצוגה שגויה כשממשיכים את התמונות של מערכת Android Q מקובץ snapshot'.
  • משתמשים נתקלו בבעיות במהדמנים 'לא מורשים' בגלל שינוי לא תואם ב-ADB ב-platform-tools 28.0.2. עכשיו אפשר להשתמש ב-ADB בבטחה מהגרסה 28.0.2 של platform-tools עם האמולטור. אם נתקלתם בבעיות במהלך השימוש במהדמרים 'לא מורשים', תוכלו לנסות את השלבים הבאים לפתרון בעיות:
    1. יוצאים מכל המהדמנים.
    2. מוחקים את הקובץ ~/.android/adbkey ואת הקובץ ~/.android/adbkey.pub.
    3. מריצים את הפקודה הבאה: adb kill-server
    4. מריצים את הפקודה הבאה: adb devices
    5. מוחקים את נתוני ה-AVD.
    6. מפעילים מחדש את האמולטור.

28.0.23 (29 בינואר 2019)

העדכון הזה כולל את השיפורים והתיקונים הבאים:

קלט האודיו של המארח מושבת כברירת מחדל

פוסט שפורסם לאחרונה ב-Reddit פירט איך מערכת ההפעלה של האורח ב-Android תמיד תשתמש באודיו של המיקרופון של המארח, וכך תאפשר ל-'Ok Google' לפעול באופן בלתי צפוי. אנחנו מצטערים על כך ונעבוד עם צוות Android כדי לוודא שזיהוי מילות מפתח מושבתו גם בתמונת המערכת.

כדי לטפל בבעיה הזו, ביצענו את השינויים הבאים:

  • נתוני האודיו בפועל של המארח מושתק עכשיו כברירת מחדל. כשהאורח משתמש במיקרופון, השקט מועבר במקום האודיו של המארח.
  • אם אתם רוצים להשתמש בנתוני האודיו של המארח, תוכלו להפעיל את האפשרות הזו עכשיו. לשם כך, עוברים אל אמצעי בקרה מורחבים > מיקרופון ומפעילים את האפשרות המיקרופון הווירטואלי משתמש בקלט האודיו של המארח. האפשרות הזו מושבתת באופן אוטומטי בכל פעם שמפעילים מחדש את המהדמ.

עדכונים לגבי בדיקות של שימוש ב-CPU

במהלך החקירה של Project Marble, שמנו לב ששימוש גבוה ב-CPU במהלך ההרצה במהדורת האדמולטור בדרך כלל נכלל בשלוש הקטגוריות הבאות:

במצב חוסר פעילות: עדכוני אפליקציות אוטומטיים בתמונות של חנות Play

גילינו שבמרווחי זמן אקראיים, כל האפליקציות המותקנות מתעדכנות, גם אם המשתמש לא מחובר לחשבון. במהלך התהליך, השימוש במעבד מגיע למספר הליבות x 100% (בדרך כלל כ-400%) ב-GMSCore וב-dex2oat. כדי לצמצם את הבעיה, אפשר להשבית את העדכונים האוטומטיים של האפליקציות באפליקציית חנות Play.

במצב סרק: זיהוי מילת הפעלה

כשנמצאים במסך הבית ואין אפליקציה בחזית, יכול להיות שימוש משמעותי במעבד (כ-25% עם עליות חדות ל-50%). המצב הזה נגרם בגלל זיהוי מילת הפעלה שמפעיל הודעות ping לארח באופן קבוע. אי אפשר לצמצם את הבעיה על ידי השבתת הקלט של האודיו מהמארח, כי עלות המעבד נובעת בעיקר מהזמן שנדרש להעברת הנתונים מהמארח לאורחים. עם זאת, אפשר לצמצם את הבעיה על ידי ביטול הרשאות המיקרופון באפליקציית Google.

במצב פעיל, לפעמים במצב חוסר פעילות: אנימציות

המקור השלישי לשימוש גבוה ב-CPU הוא אנימציות. גילינו שאפשר לצמצם את השימוש ב-CPU גם כשהמכונה הווירטואלית לא במצב חוסר פעילות, על ידי אופטימיזציה של מקבץ מנהלי הגרפיקה. אנחנו נשיק את האופטימיזציות של מנהלי הגרפיקה בהדרגה כחלק מ-Project Marble.

28.0.22 (21 בדצמבר 2018)

העדכון הזה כולל את השיפורים והתיקונים הבאים:

  • תוקנה בעיה ארוכת טווח שבה בהגדרות מסוימות, אמולטור Mac מופעל מחדש או מתרחש חרדה בליבה (kernel panic) בזמן שמירת Quickboot. (בעיה 120951634)
  • כשמשתמשים בקובץ ממופה כקובץ snapshot של זיכרון RAM, מעכשיו המהדרר מבטל את המיפוי של הקובץ באופן מפורש בזמן היציאה.

28.0.20 (11 בדצמבר 2018)

העדכון הזה כולל את השיפורים והתיקונים הבאים:

  • תוקנה בעיה ב-Windows שגרמה להקפאה של המהדר במהלך טעינת קובץ snapshot עם דגמי GPU מסוימים של Intel.
  • תוקנה בעיה שגרמה למצב unauthorized של מכשיר ADB כשמשתמשים במיקום ANDROID_SDK_HOME לא סטנדרטי.
  • תוקנה בעיה ב-Windows שגרמה לכך שהמכונה הווירטואלית קרסה בזמן האתחול של קובצי אימג' של מערכת כשהאצת המעבד מושבתת.
  • תוקנה הבעיה של תצוגת אמולטור מגורענת. דגימת התמונה אמורה לפעול עכשיו.
  • תוקנה בעיה ב-macOS מגרסה 10.14 ואילך, שבה יכול להיות שהשליטה במצלמה של הסצנה הווירטואלית באמצעות העכבר תהיה רגישה מדי בגלל אינטראקציה עם הגדרות אבטחה חדשות של נגישות.
  • תוקנה שגיאה בחישוב אזור הזמן שעלולה לגרום לשעון של המהדר להשתנות באופן ספורדי.
  • תוקנו שגיאות עיבוד בגרפיקת תלת-ממד באפליקציות שונות של cocos2d ו-Unreal Engine.
  • נוספה תמיכה במהדמה בWi-Fi peer-to-peer. עכשיו אפשר לשוחח בין שני מכשירי אמולטור ישירות דרך Wi-Fi, אם משתמשים בתמונת Pie Play Store העדכנית. כדי להשתמש ב-Wi-Fi peer-to-peer, מפעילים שני מכונות AVD עם אותם ארגומנטים -wifi-server-port ו--wifi-client-port:
    • emulator @<server-avd-name> -wifi-server-port 9999
    • emulator @<client-avd-name>-wifi-client-port 9999
  • הוספנו תמיכה במצלמות אינטרנט נוספות ב-Windows. לשם כך, אנחנו משנים את הגודל של התמונה באופן דינמי כדי להתאים אותה להגדרת המצלמה ב-Android.

28.0.16 (נובמבר 2018)

העדכון הזה כולל כמה תכונות חדשות, שיפורים בתכונות קיימות ותיקוני באגים.

שימוש במשאבים

מעכשיו, האדמולטור משתמש בפחות זיכרון RAM באופן כללי, במיוחד כשמשתמשים בתמונות מערכת עם API ברמה 28 ואילך. קובצי האימג' של המערכת האלה כוללים שימוש משופר בזיכרון עבור מנהלי הגרפיקה בצד האורח.

בנוסף, שיפרנו את השימוש במשאבים בתחומים הבאים:

  • צמצום השימוש בזיכרון של האמולטור במהלך בדיקות ממושכות. אם הבעיות בשימוש בזיכרון במהלך בדיקות ממושכות נמשכות, תוכלו ליצור דיווח על בעיה במעקב אחר בעיות ולתאר את התרחיש לדוגמה.
  • הפחתת השימוש במעבד (CPU) בזמן הפעלת אפליקציות עם אנימציות.
  • תוקנה בעיה שגרמה לדליפה של הקשר QEMU AIO ב-Windows.

הפעלה בו-זמנית של כמה מופעים של AVD יחיד

עכשיו אפשר להפעיל כמה מכונות של אותו AVD ולהריץ אותן בו-זמנית. מכונות שמפעילים אחרי המכונה הראשונה הן לקריאה בלבד, והשינויים שלהן בדיסק הווירטואלי של האורח נמחקים כשהם יוצאים.

כדי להפעיל כמה מכונות של אותו AVD בו-זמנית, מפעילים את המכונות אחרי המכונה הראשונה משורת הפקודה באמצעות הדגל -read-only.

התכונה הזו מתאפשרת על ידי העתקת קובצי QCOW2 שמשויכים לחלקים שניתנים לכתיבה בתמונת Android. כדי לעזור לכם לנהל את נפח האחסון בכונן, הוספנו גם את qemu-img – כלי שורת הפקודה שמאפשר לכם להתחייב מראש לקבצים מסוג QCOW2 לפני שמפעילים כמה מכונות.

בנוסף, כשמשתמשים בו בשילוב עם התכונה Snapshots של זיכרון RAM של אורח שמגובים בקובץ , מספר מכונות AVD משתפות את קובץ ה-snapshot הראשי של AVD Quickboot כמקור משותף של זיכרון RAM של אורח מסוג 'העתקה בזמן כתיבה'. המשמעות של המאפיין הזה היא שהמכונות משתפות חלק גדול מה-RAM שלהן. אפשר להשתמש בתכונה הזו כדי להריץ בדיקות שדורשות הפעלה של כמה מכשירים במקביל.

נשמח לקבל מכם משוב על תרחישי שימוש אפשריים שקשורים לתהליך העבודה הרגיל שלכם, בין אם הוא אינטראקטיבי ובין אם הוא מבוסס CI. אפשר ליצור בעיות או להצביע עליהן ב-Issue Tracker.

קובצי snapshot של זיכרון RAM של אורח שמגובים בקובץ

הקצאה מראש ומיפוי של זיכרון RAM של אורח כקובץ מאפשרים למהדר להציל קובצי snapshot של Quickboot במהלך זמן הריצה, במקום לבצע את כל העבודה בזמן היציאה. אם זמן השמירה שלכם כשאתם סוגרים את המהדמנים ארוך, כדאי להפעיל את התכונה הזו כדי לשפר את הביצועים של Quickboot. כברירת מחדל, קובץ snapshot של Quickboot נשמר ביציאה ונטען מחדש בכל פעם, כמו השהיה והפעלה מחדש של מכשיר אמיתי.

מאחר שזיכרון ה-RAM של האורח ב-Android נשמר עכשיו באופן אוטומטי כברירת מחדל, אם רוצים להגדיר מצב של מכשיר ולטעון ממנו שוב ושוב, צריך להורות למהדר להוציא משימוש את השינויים אחרי כל סשן. אפשר לעשות זאת בדרכים הבאות:

  • משתמשים בדגלים -no-snapshot-save או -read-only כשמריצים את הסימולטור משורת הפקודה.
  • עוברים אל Extended Controls (אמצעי בקרה מורחבים) > Snapshots (קובצי snapshot) > Settings (הגדרות) ומעבירים את המתג של האפשרות Auto-save current state to Quickboot? (שמירה אוטומטית של המצב הנוכחי ב-Quickboot) למצב No (לא).
  • אחרי שבוחרים באפשרות הזו, צריך להפעיל מחדש את הסימולטור. אם במהלך ההרצה של הסימולטור מוגדר שמירה אוטומטית, אפשר להריץ את הפקודה הבאה כדי להגדיר נקודת עצירה:
    adb emu avd snapshot remap 0
    
    אחרי הרצת הפקודה הזו, קובץ snapshot של Quickboot במהדורת האדמין יישאר בנקודת הבדיקה הזו. מריצים שוב את אותה הפקודה כדי לטעון את הסימולטור מנקודת הבדיקה.

קובצי snapshot שנוצרים ונטענים דרך ממשק המשתמש של קובצי snapshot פועלים כמו קודם, ללא מיפוי קבצים.

זהו שינוי משמעותי באופן שבו Quickboot פועל, ולכן נשמח לקבל מכם משוב על השיפור בביצועים של Quickboot ועל סוגי הבעיות שאתם נתקלים בהן בזמן השימוש בו. אם נתקלת בבעיות, אפשר להשבית את התכונה הזו על ידי הוספת השורה הבאה לקובץ ~/.android/advancedFeatures.ini:

QuickbootFileBacked = off

כשמפעילים את הסימולטור מקובץ snapshot (באמצעות האפשרות -snapshot בשורת הפקודה או על ידי הפעלה מקובץ snapshot במנהל AVD), הסימולטור משבית את השמירה האוטומטית של קובצי snapshot של Quickboot ואת השמירה של קובצי snapshot של Quickboot ביציאה. כך מצמצמים את הסיכוי שתמונת המצב של Quickboot תתווסף בטעות, ומונעים נתיבי חזרה איטיים שלא משתמשים בתמונות מצב של Quickboot שמגובות בקובץ.

QEMU 2.12

שינינו את הבסיס של הגרסה שלנו ל-QEMU מ-QEMU 2.9 ל-QEMU 2.12. העדכון הזה כולל את השינויים הבאים ב-QEMU:

ריכזנו כאן כמה מהשינויים המשמעותיים שמשפיעים על Android Emulator:

  • x86: gdbstub מספק עכשיו גישה למרשמי SSE.
  • קובצי אימג' של דיסקים: נעילת קובצי אימג' מתווספת ומופעל כברירת מחדל. כמה תהליכי QEMU לא יכולים לכתוב באותו קובץ אימג' כל עוד המארח תומך ב-OFD או בנעילה של POSIX, אלא אם צוינו אפשרויות אחרות.
  • qemu-img: qemu-img resize תומך בהקצאה מראש של החלקים החדשים בתמונה.
  • עכשיו יש תמיכה ב-QCOW2 shrinking ב-qemu וב-qemu-img.

נגישות

  • תוקנו בעיות שקשורות לקוראי מסך, והוספה תמיכה טובה יותר בכלים האלה בממשק המשתמש של הקלטת המסך ושל צילום המסך.
  • שיפרנו את הנגישות של סמלי ההתראות של הפעלה מהירה למשתמשים עם עיוורון צבעים.

גרפיקה

  • תוקנה בעיה של גישה לזיכרון מחוץ למגבלות, שעלולה להתרחש למצביעים של מערכי קודקודים ב-OpenGL ES.
  • חלק ממעבדים גרפיים ישנים יותר לא תמכו ב-OpenGL 2.1 ואילך (הדרישה), או שהיו להם בעיות מהימנות אחרות. הבעיות האלה עלולות לגרום לכך שהמכונה הווירטואלית תקרוס בזמן ההפעלה, תתקשה או לא תהיה ניתנת לשימוש בהגדרת ברירת המחדל של ה-GPU. מעכשיו, אם ה-GPUs האלה נמצאים בשימוש, הסימולטור עובר באופן אוטומטי למעבד הגרפיקה של Swiftshader.
  • תוקנה בעיה שגרמה לכך שהמכונה הווירטואלית לא פרסמה את framebuffer הנכון אם FBO != 0 היה קשור בזמן eglSwapBuffers.
  • תוקנה בעיה שבה המסך הווירטואלי של Android הופיע רק בפינה הימנית העליונה. לדעתנו, הסיבה לכך היא הגדרה שגויה של משתני הסביבה של Qt. מעכשיו, המהדר מבטל את כל משתני הסביבה שקשורים להתאמה של Qt.
  • תוקנה בעיה שבה הסימולטור קרס במצבים מסוימים בזמן טעינת אפליקציות GLES1 מקובץ snapshot.
  • תוקנו בעיות של בו-זמניות ב-OpenGL והפעלת שרשורי רינדור שעלולות לגרום לזיהוי כפול של זיכרון או לנתונים פגומים.
  • מעכשיו, Android Emulator תומך בתמונות טקסטורה דחוסות מסוג ASTC LDR (GL_KHR_texture_compression_astc_ldr) בתמונות מערכת עם רמת API 28 ואילך.
  • עכשיו רוב מעבדי ה-GPU המודרניים אמורים להיות מסוגלים להפעיל את המהדר עם OpenGL ES 3.x מופעל כברירת מחדל, בלי להשתמש בדגל התכונה GLESDynamicVersion.
  • -gpu guest (עיבוד בתוכנה בצד האורח) יצא משימוש. קובצי האימג' של המערכת ברמת API 28 ואילך עוברים עכשיו באופן אוטומטי לשימוש ב-Swiftshader במקום ב-Skia (-gpu swiftshader_indirect).
  • אם מפעילים את הסימולטור משורת הפקודה באמצעות הדגל -no-window, מעבד התמונות שמוגדר כברירת מחדל הוא עכשיו Swiftshader.

מיקום

  • מעכשיו אפשר לעדכן את המיקום של הכיוון בנוסף למיקום קו הרוחב וקווי האורך. החיישן הווירטואלי של המגנטומטר מתאים את עצמו באופן דינמי לצפון המגנטי על ידי הסקת תנועה במהלך הפעלת קובץ GPX או KML.
  • עכשיו אפשר להגדיר את מהירות המכשיר בדף 'מיקום'.
  • כשמפעילים קובץ GPX או KML, המהירות מוגדרת באופן אוטומטי ומתאפסת בסיום ההפעלה.
  • הגובה כבר לא מוגבל לטווח של -1,000 עד 10,000 מטרים.
  • תוקנה בעיה שבה המיקום הווירטואלי ב-GPS לא התעדכן באופן קבוע, אלא אם חלון אמצעי הבקרה המורחבים נפתח לפחות פעם אחת.

מצלמה

ב-Windows יש עכשיו תמיכה במצלמות רשת נוספות, כי בסימולטור מתבצע שינוי דינמי של הגודל של התמונות מהמצלמה שנשלחות מהמצלמת הרשת. התכונה הזו גם מונעת שגיאות בהעברת המסגרות שגורמות להקפאה של המהדר.

חנות Play

כדי לטפל בבעיות של מחסור במקום בדיסק בתמונות של חנות Play, מעכשיו האמולטור משנה באופן אוטומטי את הגודל של מחיצה userdata ל-6GB כשהוא פועל עם AVD חדש של חנות Play.

תיקונים ושיפורים כלליים באיכות

  • חלק מהמשתמשים דיווחו שהאמולטור פועל לאט. זיהינו סיבה אפשרית אחת לכך: בספרייה הזמנית של הסימולטור נצברים יותר מדי קבצים לא עדכניים. כפתרון עקיף, הסימולטור לא שומר יותר בספרייה הזו קבצים לבדיקת פעילות של ADB. עם זאת, יכול להיות שגם מחיקת התוכן של התיקייה הזו תעזור. התיקייה נמצאת באחד מהמיקומים הבאים, בהתאם למערכת ההפעלה:
    • ב-Windows: ‏ C:\Users\<username>\AppData\Local\Temp\AndroidEmulator\*
    • macOS או Linux: /tmp/android-<username>/*
  • אם לא ניתן להפעיל את הסימולטור כי אין מספיק זיכרון RAM פנוי, תוצג עכשיו הודעת שגיאה. אם אתם משתמשים ב-Windows ומבחינים שיש לכם זיכרון RAM פנוי, אבל אתם עדיין לא מצליחים להפעיל את הסימולטור, יכול להיות שחרגו מהחיוב על ההתחייבות. לקבלת עזרה בנושא הזה, אפשר לעיין בדף פתרון בעיות במהדורת האדמין.
  • אפשרות שורת הפקודה -sysdir מבטלת עכשיו כראוי את ספריית קובץ האימג' של המערכת שהמערכת הסיקה.
  • מודם וירטואלי תומך עכשיו בשאילתה +MAI של פרטי הפעילות של המודל.
  • תוקנו בעיות שונות שקשורות לדליפות זיכרון, לזיכרון פגום ולשימוש במעבד (CPU). אם נתקלתם בקריסות, בזיהום זיכרון או בשימוש גבוה במיוחד במשאבים, תוכלו ליצור דיווח במעקב אחר בעיות.
  • תוקנה בעיה שהופיעה שוב ב-macOS 10.14, שבה שימוש באוזניות Bluetooth עם הסימולטור גרם לירידה באיכות האודיו באופן כללי. כדי למנוע זאת, מעכשיו האמולטור לא משתמש באודיו ב-Bluetooth כשהוא פועל ב-macOS. (בעיה 37070892)
  • תוקנה בעיה ב-Windows שבה השעון של המהדר לא היה באזור הזמן הנכון.
  • תוקנו בעיות של איטיות ותקיעות במהלך ההפעלה של המהדמנים במערכות Linux עם דיסקים קשיחים מסתובבים (HDD).
  • תוקנו כמה אזהרות על הידור שעלולות להוביל לפגיעה בסטאק ב-macOS.
  • תוקנו בעיות שעלולות לגרום לדיווחים מטעים על תקיעות.
  • תוקנה בעיה בהרס של מאגרי שרשורים שעלולה לגרום לקריסה אם אחד מהשרשורים לא נוצר בהצלחה.
  • תוקנה בעיה ב-macOS שבה שעונים לא היו מהימנים, מה שהוביל להתנהגות מוזרה ולתקיעויות. אם אתם נתקלים בבעיות שקשורות להקפאה של המהדר ב-macOS, תוכלו ליצור דיווח בכלי למעקב אחר בעיות.
  • תוקנה בעיה שבה סגירת המהדר נמנעה מלהשבית את ממשק המשתמש, אבל לא סגרה את המהדר בפועל.
  • תוקנו בעיות שקשורות לקריסות sporadique, כולל ביטול הפעולה בגלל פתיחת יותר מדי מופעים של /dev/urandom.
  • תוקנה בעיה שגרמה לכך שהמכונה הווירטואלית לא הצליחה להתחיל לפעול אחרי הפעם הראשונה אם ה-ADB הופסק בכוח.
  • הגרסה המאוחדת ל-MIPS הוסרה. אם עדיין דרושה לך MIPS, עליך ליצור דיווח בכלי למעקב אחר בעיות.
  • תוקנה בעיה שגרמה לכך שחיבורי ADB עלולים להיפגם במהלך טעינת קובץ snapshot.
  • תוקנה בעיה שבה חלון הסימולטור הציג תמונת רפאים או טלפורט מחוץ למסך כשהמשיכו קובץ snapshot שבו כיוון המכשיר היה שונה מכיוון ברירת המחדל של ה-AVD.
  • תוקנו בעיות שקשורות לקריסות במהלך שמירת קובצי snapshot.
  • ב-Linux, מערכות קבצים מסוג btrfs עלולות לגרום להאטה קיצונית כי הסימולטור שומר באופן אוטומטי קובצי snapshot ומשתמש ב-copy-on-write למכשירי הדיסק הווירטואליים שלו. מומלץ לנקות את הספרייה ~/.android/avd ולהריץ את הפקודה הבאה בספרייה ~/.android/avd הריקה:
    chattr +C
    
    הפעולה הזו יוצרת קובצי snapshot חדשים בתיקייה שבה האפשרות 'העתקה בזמן כתיבה' מושבתת.

HAXM 7.3.2

רצינו להזכיר שוב את HAXM 7.3.2 כי צריך להתקין אותו כדי שתמונות מערכת מהזמן האחרון יפעלו כראוי במהלך ההדמיה. הגרסה HAXM 7.3.2 אמורה להיות זמינה בערוץ היציב, ואפשר גם להתקין אותה באופן ידני בכתובת https://github.com/intel/haxm/releases.

ריכזנו כאן כמה מהבעיות שגרסה הזו של HAXM פתרה:

  • תוקנו קריסות אקראיות של מערכות הפעלה של אורחים שמשתמשות בליבה של Linux מהדורה עדכנית (4.6 ואילך). לדוגמה, Ubuntu 18.04‏ (#39, ‏ #74).
  • תוקן באג במהנת ההוראות של x86 שעלול להוביל לקריסה של המארח (מספר הבעיה 93).

הוצאה משימוש של Windows 32-bit

בגלל השימוש הנמוך ועלויות התחזוקה הגבוהות, אנחנו מתכננים להוציא משימוש את הגרסה ל-32 ביט של Android Emulator שפועלת ב-Windows. לפני ההסרה של הגרסה ל-32 ביט של Android Emulator ותום חייה, נשיק תוכנית מעבר. עם זאת, אנחנו מבקשים לקבל מכם משוב או לשמוע מהן הבעיות שלכם לגבי השינוי העתידי הזה.

אם אתם משתמשים כרגע בגרסה של Android Emulator ל-32 ביט שפועלת ב-Windows, תוכלו להודיע לנו על כך בכלי למעקב אחר בעיות ולציין איך אנחנו יכולים לעזור לכם בעתיד.

27.3.10 (אוגוסט 2018)

העדכון הזה כולל את תיקון הבאג הבא:

תיקון של הגדרת נפח ה-RAM

חלק מהמשתמשים דיווחו שהאמולטור פועל לאט. זיהינו גורם אפשרי אחד שבו גודל ה-RAM של ה-AVD הוגדר בצורה שגויה בקובץ config.ini של ה-AVD.

כדי לצמצם את הבעיה הזו, במהלך ההרצה במהדורת האדמין של הסימולטור, נפח ה-RAM המינימלי של תמונות שמשתמשות ברמת API 26 ואילך מוגדל לרמת ברירת המחדל של Android Studio, שהיא 1,536MB. אם הקובץ config.ini של ה-AVD לא מציג את hw.ramSize במיליבייט, צריך ליצור דיווח בכלי למעקב אחר בעיות. הקובץ config.ini נמצא במיקום הבא:

~/.android/avd/<avdname>.avd/config.ini

27.3.9 (יולי 2018)

העדכון הזה כולל את השיפורים ותיקוני הבאגים הבאים:

הודעות שגיאה משופרות ל-Windows Hypervisor Platform

משתמשים מסוימים נתקלו בקשיים באבחון הסיבה לכך שפלטפורמת ה-hypervisor של Windows‏ (WHPX) לא הצליחה להתאפס כשהפעילו אמולטור WHPX. כדי לעזור לכם לאבחן את הבעיות האלה, הוספנו הודעות שגיאה מפורטות יותר. כדי להפעיל את הודעות השגיאה האלה, מריצים את הסימולטור משורת הפקודה באמצעות הדגל -verbose.

תיקונים כלליים

  • תוקנו שגיאות OpenGL שמתרחשות בזמן טעינת צילום מסך באפליקציית המצלמה.

27.3.8 (יולי 2018)

העדכון הזה כולל כמה תכונות חדשות, שיפורים בתכונות קיימות ותיקוני באגים.

תמונות מצב

מעכשיו אפשר לשמור כמה קובצי snapshot של AVD להגדרת מכשיר נתונה, ולבחור איזה מהקובצים האלה יהיה נטען כשמפעילים את הסימולטור.

החל מגרסה Android Studio 3.2 Canary 13, כל הגדרת מכשיר כוללת אמצעי בקרה בהגדרות המתקדמות בתיבת הדו-שיח של הגדרת המכשיר הווירטואלי, שבאמצעותו אפשר לציין איזו קובץ snapshot של AVD יהיה צריך לטעון כשמפעילים את ה-AVD.

כדי להתאים את ההרחבה הזו של התכונות של קובצי snapshot, הוספנו את הקטגוריה Snapshots (קובצי snapshot) לתיבת הדו-שיח Extended controls (אמצעי בקרה מורחבים). בחלונית החדשה הזו יש פקדים לשמירה ולטעינה של קובצי snapshot של AVD, כולל הפקדים לשמירה ולטעינה של קובץ ה-snapshot לטעינה מהירה, שהיו בעבר בחלונית Settings.

אתם יכולים לערוך את השם והתיאור של כל קובץ snapshot ששומרים.

פרטים נוספים זמינים במאמר Snapshots.

HAXM 7.2.0

HAXM 7.2.0 זמין עכשיו בכל הערוצים.

העדכון הזה כולל תיקוני באגים ותמיכה משופרת בכמויות גדולות של זיכרון RAM. בנוסף, עם עדכון HAXM הזה ובאמצעות Emulator מגרסה 27.3 ואילך, תוכן קובצי ה-snapshot נטען ב-RAM על פי דרישה במקום לטעון את קובץ ה-snapshot כולו כשהמכשיר הווירטואלי מופעל. השינוי הזה אמור לקצר משמעותית את הזמן הנדרש לטעינה של קובץ snapshot.

פרטים נוספים זמינים במאמר הגדרת האצת VM.

27.2.9 (מאי 2018)

העדכון הזה כולל כמה תכונות חדשות, שיפורים בתכונות קיימות ותיקוני באגים.

הקלטת מסך

עכשיו אפשר להקליט וידאו ואודיו מ-Android Emulator ולשמור את ההקלטה כקובץ WebM או כקובץ GIF מונפש.

פקדי הצילום של המסך נמצאים בכרטיסייה צילום מסך בחלון פקדים מורחבים.

טיפ: אפשר גם לפתוח את הפקדים של הקלטת המסך על ידי הקשה על Control + Shift + R (‏Command + Shift + R ב-Mac).

כדי להתחיל להקליט את המסך, לוחצים על הלחצן התחלת ההקלטה בכרטיסייה הקלטת מסך. כדי להפסיק את ההקלטה, לוחצים על הפסקת ההקלטה.

הפקדים להפעלה ולשמירה של הסרטון המוקלט נמצאים בתחתית הכרטיסייה הקלטת מסך. כדי לשמור את הסרטון, בוחרים באפשרות WebM או GIF בתפריט שבתחתית הכרטיסייה ולוחצים על שמירה.

אפשר גם לצלם ולשמור הקלטת מסך מהמכונה הווירטואלית באמצעות הפקודה הבאה בשורת הפקודה:

adb emu screenrecord start --time-limit 10 [path to save video]/sample_video.webm

צילומי מסך

אפשר לצלם את המסך משורת הפקודה באמצעות אחת מהפקודות הבאות:

  • screenrecord screenshot [destination-directory]
  • adb emu screenrecord screenshot [destination-directory]

צילומי המסך נשמרים בפורמט PNG.

מצלמת סצנה וירטואלית ו-ARCore

פיתוח ובדיקה של אפליקציות מציאות רבודה (AR) באמצעות ARCore קלים עכשיו יותר מתמיד בעזרת המצלמה החדשה של סצנות וירטואליות, שמאפשרת לכם להתנסות בחוויית ה-AR בסביבה וירטואלית.

מידע נוסף על השימוש במצלמה של הסצנה הווירטואלית במהלך ההדמיה זמין במאמר הפעלת אפליקציות AR במהדמנת Android.

תמונות של חנות Google Play במכשירי Pixel

Google Play Store מופעל עכשיו בתמונות של מכשירי Pixel ו-Pixel 2. האפשרות הזו מסומנת ב-AVD Manager ב-Android Studio מגרסה 3.2 ואילך באמצעות הלוגו של Google Play בעמודה Play Store. במכונות AVD שבהן חנות Google Play מופעלת מופיע הכרטיסייה Google Play בתיבת הדו-שיח אמצעי בקרה מורחבים, עם לחצן נוח לעדכון Google Play Services במכשיר.

תמונות מצב

עכשיו אפשר לטעון קובץ snapshot של Quick Boot בלי להפעיל מחדש את המהדמ. כדי לטעון קובץ snapshot, פותחים את החלון Extended Controls בדף Settings ולוחצים על הלחצן Load Now.

ביצענו שיפורים רבים בטעינה ובשמירה של קובצי snapshot כדי לשפר את היעילות של השימוש במשאבים ולצמצם את משך הזמן של כל פעולה. אם עדיין חל זמן שמור יוצא דופן לשמירה, צריך לדווח על הבעיה ולציין את פרטי המעבד, ה-RAM וההגדרות של כל תוכנת אנטי-וירוס, חומת אש או תוכנת אבטחה שפועלת.

רינדור באמצעות Skia

כשמשתמשים בתמונות ל-API 27 ואילך, הסימולטור יכול להציג את ממשק המשתמש של Android באמצעות Skia, שמאפשרת רינדור חלק ויעיל יותר.

בשלב הזה, כדי להשתמש ב-Skia צריך להפעיל אותו באופן מפורש.

כדי להפעיל את רינדור Skia, משתמשים בפקודות הבאות ב-adb shell:

  su
  setprop debug.hwui.renderer skiagl
  stop
  start

מצלמה

ב-Windows, מעכשיו Android Emulator משתמש ב-Media Foundation כקצה העורפי של מצלמת האינטרנט, וכך משפר באופן משמעותי את הביצועים ואת קצב הפריימים של הצילום במצלמת האינטרנט, עד 720p‏ 30FPS.

במחשבי Mac, עכשיו אפשר להשתמש במצלמת האינטרנט webcam0 ובמצלמת האינטרנט webcam1 יחד.

שונות

אפשרות שורת הפקודה -phone-number-prefix השתנתה ל--phone-number [number], שמאפשרת להגדיר את מספר הטלפון המלא.

עכשיו אפשר להשתמש בכתובות SMS אלפאנומריות.

תיקונים

  • הגרסה ל-Linux של Android Emulator נוצרת עכשיו באמצעות ערכת כלים מודרנית של C++‎‏ Clang. השינוי הזה מתקן את הבעיה שבה הסימולטור לא מצליח להתחיל בגלל שגיאות ב-libGL וב-libstdc++.
  • תוקנו כמה סיבות לקריסות ולתקיעויות.
  • כדי למנוע קריסות וחסימות שנובעות ממחסור במקום פנוי בדיסק, מעכשיו במהלך ההפעלה המהירה ייבדק אם יש מספיק מקום פנוי בדיסק, והיא לא תתחיל אם אין לפחות 2GB פנויים.
  • תוקנה בעיה שגרמה לכך שלא ניתן היה להריץ רינדור של משחקים מסוימים ב-Unity.
  • תוקנה בעיה ב-DNS שגרמה לכך שהמכונה הווירטואלית לא הצליחה להתחבר לרשת.
  • תוקנה בעיה שגרמה לכך ששינויים באחסון הפנימי שהוקצה ל-AVD דרך תיבת הדו-שיח של הגדרת המכשיר הווירטואלי לא יפעלו.
  • תוקנה בעיה שבה נוצרים תהליכי adb רבים ולא מושבתים כראוי.
  • תוקנה בעיה שגרמה ללחצני הסיבוב ולחלקים אחרים בממשק המשתמש לא להגיב, אלא אם חלון הפקדים המורחבים היה פתוח.
  • תוקנה בעיה שגרמה לכך שפעולות ההעתקה וההדבקה מהמארח לא עבדו, אלא אם תיבת הדו-שיח של אמצעי הבקרה המורחבים נפתחה לפחות פעם אחת.
  • ריבוע שינוי הגודל של הסימולטור ללא מסגרת עודכן כדי להתאים יותר לעיצוב החזותי של הסימולטור.
  • עכשיו אפשר להשבית את השיחות וה-SMS כאשר מצב הטיסה מופעל.
  • תוקנה בעיה שגרמה להשבתת ה-SMS והפונקציונליות הסלולרית אחרי טעינת קובץ snapshot.
  • לא תקבלו יותר הודעות אזהרה שקריות עם הכיתוב “Unable to open... \pstore.bin. Permission denied.”
  • תוקנה בעיה שגרמה לכך שלא ניתן היה לשנות את המיקום של AVD במסכים מסוימים של Mac.
  • תוקנו בעיות של מסכים ריקים ומוארכים במחשבים חדשים יותר מדגם MacBook Pro, כשמריצים מכונות AVD עם סקינים של Pixel 2 XL.
  • תוקנו בעיות של מסכים ריקים במעבר למצב זום כשהפעילים אמולטור ללא מסגרת.
  • תוקנה בעיה שגרמה לכך שהעיצוב של המכשיר והתוכן של המהדר נגללים לא מסונכרנים כשמגדילים את התצוגה.

אם הבעיות נמשכות, תוכלו לדווח על הבעיה.

27.1.12 (מרץ 2018)

העדכון הזה כולל תיקונים לבעיות הבאות:

  • איכות האודיו ב-Bluetooth נמוכה יותר אחרי הפעלת המהדר. (בעיה 37095756)
  • מיקומים שנשלחו למהדר אחד נשלחו לכל המהדרים. (בעיה 73450633)
  • מיקום ה-GPS שהוגדר באמצעות המסוף בוטל על ידי ערכים שהוגדרו באמצעות אמצעי בקרה מורחבים > מיקום בממשק המשתמש הגרפי. (בעיה 73471760)

אם הבעיות נמשכות, תוכלו לדווח על הבעיה.

בעזרת העדכון הזה, קובץ אימג' של מערכת עדכני וגרסה מקדימות של Android Studio, תוכלו להשתמש ב-Android Emulator כדי להריץ אפליקציות מציאות רבודה שנוצרו באמצעות ARCore. להוראות ולדרישות המפורטות, ראו הרצת אפליקציות AR ב-Android Emulator.

27.1.10 (פברואר 2018)

  • רזולוציית הצילום במצלמה

    עכשיו אפשר לצלם פריימים ב-720p ממצלמת אינטרנט מחוברת.

    כדי לעבוד עם קובצי אימג' של מערכת עם Android 8.1 (API ברמה 27) ואילך, כל מצלמת אינטרנט מחוברת צריכה להיות מסוגלת לצלם פריימים ב-720p.

  • תיקונים

    • תוקנה בעיה שגרמה לפעמים לתמונה מעוותת או ירוקה לגמרי בצילום מצלמת האינטרנט.
    • תוקנה בעיה שגרמה להצגת ההודעה הבאה גם אם לא הייתה תקיעות בפועל: "emulator: ERROR: detected a hanging thread 'Qt event loop'. No response for 15000 ms".

אם הבעיות נמשכות, תוכלו לדווח על הבעיה.

27.1.7 (פברואר 2018)

  • חלון אמולטור ללא מסגרת:

    כברירת מחדל, מעכשיו אמוללטורים עם קובצי סקינים של מכשירים מוצגים ללא מסגרת חלון מסביב. כדי להציג את מסגרת החלון שמקיפה את המכשיר, מפעילים את האפשרות Show window frame around device בחלונית ההגדרות של החלון Extended Controls.

  • שיפורים ב-Quick Boot כדי לשפר את העבודה עם קובצי snapshot של AVD:

    • אפשר לשמור קובץ snapshot של AVD בכל שלב באמצעות הלחצן Save Now בחלונית ההגדרות של תיבת הדו-שיח Extended Controls.
    • ברוב המקרים, האמולטור מפחית את הזמן שנדרש לשמירת קובץ snapshot על ידי שמירת ההבדל בלבד בין המצב הנוכחי לבין קובץ ה-snapshot שנשמר קודם.

    פרטים נוספים זמינים במסמכי התיעוד של Quick Boot.

  • הסימולטור עודכן לשימוש ב-QEMU 2.9.

    בין השיפורים הבולטים:

    • אופטימיזציה של קלט/פלט ונעילה ברמת הפירוט של חוט הקלט/פלט לשיפור הביצועים.
    • תוקנו באגים מ-QEMU 2.8 (26.1.4).
    • הטמעה חדשה של הקצה העורפי של HAXM.

    הרשימה המלאה של השינויים מופיעה ביומן השינויים של QEMU 2.9.

  • הטמעת Swiftshader שתואמת ל-OpenGL ES 3.0:

    מעבד התמונות Swiftshader של הסימולטור עומד עכשיו בדרישות של OpenGL ES 3.0. פרטים על המרת הצבעים של Swiftshader מופיעים בקטע הגדרות > מתקדם בקטע פקדים מורחבים.

  • תיקונים

    • תוקנה בעיה שבה שיתוף הלוח לא עבד אלא אם האפשרות הפעלת שיתוף הלוח הושבתה והופעלה מחדש.
    • תוקנה בעיה של תקיעה בזמן שימוש בקצה העורפי של העיבוד ב-Swiftshader עם מכונות וירטואליות לדימות ברזולוציה נמוכה.

27.0.5 (ינואר 2018)

  • ANGLE לעיבוד ב-Windows מושבת עכשיו כברירת מחדל.

    אם ANGLE פועל טוב יותר, אפשר להפעיל אותו מחדש באמצעות הדגל -gpu angle_indirect בשורת הפקודה. לחלופין, פותחים את החלון Extended controls (אמצעי בקרה מורחבים), עוברים אל Settings (הגדרות) > Advanced (מתקדם) ובוחרים באפשרות ANGLE D3D11 להגדרת ה-renderer של OpenGL ES.

  • תוקנה בעיה שבה הקשה על Shift+B לא מאפשרת להקליד את התו B הגדול.

27.0.2 (דצמבר 2017)

  • התכונה החדשה Quick Boot מאפשרת להפעיל את הסימולטור מהר יותר, על סמך קובץ snapshot של מכונה של AVD.

    הפעלת Quick Boot מופעלת כברירת מחדל בכל מכונות ה-AVD. בפעם הראשונה שמפעילים מכונה וירטואלית ל-Android, היא צריכה לבצע הפעלה קרה (בדיוק כמו הפעלת מכשיר), אבל כל ההפעלות הבאות יהיו מהירות והמערכת תוחזר למצב שבו סגרתם את הסימולטור (בדיוק כמו הפעלת מכשיר).

    כדי לקבוע מתי הסימולטור ישמור קובץ snapshot, פותחים את חלון אמצעי הבקרה המורחבים של הסימולטור ולוחצים על הגדרות. כאן אפשר לבחור אחת מההגדרות הבאות עבור שמירה של מצב האתחול המהיר ביציאה:

    • כן: תמיד שומרים קובץ snapshot של אתחול מהיר כשסוגרים את הסימולטור. זוהי ברירת המחדל.
    • לא: לעולם לא שומרים קובץ snapshot של אתחול מהיר, תמיד מבצעים אתחול קר.
    • Ask: הצגת שאלה אם לשמור תמונת מצב של אתחול מהיר כשסוגרים את האמולטור.

    הבחירה חלה רק על מכשיר ה-AVD הפתוח כרגע.

    מידע נוסף זמין במסמכי התיעוד בנושא הפעלה מהירה.

  • נוספה תמיכה ב-Mac OpenGL ES 3 (לתמונות מערכת עם רמת API 24 ואילך, ממשקי Google API ו-x86 ABI).

  • כדי לשפר את היציבות באפליקציות OpenGL ES 2 ואילך, מעכשיו במהלך ההרצה במהדורת ה-emulator נעשה שימוש בפרופיל הליבה של OpenGL, אם הוא זמין.

  • אפשרויות חדשות לעיבוד באמצעות Swiftshader / ANGLE:

    • -gpu swiftshader_indirect: גרסת Swiftshader מהירה ויציבה יותר שפועלת עם אתחול מהיר.
    • -gpu angle_indirect (Windows בלבד): וריאנט יציב יותר של ANGLE D3D שעובד גם עם Quick Boot.

    האפשרויות הישנות -gpu swiftshader ו--gpu angle הוצאו משימוש. בחלון אמצעי הבקרה המורחבים, האפשרויות SwiftShader ו-ANGLE להגדרת המרת הגרפיקה של OpenGL ES בקטע Settings > Advanced משתמשות עכשיו באפשרויות *_indirect.

  • תיקוני באגים נוספים.

26.1.4 (אוגוסט 2017)

זוהי גרסה משנית עם תיקוני באגים ושיפורים הבאים בהגדרת ה-GPU:

  • הפעלת אנימציית אתחול כשהמכשיר פועל באמצעות כלי הרינדור של ANGLE
  • השבתת GLES3 כשמריצים במעבד גרפי של ANGLE

26.1.3 (אוגוסט 2017)

זוהי גרסה משנית עם תיקוני באגים, שיפורי ביצועים ושינויים קטנים בתכונות.

  • הגרסה הזו נדרשת עכשיו כדי להשתמש בתמונות המערכת העדכניות ביותר של Android 8.0. הם תואמים ל-Treble, וכוללים מחיצות vendor.img נפרדות.
  • הגרסה החדשה של HAXM 6.2.0 זמינה עכשיו (אפשר לבדוק ב-SDK Manager) והיא כוללת את העדכונים הבאים:
    • שיפור השימוש בזיכרון. קבוצת הזיכרון הפעילה המקסימלית שמקושרת על ידי HAXM כבר לא שווה לגודל ה-RAM של AVD. במקום זאת, הזיכרון מחולק לדפים לפי דרישה. כך אפשר להפעיל את הסימולטור בצורה מהימנה יותר במכונות עם נפח זיכרון RAM נמוך יותר.
    • מעכשיו, אפשר להפעיל את הסימולטור עם HAXM 6.2.0 מהר יותר ב-macOS, תוך דילוג על שלב האתחול הארוך.
  • שיפורים בהגדרת ה-GPU
    • תוקנו בעיות במסך שחור בזמן האתחול כשמבצעים עיבוד תוכנה בצד האורח, על ידי חזרה לעיבוד תוכנה בצד המארח באמצעות Swiftshader. בגרסאות האחרונות של קובצי האימג' של המערכות לרמות API 19 עד 25 עם ממשקי Google API, ה-rendering בצד האורח אמור לפעול.
    • תוקנה בעיה שבה הסימולטור הועבר למעבד גרפי בתוכנה בגלל זיהוי של יחידות GPU ישנות של Intel, אבל הסימולטור פועל בפועל ב-GPU נפרד. ה-GPUs שיעברו לשימוש ב-ANGLE או ב-Swiftshader נקבע באופן הבא:
      • למעבדי iGPU ישנים של Intel יש בעיות במנהלי ההתקנים של OpenGL ו-ANGLE D3D. משתמשים עם Intel HD Graphics 3xxx ואילך ישתמשו ב-Swiftshader.
      • משתמשים מסוימים דיווחו על חוסר יכולת להשתמש בתמונות ברמת API 25 בגלל באג שבו 'Pixel Launcher מפסיק כל הזמן'. נראה שזו בעיה בדרייבר בחלק מדגמי Intel HD 4xxx. לכן, הם יועברו לשימוש ב-ANGLE באופן אוטומטי.
    • כדי לקבל את התוצאות הטובות ביותר עם הדמיית GPU, מומלץ להשתמש ב-GPU נפרד של NVIDIA או AMD, או ב-GPU חדש יותר של Intel‏ (Iris, ‏ HD 5xxx,‏ HD 5xx/6xx).
    • תוקנה בעיה שבה הסימולטור לא הצליח להתחיל (הפעלת הסימולטור של OpenGL נכשלה) אם ה-AVD הוגדר עם hw.gpu.mode=host והסימולטור הופעל בלקוח של שולחן עבודה מרוחק.
    • הבהרנו את ההגדרות של 'רמת OpenGL ES API (נדרשת הפעלה מחדש)', והוספנו אפשרות לשדרג לאחור מ-OpenGL ES 3 ל-OpenGL ES 2 אם נתקלים בבעיות או צריך לבדוק ברמות נמוכות יותר של OpenGL ES API.
    • הכלי לרינדור של Mesa הוצא משימוש. מעכשיו, hw.gpu.mode=mesa יועבר באופן אוטומטי לשימוש ב-Swiftshader במארח.
  • שיפורים ל-macOS:
    • מעכשיו, הסימולטור תואם באופן מלא ל-macOS 10.13 High Sierra באמצעות Hypervisor.Framework או HAXM 6.2.0.
    • כדי לשפר את הביצועים ואת התאימות ל-macOS, ה-framework של Hypervisor מופעל עכשיו כברירת מחדל ב-macOS עבור קובצי אימג' של x86‏ 32 ביט. אם נתקלת בבעיות ספציפיות בנושא, עליך לשלוח דוח באג ולצרף את הקובץ HVF = off לקובץ ~/.android/advancedFeatures.ini (אם הקובץ לא קיים, צריך ליצור אותו).
    • תוקנו בעיות שקשורות לאינטרנט או לכישלון לצרף את מנתח הבאגים בזמן השימוש ב-Hypervisor.framework.
    • כדי לשפר את התאימות והביצועים של הצילום במצלמת האינטרנט, החלפנו את צילום המצלמה שמבוסס על QTKit בצילום שמבוסס על מאגר (buffer) ומבוסס על AVFoundation.
  • הוספנו תמיכה ב-Wi-Fi בחלק מתמונות המערכת (כרגע רק ברמת API 25). נקודת גישה בשם 'AndroidWifi' זמינה ומערכת Android מתחברת אליה באופן אוטומטי. כדי להשבית את התמיכה ב-Wi-Fi, מריצים את הסימולטור עם הפרמטר -feature -Wifi בשורת הפקודה.
  • חלק מהמשתמשים הביעו חשש לגבי נפח האחסון הקטן של קובצי האימג' של מערכת Play Store. לכן הגדילנו את הגודל ל-2GB כברירת מחדל (מ-800MB).
  • הוספנו קיצור דרך במקלדת (Ctrl+Shift+U) שפותח את דף ממשק המשתמש של דיווח על באגים ישירות מדף ההגדרות.
  • תוקנה בעיה שבה אם השתמשתם ב-CPU ישן עם Intel x86 EPT אבל בלי UG, האמולטור לא הצליח להפעיל אם הגדרתם יותר מליבת מעבד אחת.
  • תוקנה בעיה שבה HyperV זוהה באופן שגוי אם הסימולטור עצמו פועל במכונה וירטואלית של Xen.
  • תוקנה בעיה שגרמה לכך שהאמולטור יקרוס בזמן ההפעלה בהגדרות מסוימות של Linux.

26.1.2 (יולי 2017)

הגרסה הזו כוללת תכונות חדשות ושיפורי ביצועים.

  • נוספה האפשרות להגדיר הגדרת proxy מותאמת אישית ל-HTTP באמצעי הבקרה המורחבים (לוחצים על עוד , ואז על הגדרות וProxy). כברירת מחדל, במהלך ההפעלה של הסימולטור נעשה שימוש בהגדרות שרת ה-proxy מסוג HTTP של Android Studio, אבל במסך הזה אפשר להגדיר תצורה ידנית של שרת proxy.

  • נוספה תמיכה ב-VNC ל-GPU במצב אורח, כדי שאפשר יהיה לצפות במה שמופיע במהלך ההדמיה ולשלוט בה מרחוק. לדוגמה, אפשר להפעיל את המהדר ולאפשר ל-VNC להאזין לשקע 5901 באופן הבא:

    1. הפעלה: emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1
    2. פותחים תוכנת צפייה ב-VNC, כמו tightvnc viewer, כדי להתחבר ליציאה 5901.

      • כדי להשתמש בלקוח המובנה של Mac לשיתוף מסך, צריך סיסמת VNC כשמפעילים את הסימולטור. כדי להגדיר סיסמה, משתמשים בפקודה הבאה:

        emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1,password -monitor stdio

        לאחר מכן מזינים change vnc password במסוף ומזינים סיסמה.

    בשלב הזה אין תמיכה במצב VNC ב-Android O.

  • הוספנו לחצן דיווח על באג במסך העזרה של הפקדים המורחבים (לוחצים על עוד , ואז על עזרה ועזרה בנושא אמולטור). לחיצה על דיווח על באג פותחת תיבת דו-שיח שבה אפשר לראות את פרטי דוח הבאג, כמו צילום המסך, פרטי ההגדרה של AVD ויומן של דוח הבאג. לאחר מכן תוכלו לשמור את הדוח לעצמכם או לדווח על בעיות במהלך ההרצה במהדורת האדמין.

  • הוספנו חיישן גירוסקופ למהדר ולחלונית החיישנים הווירטואליים. לשם כך, נדרשת קובץ אימג' של מערכת עם תמיכה בגירוסקופ (כרגע ברמות API 24 ו-25).

  • הוספנו DNS מועדף למארח לרשימת ה-DNS של Qemu ב-Windows, כשמספר ממשקי רשת וירטואליים במארח גורמים להצגת מספר כתובות DNS שלא פונקציונליות למהדר.

  • הוספנו תמיכה ניסיונית ב-macOS Hypervisor.Framework לתמונות x86‏ 32 ביט ב-macOS מגרסה 10.10 ואילך באמצעות דגלים של שרת. התמיכה הזו אמורה לשפר את זמן האתחול ואת הביצועים.

    • אם נתקלתם בבעיות, הוסיפו את השורה HVF = off בקובץ ~/.android/advancedFeatures.ini.
  • OpenGL ES 3.x מופעל עכשיו כברירת מחדל בתמונות מערכת וב-GPU של המארח שתומכים ב-OpenGL ES 3. נכון לעכשיו, רק Android O‏ (רמת API 26) ומארחים של Windows/Linux תומכים ב-OpenGL ES 3.

    • אם נתקלתם בבעיות ב-OpenGL ES 3, מוסיפים את השורה GLESDynamicVersion = off בקובץ ~/.android/advancedFeatures.ini.
  • מעכשיו, ב-Emulator נעשה שימוש ב-FBOs של OpenGL מחוץ למסך לכל תהליך הטרנספורמציה, מלבד פרסום התמונה הסופית להצגה. הפעולה הזו אמורה לעזור בפתרון בעיות של עקביות צבעים בפלטפורמות שונות.

  • אחרי שיצאנו לשטח וערכנו ניסויים כדי לבדוק את הבעיה, הגענו למסקנה שהיא עשויה להיות קשורה לאינטראקציה כלשהי בין מנהלי ההתקן הישנים של Intel OpenGL לבין עדכוני Windows. לכן, משתמשים עם Intel HD 4000, ‏ 3000,‏ 2000 (וגרפיקס עיבוד נתונים קשורים) מקבלים עכשיו כברירת מחדל עיבוד באמצעות מעבד גרפיקה מסוג D3D (ANGLE) או Swiftshader (מעבד גרפיקה בתוכנה).

26.0.0 (מרץ 2017)

הגרסה הזו תואמת לרמת API 26. היא כוללת גם כמה שיפורי ביצועים ותיקוני באגים.

גרסה משנית 26.0.3 (מאי 2017)

  • הוספת דגלים של תכונות שניתן לעדכן אונליין כדי לטפל במהירות בבעיות שנובעות מהגדרות חומרה בעייתיות. כך Google יכולה לעדכן את הדגלים בצד השרת כדי להשיק תיקונים ותכונות שתלויים בהגדרות של המשתמשים. אם נתקלתם בבעיות בחומרה ספציפית, תוכלו לדווח על באג כדי שנוכל לבדוק את הבעיה.
  • תמיכה חדשה בקלט רוטורי בתמונות מערכת של Android Wear API ברמה 25. כדי לדמות את החוגה לקלט הנתונים במכשיר Wear, לוחצים על הכרטיסייה Rotary Input בחלון המורחב.
  • עכשיו אפשר לשנות את הגודל של תיבת הדו-שיח של דיווח על קריסות, והיא לא מאפסת את ההגדרה של מתי לשלוח דוחות קריסה ל-אני רוצה לדעת בלי קלט.
  • מעכשיו, במהלך ההרצה של המהדרר של 32 ביט, גודל ה-RAM המקסימלי של ה-AVD חייב להיות 512MB או פחות, כדי למנוע מצב שבו נגמר המרחב במרחב הכתובות הווירטואלי של 2GB.
  • הוספת תמיכה בנתיבים מוחלטים בתמונות של מכונות וירטואליות.
  • נוספת כרטיסייה חדשה בחלון המורחב של התמונות בחנות Google Play, שבה מוצגת גרסת Play Services וכן לחצן לבדיקה אם יש עדכונים ל-Play Services.
  • הוספת תפריט נפתח לבחירת המרת ה-OpenGL בדף ההגדרות של המהדר. אם נתקלתם בבעיות עם מנהל ה-OpenGL במחשב עם Windows, נסו להשתמש באפשרויות ANGLE‏ (D3D11) או ANGLE‏ (D3D9) (נדרשת הפעלה מחדש). אם נתקלתם בבעיות עם מנהל ההתקן של OpenGL במחשב שאינו Windows, נסו להשתמש במעבד הגרפי התוכנה של Swiftshader (נדרשת הפעלה מחדש).
  • תיקון קריסה נדירה בזמן יציאה, כשהמכונה הווירטואלית מקבלת גם את הפקודה exit וגם את הפקודה minimize.
  • תוקנה בעיה שקשורה לשינוי קנה המידה כשמשנים מסכים במחשב Mac. (בעיה 268296)
  • תיקון בעיה שבה האמולטור תופס 300% מעוצמת המעבד ומחזיק בה אחרי שממשיכים את המחשב המארח ממצב שינה או כשהאמולטור פועל במשך זמן רב.
  • תיקון קריסה כשהמכונה הווירטואלית מושבתת.

עדכונים עם HAXM v6.1.1 (מרץ 2017)

הערה: ‏HAXM v6.1.1 זמין למשתמשים ב-Mac דרך SDK Manager החל מ-30 במרץ, והוא יהיה זמין למשתמשים ב-Windows בקרוב.

גרסת 26.0.0 של Android Emulator תומכת ב-HAXM v6.1.1, שכולל את העדכונים הבאים:

  • הפעלת אמולציה של יחידות למעקב אחר ביצועים (PMU). (בעיה 223377)
  • תיקון של היכולת לעבוד לצד VirtualBox ו-Docker במחשבי Mac. (בעיה 197915)
  • שינוי הודעת השגיאה בהתקנה שמוצגת כשתוכנת ההתקנה לא מצליחה לזהות את Intel VT-x ב-Windows, בדרך כלל כי Hyper-V מופעל.
  • נוספה תמיכה בהאצת Android Emulator במכונה וירטואלית של Windows שמבוססת על Hyper-V. כדי לבצע את העדכון הזה, צריך להשתמש בגרסה האחרונה של Hyper-V עם וירטואליזציה בתצוגת עץ מופעלת במכונה המארחת של Hyper-V (זו שמנהלת את המכונה הווירטואלית/האורחת של Windows). צריך להשבית את Hyper-V במכונה האורחת של Hyper-V (המכונת הווירטואלית של Windows).

יחסי תלות

  • Android SDK Platform-Tools גרסה 25.0.4 ואילך.
  • Android SDK Tools גרסה 26.0.0 ואילך.

תכונות חדשות ותיקוני באגים

  • תאימות לרמת API 26.
  • תואם ל-GLES 2.0 במלואו. אם יש לכם GPU מארח עם מנהלי OpenGL תואמים למחשב, מעכשיו הסימולטור עובר 100% מmustpass של Android CTS dEQP-GLES2. התכונה הזו פורסמה בתמונות x86 ברמת API 24 (מהגרסה 11 ואילך), ובקרוב היא תכלול את כל קובצי האימג' של המערכת.
  • שיפור בביצועי ההפעלה של סרטונים. מעכשיו, הסימולטור מאחסן את כל מאגרי הצבעים של הסרטונים בזיכרון המשותף של המארח/האורח, ומבצע את ההמרה הסופית הנדרשת מ-YUV ל-RGB ב-GPU. רוב המערכות אמורות לתמוך עכשיו ברזולוציה של 1080p30. התכונה הזו פורסמה בתמונות x86 ברמת API 24 (מהגרסה 11 ואילך), ובקרוב היא תכלול את כל קובצי האימג' של המערכת.
  • מעכשיו, הסימולטור מבטל את הרישום שלו מרשימת adb devices בצורה תקינה בזמן היציאה, וסוגר יציאות TCP פתוחות במכונות Linux.
  • חיבורי adb אמינים יותר עכשיו. האם מכונה וירטואלית שפועלת מזוהה מהר יותר ולא עוברת יותר לסטטוס 'אופליין' או 'לא מורשה'.

25.3.0 (מרץ 2017)

החל מהגרסה הזו, אמולטור Android יושק בנפרד מ-SDK Tools. הגרסה הזו כוללת מגוון שיפורי ביצועים, תכונות חדשות ותיקוני באגים.

תיקון קטן 25.3.1 (מרץ 2017)

  • תוקנה קריסה שהתרחשה בהגדרות מסוימות של GPU על ידי השבתת GLAsyncSwap כברירת מחדל. התכונה הזו נוספה בגרסה 25.3.0 כדי לשפר את תזמון הפריימים ואת מספר הפריימים לשנייה במשחקים ובסרטונים, אבל היא גורמת לכך שהמכונה לא תעבוד במהירות המלאה בהגדרות מסוימות של מכונות לא ידועות. אפשר להפעיל אותו באופן ידני על ידי פתיחת הקובץ android_sdk/emulator/lib/advancedFeatures.ini והגדרת GLAsyncSwap = on.

יחסי תלות

  • Android SDK Platform-Tools גרסה 24 ואילך.
  • Android SDK Tools גרסה 25.3.0.

תכונות חדשות ותיקוני באגים

  • מנוע ההדמיה עודכן לגרסה QEMU 2.7, כולל כל תיקוני הבאגים האחרונים, ביצועים משופרים ותכונות חדשות.
  • תמיכה חדשה ב-IPv6.
  • מעכשיו, במהלך הרינדור בתוכנה במארח, ב-SwiftShader נעשה שימוש במהלך הרינדור בתוכנה במארח.
  • שיפורים בביצועים של Android Pipe: Android Pipe, תעלת התקשורת הראשית בין הסימולטור לבין מערכת ההפעלה Android, מהירה עכשיו פי כמה, יש לה זמן אחזור נמוך יותר והיא מציעה ביצועים טובים יותר במספר שרשורים. כתוצאה מכך, יש כמה שיפורים בביצועים של הסימולטור, כולל:
    • מהירות משופרת של העברה (push) או משיכה (pull) ב-ADB.
    • תמיכה משופרת בהאצה תלת-ממדית.
    • מהירות תגובה כוללת משופרת של הסימולטור.
    • שיפור בביצועי הגרפיקה.
  • מעכשיו, במהלך יצירת בקשות מהאורח, המעבדה הווירטואלית משתמשת במאגרים בצד ה-GPU (glBindBuffers / glBufferData), וכך מפחיתה את העומס על המעבד באפליקציות מסוימות.
  • תמיכה משופרת באודיו.
  • קלט/פלט מהיר יותר בדיסק: מעכשיו, במהלך שליחת קלט/פלט בדיסק, במהדורת האמולטור נעשה שימוש בשרשור נפרד, וכתוצאה מכך זמן האחזור קצר יותר והתפוקה טובה יותר (מהירות קלט/פלט רציפה גבוהה פי 1.5 ומהירות קלט/פלט של גישה אקראית גבוהה פי 5). כך גם מופחת מספר פעולות השטיפה (flush) בדיסק, וכתוצאה מכך עומס המכשיר הפיזי נמוך בהרבה.
  • מעכשיו, במהלך אתחול הדיסק במכונות Windows, במהדורת הסימולטור נעשה שימוש בקבצים דלילים, וכך מתבצעים אתחולים מהירים יותר גם בפעם הראשונה וגם לאחר מחיקת הנתונים. כשיוצרים או מאפסים מכונה וירטואלית ל-Android, הסימולטור כותב עכשיו 100-200MB של נתונים לדיסק, במקום 2GB או יותר.
  • שיפורים שונים בממשק המשתמש:
    • מעכשיו, במהדורה החדשה של הסימולטור נעשה שימוש ב-Qt 5.7.0, שכוללת תיקוני באגים ושיפורי ביצועים.
    • תהליך האיפוס של ממשק המשתמש לא מנסה יותר לטעון את כל קובצי ההפעלה של המהדר כפלאגינים של Qt, ולכן הוא קצר יותר באופן משמעותי, במיוחד בכונני HDD.
    • האינטראקציות בממשק המשתמש מהירות וחלקות יותר, כולל רוטציה, שינוי גודל החלון וטעינה וסגירה של חלונות עם אמצעי בקרה מורחבים.