Android Emulator כלול ב-Android Studio.
גרסאות של האמולטור שקדמו לגרסה 25.3.0 הופצו כחלק מ-Android SDK Tools.
כדי לוודא שמותקנת אצלכם הגרסה העדכנית ביותר, צריך לבדוק אם יש עדכונים בSDK Manager.
כדי להוריד גרסאות קודמות של Android Emulator, אפשר לעיין בארכיון ההורדות של Emulator.
הערות לגבי גרסאות של Emulator מלפני גרסה 25.3.0 זמינות בהערות לגבי גרסאות של Android SDK Tools.
כדי לראות אילו בעיות תוקנו בגרסאות האחרונות של Android Emulator, אפשר לעיין בבעיות שנסגרו.
לבעיות מוכרות ולפתרון בעיות, אפשר לעיין במאמר פתרון בעיות באמולטור.
גרסה יציבה 35.6.11 (24 ביוני 2025)
שיפרנו את התמיכה ב-GPU של AMD ו-Nvidia ב-Windows וב-Linux עבור הדמיית XR
אפשר להריץ את XR AVD כהטמעה בחלונות הפעלה של Android Studio
שיפור הפרטים בדוח הקריסה ב-Windows כדי לאפשר את ההשלכה המלאה של האמולטור
תיקון באג קריסות של מכשיר Android Emulator XR עם שגיאת Vulkan
תיקון באג libndk_translation.so מבצע הפסקה וגורם לקריסה ב-Arm64AesEncode
35.5.10 Stable (6 במאי 2025)
נוספו בדיקות תאימות נוספות של מעבד עם הודעות שגיאה (לדוגמה: אין מספיק מקום בדיסק)
תוקנו באגים שקשורים לניהול הזיכרון של Vulkan ולתרחישי שימוש לא תקינים
התמיכה בצילום מצב של Vulkan נבדקת ונדלגת בצורה נכונה כשמריצים את המערכת בטרמינל
הוספנו תמיכה בתוסף VK_KHR_multiview ובפורמט הטקסטורה A1R5G5B5
נוסף מכשיר Pixel 9a AVD
35.4.9 Stable (25 בפברואר 2025)
נוסף תפריט נפתח באפשרויות הבקרה המתקדמות להעדפות של מנהל התקן GLES של האורח
[תיקון באג]בעיה מספר #389330750 שליחת SMS לאמולטור עם התו Ñ מפצלת את ההודעה
[תיקון באג]בעיה מספר 382180488 הפונקציה emuglConfig_get_vulkan_hardware_gpu_support_info קורסת בגלל זיהוי של אפס מכשירי Vulkan
הערה: Android XR Emulator זמין רק בגרסאות Canary של Studio
35.3.11 יציב (9 בינואר 2025)
[תיקון באג]בעיה מספר 368059211 גישה תוכנתית ל-VHAL ב-Android Auto OS לא פועלת באמצעות Car Service API
[תיקון באג]בעיה מספר 348598513 לאמולטור יש שיטה ציבורית לא בטוחה לשימוש עם שרשורים בנעילה מרובת שרשורים
[תיקון באג]בעיה מספר 356896486 השבתה מלאה של קריאות ל-Vulkan API כשמריצים עם -feature -Vulkan
35.4.4 Canary (12 בדצמבר 2024)
אמולטור חדש ל-Android XR
הוספנו אמולטור חדש וניסיוני של Android XR לפיתוח ולבדיקה של אפליקציות שנוצרו באמצעות Jetpack XR SDK לאוזניות. במאמר הגדרת Jetpack XR SDK מוסבר איך להתקין את אמולטור ה-XR של Android ואיך להגדיר את סביבת הפיתוח.
האמולטור של Android XR הוא כלי ניסיוני. למרות זאת, החלטנו לשתף אתכם מוקדם כדי לאפשר לכם לבצע בדיקות מוקדם. צפויות בעיות, במיוחד בחלק מההגדרות של כרטיסי מסך ומנהלי התקנים ב-Windows. יכולות להיות גם בעיות שקשורות לבדיקות תאימות של אפליקציות קיימות לנייד בתלת-ממד. המשוב שלכם יעזור לנו לשפר את התכונות הקיימות ולקבוע את סדר העדיפויות של התכונות שנשיק בעתיד.
עד עכשיו, האמולטור של Android XR נבדק בהגדרות החומרה הבאות:
- Mac (ARM)
- Windows 11
- nVidia GPU, 4GB של vRAM, גרסת מנהל ההתקן 553.35 ואילך
- זיכרון RAM של 16GB או יותר
- 8 ליבות או יותר
בעיות מוכרות
אמולטור – יציבות וביצועים:
- במערכות Windows מסוימות עלולות להתרחש נעילות או קריסות קריטיות של המערכת במהלך האתחול או בזמן הפעלת אפליקציות. כדי לוודא שפלטפורמת ה-hypervisor של Windows (WHPX) מופעלת, צריך לפעול לפי המדריך למפתחים של Android Studio להפעלת WHPX.
- בעיות כמו AVD שלא מגיב או רכיבים בממשק המשתמש במחשבים ניידים אחרי מחזור השהיה-הפעלה מחדש (למשל, סגירה של מחשב נייד ופתיחה שלו).
- קריסות מדי פעם כשעוברים בין אפליקציות ממצב מסך הבית למצב מסך מלא
- ממשקי Gemini API עדיין לא זמינים, ואפליקציית תבנית המתחילים של Gemini API תקרוס.
אמולטור – הדמיה של קלט ופלט:
- יכול להיות שהמקלדת הווירטואלית לשדות חיפוש ועריכה תהיה גלויה רק באופן חלקי בשדה הראייה
אי אפשר להזיז רכיבים בכיוון z (פנימה והחוצה מהמסך) באמצעות עכבר ומקלדת
חוסר יציבות בקלט האודיו של המיקרופון במארח AVD עלול לגרום להפעלה מחדש של AVD ולקריסות.
לפעמים יש רעשי סטטי בסאונד או שהוא מעוות.
כשמזיזים את המצלמה מחוץ לסלון הווירטואלי, אפשר לראות שגיאות רינדור.
הצבעים בהגדרות של Windows כהים יותר מהרגיל.
האודיו לא פועל יותר אחרי שהאמולטור לא פעיל ונעילת המסך ב-macOS. (הפעלה מחדש של האמולטור תשחזר אותו).
החיבור לרשת נקטע כשמכונת המארח משנה את רשת ה-Wi-Fi.
גם אם Caps Lock מופעל, עדיין אפשר להקליד אותיות קטנות.
הגלילה באמצעות משטח המגע ב-Mac לא חלקה.
יכול להיות שגלילה באמצעות לחיצה וגרירה ברכיבים מסוימים בממשק המשתמש לא תפעל, וזה מכוון. אם לא, משתמשים בגלגל העכבר כדי לגלול.
טקסט מטושטש, ממשק משתמש ובעיות אחרות ב-Chrome בחלק מהגדרות המערכת של Windows. פתרון עקיף אפשרי: הפעלת WHP.
אמולטור – סימולציה של מטוסים ועוגנים:
- לפעמים העוגנים לא מופיעים מחדש באותו מיקום
- יכול להיות שאי אפשר לעגן חלונות שאפשר להזיז לקירות או לתקרה
- המטוסים המדומה לא תואמים לפריסה הפיזית של החדר התלת-ממדי במצב מעבר
- אזורים מוגבלים להצמדת אובייקטים בחדר וירטואלי
- ארטיפקט קטן שניתן לראות בתצוגת המעבר ב-Windows
- במקרים מסוימים, הצבת עוגנים עלולה לגרום לקריסת האפליקציה
- יכול להיות שיופיעו קווים שחורים מעל האפליקציות כשמזיזים אותן קרוב לקרקע ב-Windows
אמולטור – אחרים:
- האמולטור מופעל רק במצב 'עצמאי'. מצב 'הטמעה' (ממשק משתמש מוטמע) עדיין לא נתמך.
- התחברות באמצעות חשבונות באמולטור ב-Windows עלולה לגרום לאמולטור להפסיק להגיב
- תוכן ממשק המשתמש של חלונות עשוי להיעלם אחרי שינוי הגודל (פתרון עקיף: לחיצה על הלחצן 'דף הבית')
- באפליקציה JXRCore ActivityPanelTest, החלונית המשנית לא מוצגת בהתחלה
- יכול להיות שפריטים בהגדרות המהירות ייעלמו מהגדרות המערכת אחרי תקופה ארוכה.
- יכול להיות שממשק המשתמש של האמולטור יופיע מחוץ לאזור המסך בהתחלה. אם כן, משנים קצת את הגודל של חלון האמולטור והוא אמור לחזור למקומו.
- יכול להיות שהאמולטור לא יופעל כשמשתמשים ב-Chrome Remote Desktop ב-Windows
- בשלב הזה, האמולטור לא תומך ב-OpenXR, ואפליקציות OpenXR עלולות לגרום לקריסת האמולטור
- כשלים נדירים כשמנסים לשלוח דוחות על באגים באמצעות ההגדרות המורחבות של Android Studio ב-Windows
- הסמל 'חזרה לניווט' לא מוצג בצורה תקינה באפליקציית ההגדרות עד שהסמן מתקרב אליו ב-Mac
- במקרים מסוימים, יכול להיות שתהיה שגיאה בבנייה כשמשתמשים במודול Baseline Profile כחלק מפרויקט תבנית XR
- הנגישות של XR Talkback משולבת עד כה רק באופן חלקי באמולטור
אפליקציית Scene Viewer:
- הזזת רכיבים ב-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
- נוספה תמונת מערכת חדשה לטאבלט עבור Vanilla Ice Cream (API 35)
35.1.20 (29 באוגוסט 2024)
- נוסף מכשיר Pixel 8a AVD
- תיקוני באגים שונים במכשירים מתקפלים
- עדכון 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.
- [Bug Fix] לפעמים תמונת המצב נתקעת באמולטור מוטמע
- [תיקון באג] הלחצנים 'לא' ו 'ביטול' לא פועלים כמו שצריך בצילום מסך
- [תיקון באג] הלחצנים של לוח החצים לא פועלים
- [תיקון באג] תוקנה הבעיה שזוהתה ב-Windows ומונעת את הפעלת האמולטור בתנאים מסוימים כשמשתמשים במצבי GPU עם ANGLE, ומוחזרת הודעת השגיאה 'האתחול של אמולציית GL נכשל' ביומן. שימו לב: יכול להיות שעדיין תופיע השגיאה הזו בגרסה הזו אם תפעילו את האמולטור באמצעות שורת הפקודה עם האפשרות
-gpu swangle_indirect
. אם עדיין רוצים להפעיל את האמולטור באמצעות שורת פקודה ב-Windows עם עיבוד גרפי של תוכנה בגרסה הזו, צריך להשתמש ב--gpu swiftshader_indirect
- [תיקון באג] קיצור הדרך למיקום במקלדת טוען מפה שלא ניתן להשתמש בה
- [תיקון באג] כשמגדירים מיקום, חסר הדו-שיח 'שמירת המסלול'
34.2.13 (30 באפריל 2024)
נבדק באמצעות Android Studio Jellyfish Stable.
- עדכון ל-Qt 6.5.3
- תאימות לעדכונים של Google Maps API שמשמשים בתכונות המיקום בבקרה המורחבת של האמולטור, שמתרחשים בסוף מאי.
- תיקונים של קריסות שמשפיעות באופן משמעותי
- תיקונים שונים במכשירי Pixel AVD
- עדכון של ספריית הגרפיקה שמשמשת לעיבוד תוכנה
- [Bug Fix]Issue 225541819 Starting Chrome crashes Emulator on 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.
- תיקון קריסה של Emulator ב-AVD של Pixel Fold כשהוא נפרש במהלך הקלטת מסך.
- תוקנה בעיה שבה ב-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 החל מתמונת המערכת עם API 34
- בקשה לתכונה: אפשרות להשבית את תנועת הצביטה לשינוי גודל או להקצות מחדש את מקש הקיצור שלה
- [תיקון באג] בעיה מספר 302562962 תיקון קריסת מצלמת האינטרנט של האמולטור בשימוש ב-MacOS Sonoma
- [תיקון באג] בעיה מספר 293503871 תוקנה בעיה שבה ההגדרה 'מיקרופון' לא נשמרת כשמפעילים מחדש את האמולטור
- [תיקון באג] בעיה מספר 270386314 תיקון שגיאה בהנפשה שבה סרגל הצד נשאר פתוח אחרי שמקטינים את מסך ה-AVD
- [תיקון באגים] בעיה מספר 154896775 תיקון כלי לשליחת באגים
32.1.15 (29 באוגוסט 2023)
נבדק באמצעות Android Studio Giraffe Patch 1 ו-Hedgehog Canary 16.
- עמידה בדרישות של GAS HW בנוגע לחיישנים ב-AAE Emulator
- [Bug Fix] Issue #266201208 Hebrew SMS is not sent on API 33
- [תיקון באג] בעיה מספר 257097404: האמולטור לא מציג את השעה הנכונה אחרי שהמארח מתעורר ב-API 29 וב-API 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.
- [Bug Fix] Issue #243456582 "Android releases after API 30 might not start correctly in emulator on Mac M1 machines"
32.1.13 (22 במאי 2023)
נבדק באמצעות Android Studio Hedgehog Canary 2, Giraffe Beta 1 ו-Flamingo Stable.
- הוספת תמיכה במכשירי Pixel Fold וב-Pixel Tablet AVD.
- שיפור בעיה שגורמת לקריסה של gLinux.
- [תיקון באג] בעיה מספר 215231636 'האמולטור עם API מעל API 30 לא פועל במעבד Intel דור 12'.
- [תיקון באג] בעיה מספר 275397905 רמה גבוהה של קריסה ב-Android Emulator M1 כשמעבירים את המיקוד של הסמן אל האמולטור ומחוצה לו שוב ושוב.
- בעיה מוכרת בהפעלת AVD כשקיים דוח קריסה של אמולטור חדש יותר. מידע נוסף זמין במאמר בנושא פתרון בעיות באמולטור.
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.
31.3.13 (27 באוקטובר 2022)
נבדק באמצעות Android Studio Dolphin, Electric Eel Beta 2 ו-Flamingo Canary 5.
- [תיקון באג] בעיה מספר 249948338: פרמטר אזור הזמן לא פועל
- [תיקון באג] בעיה מספר 249366543: האפשרות Emulator -dns-server לא פועלת אחרי API 31
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 של אמולטור מוטמע בחלון Extended Controls
- [תיקון באג] בעיה מספר 183139207: בעיות באודיו שקשורות להפעלת המיקרופון על ידי האמולטור
- [תיקון באג] בעיה מספר 229764024: באג ב-AVD שגורם לבעיות בהתנהגות ממשק המשתמש
- [תיקון באג] שגיאה בהפעלת AVD עם API 33 ב-Mac M1.
- [תיקון באג] בעיה מספר #243053479: מהירות רשת איטית אחרי עדכון של Emulator
- [תיקון באג] בעיה מספר 244617627: מיקום במפות לא פועל ב-Windows וב-Linux
- [תיקון באגים] בעיה מספר 232971796: הלחצן 'התקשרות למכשיר' לא פועל בדף 'טלפון' בקטע 'אמצעי בקרה מתקדמים'
- עדכון Android Emulator ל-minigbm
- העברה של סקריפטים לבנייה אל 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 עם חלופות
- [תיקון באג] תיקון שגיאת בנייה ב-gcc8
31.2.9 (23 במרץ 2022)
נבדק באמצעות Android Studio Dolphin Canary 7.
העדכון הזה כולל את התיקון הבא:
- [תיקון באג] התעלמות מלחץ הזיכרון כששומרים תמונת מצב ב-M1
31.2.8 (7 בפברואר 2022)
נבדק באמצעות Android Studio Bumblebee Patch 1 ו-Chipmunk Canary 6.
העדכון הזה כולל את השיפורים והתיקונים הבאים:
- [תיקון באג] אי אפשר להיכנס לאפליקציות
- [תיקון באג] בעיה מספר 215368358: הפעלה מחדש של adb בפלטפורמת Intel תגרום לקריסת ה-AVD עם ההודעה vcpu shutdown request
31.2.7 (1 בפברואר 2022)
נבדק באמצעות Android Studio Bumblebee Patch 1 ו-Chipmunk Canary 6.
העדכון הזה כולל את התיקון הבא:
- [Bug fix] שגיאת תקיעה של האמולטור במכונות M1.
31.2.6 (20 בינואר 2022)
נבדק באמצעות Android Studio Arctic Fox, Bumblebee Beta 4 ו-Chipmunk Canary 6.
העדכון הזה כולל את השיפורים והתיקונים הבאים:
- נוספו לחצני Wear לאמולטור Wear OS.
- הוספנו אפשרות לערוך את כל מאפייני הרכב בכרטיסייה VHAL.
- [תיקון באג] אימות חשבון Google נכשל בגרסה GmsCore v21.42.18.
- [תיקון באג] Netshaper לא פעל בצורה תקינה עם VirtioWifi.
- [תיקון באג] פקודת המסוף של העכבר באירוע לא פעלה.
- נוספה בדיקת KVM ליצירת AVD מקומי.
31.1.3 (18 בינואר 2022)
העדכון הזה כולל את השיפורים והתיקונים הבאים:
- הפעלנו יציאות של מסוף ל-Fuchsia.
- כשמשנים את הגודל של חלון שמוצג בכמה מסכים, הכיוון לא נלקח בחשבון.
- Wi-Fi: נוספה תמיכה בסינון מנות unicast על סמך כתובת MAT mac.
- Wi-Fi: תוקנה קריסה שמתרחשת כשמשתמשים ב-vmnet.
30.9.5 (15 בדצמבר 2021)
העדכון הזה כולל את השיפורים והתיקונים הבאים:
- נוספה אפשרות לשנות בקלות את הגודל לחלון בגודל של מחשב או טאבלט.
- הוספנו תמיכה בקלט מריבוי נקודות מגע ממכשירים מארחים תואמים.
- VirtioWifi: נוספה תמיכה ברשת tap.
- הפעלת קלט סיבובי לתמונות מערכת של Wear.
- תוקנה הבעיה בהגדרת האודיו של gRPC.
- עדכנו את ההפעלה של SensorReplay Emulator כדי לתמוך בחיישני Android רגילים.
- חיבור האמולטור לציוד היקפי ולמכשירים באמצעות USB עם העברת נתונים דרך USB.
30.4.5 (23 בפברואר 2021)
העדכון הזה כולל את השיפורים והתיקונים הבאים:
- macOS: תוקנו בעיות בעיוות של קלט אודיו.
- נוספה תמיכה ב-virtio-vsock במרחב המשתמש.
- תמונות מערכת עתידיות ישתמשו ב-virtio-console עבור logcat והודעות ליבה.
- האצת הרינדור של Vulkan.
- נוספה תמיכה בניפוי באגים של תמונת מצב במקרה של כשל בבדיקה.
- virtio-gpu: עודכנו ההגדרות כדי לתמוך ב-enums העדכניים של משאבי blob.
- הוספנו תמיכה בצילום תמונת מצב להעברות גרפיות מסוג asg.
- macOS: נוספה תמיכה בבנייה מול 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.חיישן הציר מופעל עכשיו כברירת מחדל.
אם מוגדר מכשיר מתקפל, האמולטור שולח עכשיו עדכונים של חיישני זווית הציר ושינויים בתנוחה לאורח. במכשירים מתקפלים קיימים, עכשיו תתבצע עדכון של זווית החיישן והמיקום של הציר כשלוחצים על הלחצנים לקיפול או לפתיחה של סרגל הכלים.
אמולטור למארחי ARM64
קוד המקור של אמולטור Linux תומך עכשיו בהידור צולב ממארחי x86_64 למארחי arm64, ומאפשר הפעלה של תמונות מערכת arm64 עם וירטואליזציה של KVM. נכון לעכשיו, רק
-gpu swiftshader_indirect
(Swiftshader arm64 host rendering) נתמך, אבל אפשר להשתמש גם בספרייה תואמת של libEGL/libGLESv2 של המארח GPU. כדי לעשות זאת, צריך להחליף את lib64/gles_swiftshader בספרייה הזו ואז להפעיל מחדש עם-gpu swiftshader_indirect
. יכול להיות שגם הצילומים לא יפעלו (צריך להוסיף את-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.
- בגלל אופן הפעולה של רינדור האמולטור, אנחנו מעבדים עכשיו את virtio-gpu virtqueue בשרשור vcpu (כי הרינדור מועבר לשרשורים אחרים בכל מקרה). רינדור virtio-gpu יופעל בגרסה עתידית של תמונת המערכת והאמולטור.
- בתמונת מערכת עתידית, האמולטור יוכל להריץ את כל הגרפיקה באמצעות מחסנית מבוססת-virtio-gpu.
תכונות חדשות ושיפורים נוספים
- מעכשיו אפשר להשתמש ב-USB passthrough ב-Windows באמצעות
-qemu -usb -device usb-host,vendorid=<usb-vendor-id>,productid=<usb-product-id>
. (האפשרות הזו אמורה לפעול גם ב-Linux וב-macOS) - ספריות WebRTC עודכנו לגרסה M83.
- האמולטור תומך עכשיו בהזרמת אודיו במאגרי תגים דרך WebRTC.
- נקודת הקצה של צינור darwinn הוסרה.
- עכשיו אפשר להשתמש ב-CUDA VPx decode לסרטונים, אם CUDA VPx decode זמין בחומרה, באמצעות משתנה הסביבה
ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1
. - ב-macOS, SSE 4.1 ו-4.2 זמינים עכשיו מתוך מערכת ההפעלה האורחת של Android.
- ב-macOS, INVTSC מופעל עכשיו כברירת מחדל. כך אפשר לשפר את הדיוק של מדידות הזמן מהאורח.
- אנחנו עכשיו עוקבים במדדים אחרי החלונית המורחבת של אמצעי הבקרה שנבחרה על ידי המשתמש.
- האמולטור של Linux משתמש עכשיו בשעון KVM paravirtualized כשגרסת ליבת האורח היא >= 5.4 (תמונות מערכת R ואילך).
- האמולטור משתמש עכשיו ב-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
frame, או כדי לנעול אותו, מוסיפיםNoDeviceFrame = on
ל-~/.android/advancedFeatures.ini
(צריך ליצור את הקובץ הזה אם הוא עדיין לא קיים).נוסף פריט בתפריט הנפתח בדף הסלולרי להפעלה ולהשבתה של תמיכה בחיוב לפי נפח נתונים. הפריט הזה לא פעיל בתמונות מערכת ישנות יותר שלא תומכות בהחלפה בין מצבים של חיוב לפי נפח נתונים ב-5G.
- נוספה גם פקודת מסוף לאותה מטרה:
gsm meter on|off
- נוספה גם פקודת מסוף לאותה מטרה:
שודרגו כלי שרשרת / גרסה ל-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/<uid>
.אמולטור מוטמע: במכשירים עם פינות מעוגלות או חריצים, הפריסה משתנה עכשיו בצורה תקינה כדי לפנות מקום לפינות ולחריץ. לשם כך צריך לבצע אתחול קר של האמולטורים האלה.
נקודת הקצה gRPC תומכת עכשיו בשליחת SMS למכשיר.
תיקונים כלליים
- נתקלנו בבעיות תאימות בהפעלת אמולטור Windows עם Riot Vanguard פעיל. האמולטור של Windows מזהה עכשיו את מערכת Vanguard למניעת רמאות, ואם הוא מזהה אותה הוא מציג הודעת אזהרה.
- תוקנה השגיאה
FD_SETSIZE
ב-Windows. אנחנו משתמשים עכשיו ב-WSAEventSelect()
במקום ב-select()
כדי ליצור חיבורים לא חוסמים לשרתי לולאה חוזרת. - נוספה תמיכה בתכונת F16C CPUID לאמולטור Linux עם תיקונים של בעיות בהרצת חלק מהאפליקציות של ARM64 באמצעות תרגום NDK. התמיכה ב-macOS/Windows נמצאת בתהליך.
- תוקן ניגון מסלול GPX/KML כך שיתבצע לפי חותמות הזמן.
- תוקן באג שגרם לסמל לקפוץ בהפעלה ב-MacOS.
- אם
hw.audioInput=no
ו-hw.audioOutput=no
ב-config.ini
, האודיו באמולטור מושבת עכשיו כמו שצריך. - תוקנה בעיה שבה אם חלון האמולטור צומצם בזמן שחלון הפקדים המורחבים היה פתוח אבל לא פעיל, חלון הפקדים המורחבים המשיך להופיע כששינו את הגודל של חלון האמולטור. בעדכון עתידי נסיר לחלוטין את ההתנהגות הזו (המקרה עם חלון הבקרה הפעיל המורחב).
- תוקן באג לא עקבי שקשור לחיבור Wi-Fi שלא מתבצע כשהאמולטור מופעל.
- תוקנה בעיה של תקיעה ביציאה כשהאמולטור מנפיק פקודות מעטפת עם פסק זמן ארוך או בלתי מוגבל.
- בוצע עדכון ב-pc-bios עם תיקונים כדי לשפר את התמיכה בתמונות גדולות שמועברות אל
-initrd
; ב-BIOS הקודם נעשה שימוש בשיטה לא יעילה במיוחד. - תוקנה קריסה שמתרחשת במהלך סיום השימוש כשמשתמשים באפשרות
-wifi-server-port
. - האמולטור מציג עכשיו אזהרה אם מועברות אל
-prop
אפשרויות לא נתמכות (רק מאפייני qemu.* נתמכים). - כשמבצעים build של האמולטור ב-Windows, הסיכוי לראות כשלים לא עקביים בכתיבה לקבצים אמור להיות נמוך יותר. מידע נוסף זמין בהוראות לבניית Windows.
- השבתנו את לחצן הזום במכשירי AVD מתקפלים, כי הוא גרם לבעיות.
- האמולטור מדווח עכשיו בצורה נכונה על זמן ההפעלה שמגיע מהפעלה מחדש של המכשיר.
- 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.
- תוקנה רגרסיה מהזמן האחרון שבה קומפילציה של הצללות GLSL ES 1.00 עם שמות משתנים כמו
isampler2D
נכשלה. - עדכון של כלי התרגום של ANGLE shader עם תיקונים שונים שפותרים בעיות אפשריות של קומפילציה של shaders ב-Linux.
- כדי לעקוב אחרי התופעה, אנחנו גורמים עכשיו לקריסת האמולטור אם קומפילציית ה-shader הבסיסי של framebuffer blit נכשלת.
- בוצע עדכון של מתרגם ה-shader של ANGLE כדי להתאים אותו ל-ANGLE upstream. הבעיה הזו תוקנה. היא הייתה קשורה להשחתת זיכרון כשמתרגמים ומקפלים קבועים של OpenGL ES shaders שהשתמשו במטריצות לא ריבועיות. מתרגם ה-Shader הוא עכשיו ספרייה משותפת נפרדת,
libshadertranslator.dll
. - תוקנה בעיה בהפעלת Vulkan בחלק ממנהלי ההתקנים של GPU, שבה לא נמצאו פונקציות מסוימות של מכשיר 1.1.
- Vulkan: חזרנו לשימוש בטוען שנוצר מראש, כי העדפה של טוען המערכת של Vulkan גרמה לבעיות בחלק מההגדרות. אנחנו ננסה למצוא פתרון טוב יותר.
- תוקנה הבעיה שבה נעשה שימוש בזיכרון חיצוני של Vulkan, שיכול היה להיות מיובא עם אינדקסים לא תואמים של סוגי זיכרון במארח.
- תוקנה בעיה באמולציה של
GL_ALIASED_POINT_SIZE_RANGE
שבה ה-enum לא נתמך במארח. - תוקנה בעיה שבה בחלק מה-GPU של המארח, לא הייתה אפשרות לקמפל את Skia shaders בגלל שגיאות שקשורות ל-
GL_EXT_shader_framebuffer_fetch
. - העותק שלנו של רכיב ה-rendering של D3D9 ANGLE הוסר לפני כמה גרסאות, ולכן אנחנו גם מעבירים אוטומטית משתמשים שהשתמשו ברכיב הזה ל-d3d11 ANGLE אם הוא נבחר בהעדפות של ממשק המשתמש.
- נוסף מידע נוסף לניפוי באגים בהפעלת WGL ב-Windows כדי לאתר כשלים.
- כשמשתמשים ב-
hw.gltransport=virtio-gpu-pipe
, הביצועים משתפרים כי לא מתבצעת פעולת ספין במארח בהעברות מהמארח לאורח. - הוספנו עוד רישום ביומן לניפוי באגים במקרים שבהם האתחול של OpenGLES emulation נכשל.
- פתרנו בעיה שגרמה להבהוב של סרטוני YouTube או לכך שהם לא הוצגו בטעינת תמונת מצב.
- בינתיים חזרנו לפענוח תוכנה עבור libvpx כי זיהינו בעיות בפענוח חומרה של CUDA ב-libvpx. אם יש לכם הטמעה נתמכת של פענוח קוד חומרה של CUDA בצד המארח, אפשר להפעיל מחדש את פענוח הקוד של libvpx באמצעות משתנה הסביבה
ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1
.
30.0.10 (30 באפריל 2020)
העדכון הזה כולל תמיכה בהרצת האמולטור ישירות ב-Android Studio ובמכשירים וירטואליים עם מצב חלון חופשי שמופעל כברירת מחדל.
הפעלת האמולטור ב-Android Studio
עכשיו אפשר להפעיל את אמולטור Android ישירות ב-Android Studio. התכונה הזו מאפשרת לחסוך במקום במסך, לנווט במהירות בין האמולטור לחלון העריכה באמצעות מקשי קיצור, ולארגן את תהליך העבודה של סביבת הפיתוח המשולבת (IDE) והאמולטור בחלון אפליקציה אחד.
מצב חלון חופשי
עכשיו אפשר ליצור מכשיר וירטואלי עם מצב חלונות חופשיים מופעל על ידי בחירה בפרופיל החומרה של טאבלט 13.5'' Freeform כשיוצרים מכשיר וירטואלי ב-Android Studio. פרופיל החומרה הזה דורש תמונת מערכת עם Android 11 Developer Preview 3 או גרסה מתקדמת יותר.
בעיות מוכרות
בגלל בעיות בהעברת המיקוד למנהל החלונות, אי אפשר לשנות את הגודל של חלונות צפים. הבעיה הזו תטופל באחת מהגרסאות הבאות של תמונת המערכת של Android 11.
30.0.0 (19 בפברואר 2020)
העדכון הזה כולל תמונות מערכת של Android 11 (רמת API 30) ושיפור ביצועים בהרצת קבצים בינאריים של ARM.
תמונות מערכת של Android 11
עכשיו אפשר ליצור מכשיר וירטואלי של Android (AVD) שמריץ Android 11 על ידי בחירה באחת מתמונות המערכת הזמינות ברמת API 30:
- x86: כולל גם ABI של x86 וגם של ARMv7.
- x86_64: כולל ממשקי ABI מסוג x86, x86_64, ARMv7 ו-ARM64.
תמיכה בקבצים בינאריים של ARM בתמונות מערכת של Android 9 ו-Android 11
אם בעבר לא יכולתם להשתמש באמולטור של Android כי האפליקציה שלכם הסתמכה על קבצים בינאריים של ARM, עכשיו אתם יכולים להשתמש בתמונת המערכת Android 9 x86 או בכל תמונת מערכת של Android 11 כדי להריץ את האפליקציה – כבר לא צריך להוריד תמונת מערכת ספציפית כדי להריץ קבצים בינאריים של ARM. תמונות המערכת האלה של Android 9 ו-Android 11 תומכות ב-ARM כברירת מחדל, ומספקות שיפור משמעותי בביצועים בהשוואה לתמונות עם אמולציית ARM מלאה.
בעיות מוכרות
- חלק מהקבצים הבינאריים של ARMv7 לא פועלים בקובצי אימג' של מערכת Android 11 x86 ו-x86_64. כדאי לפתח עבור ARM64 כשמטרגטים את Android 11.
29.0.11 (29 במאי 2019)
העדכון הזה כולל את השיפורים והתיקונים הבאים:
- Windows: האמולטור מסתמך עכשיו על קובץ ה-DLL
libgcc
שאנחנו שולחים, במקום על קומפילציה עםlibgcc
באופן סטטי. - Linux: נוספה תמיכה ב-logcat ל-gRPC API. מידע נוסף על gRPC זמין במאמר בנושא אמולטור סטרימינג של gRPC (Linux).
- האמולטור כולל עכשיו build ללא ממשק משתמש עבור אורחים ב-x86 32-bit
(
qemu-system-i386
). התכונה הזו מאפשרת להריץ תמונות x86 32-bit לרמות 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 בו-זמנית. - תוקנה שגיאה שהתרחשה כשמטעינים תמונות מצב, שבה
glIsRenderbuffer
החזירה ערך שגוי. - תוקנו כמה בעיות שקשורות למצב לא עדכני כשמפעילים מחדש את מערכת Android כאורח.
- Windows: תוקנו בעיות שמנעו את הפעלת האמולטור כששם המשתמש ב-Windows הכיל תווים שלא נכללים ב-ASCII או רווחים.
בעיות מוכרות
- ממשק המשתמש של התמונות הוא מושבת לתמונות של מערכות Automotive כי התמונות לא נתמכות כרגע לתמונות של המערכות האלה.
29.0.6 (1 במאי 2019)
העדכון הזה כולל כמה תכונות חדשות, שיפורים בתכונות קיימות ותיקוני באגים.
הסרת התמיכה ב-QEMU1 וב-Windows בגרסת 32 ביט
כדי לשפר את התחזוקה של האמולטור, אנחנו כבר לא שולחים קבצים בינאריים של QEMU1 ו-Windows בגרסת 32 ביט. אם אתם משתמשים ב-Windows 32-bit, לא תוכלו לשדרג לגרסה 29.0.6.
דרישות לתמונות מערכת של Android Q
אם רוצים להריץ AVD שמשתמש בתמונת מערכת של Android Q, צריך להשתמש עכשיו בגרסה 29.0.6 (גרסת ההפצה הזו) ומעלה.
שיפורים ב-Project Marble
העדכון הזה הוא המשך של העבודה שלנו על יוזמת Project Marble שהוכרזה ב-Android Developer Summit בנובמבר 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
שיפורים בגרסאות של אמולטורים ללא ממשק משתמש
החל מגרסה 28.0.25, האמולטור כולל אפשרות ליצירת build ללא ממשק משתמש שניתן להפעלה בלי ממשק המשתמש. אתם יכולים להשתמש בגרסאות build ללא ממשק משתמש כדי להגדיר את האמולטור לתהליכי עבודה של 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
שודרגו ספריות ה-UI של Qt לגרסה 5.12 LTS
העדכון הזה כולל את השיפורים הבאים מגרסת Qt 5.12 LTS:
- כדי למנוע קריסות בפענוח של
libpng
ב-Qt כשמפעילים תמונות מערכת מסוימות, האמולטור משתמש עכשיו בעותק משלו שלlibpng
כדי לפענח תמונות PNG. - כדי לפתור בעיות שקשורות להתקנות מסוימות של Linux שמכילות גרסאות לא תואמות של ספריות מסוימות שתלויות ב-Qt, אנחנו אורזים עכשיו את
libfreetype
,libsoftokn
,libsqlite3
ו-libxkbcommon
עם האמולטור. - האמולטור משתמש עכשיו בספריות חלונות Native של הפלטפורמה כדי לקבל את המידות של המסך, במקום להשתמש בספריות Qt שהחזירו תוצאות לא אמינות.
אופטימיזציות אוטומטיות של מעבד אחרי הפעלה קרה
כדי לטפל בשימוש במעבד, האמולטור מריץ עכשיו את פקודות ה-ADB הבאות באתחול קר אחרי שהוא מקבל אות boot complete
:
adb shell settings put screen_off_timeout 214783647
- הפקודה הזו מגדילה את פרק הזמן הקצוב לתפוגה של המסך כשהוא כבוי, כדי שאפשר יהיה להשתמש באמולטור במצב סוללה בלי לטעון אותו. במצב סוללה, השימוש במעבד ברקע מופחת באופן משמעותי.
- במצב טעינה באמצעות AC, פעולות ברקע של GMSCore, כמו עדכוני אפליקציות, יכולות להשתלט על כל ליבות המעבד של המכשיר – ובהרחבה, על המחשב של המשתמש – ללא אזהרה.
adb shell pm revoke com.google.android.googlequicksearchbox android.permission.RECORD_AUDIO
- הפקודה הזו מבטלת את הרשאות המיקרופון לאפליקציית חיפוש Google, וכך מצמצמת באופן משמעותי את השימוש במעבד ברקע במסך הבית ובמרכז האפליקציות כשאפליקציית חיפוש Google פעילה.
- הפקודה הזו מופעלת בנוסף להתנהגות ברירת המחדל של האמולטור, שבה האודיו של המארח מושבת עבור המארח. בנוסף, ההגדרה הזו מספקת באופן אוטומטי את הפתרון לבעיית השימוש במעבד שמתואר בזיהוי מילות הפעלה בגרסה 28.0.23.
משתני סביבה חדשים למעקב אחרי ביצועים
עכשיו אפשר להשתמש בשני משתני סביבה חדשים כדי להפעיל מעקב מפורט אחרי הביצועים והשימוש במשאבים של האמולטור.
SHOW_PERF_STATS=1
- משתנה הסביבה הזה מאפשר מעקב אחרי השימוש במעבד ובזיכרון ה-RAM. מעקב לגבי השימוש ב-RAM מבחין בין שימוש בגרפיקה לבין סך הזיכרון התושב.
ANDROID_EMU_TRACING=1
- משתנה הסביבה הזה מאפשר להדפיס בכל פעם שפעולת קלט או גרפיקה נמשכת זמן רב (יותר מ-1 אלפית השנייה).
- אנחנו משתמשים במשתנה הסביבה הזה גם כדי לאבחן בעיות שמשתמשי Windows חוו עם יותר תקלות (פריימים שהושמטו) בהשוואה למשתמשים ב-macOS או ב-Linux.
שיפורים כלליים ב-Project Marble
העדכון הזה כולל גם את השיפורים הכלליים הבאים, שהם חלק מיוזמת Project Marble:
- עכשיו אפשר להשהות מיידית את כל המעבדים הווירטואליים במעבד באמצעות פקודות המסוף הבאות:
adb emu avd pause
adb emu avd resume
- הפחתה משמעותית של התקורה של ציור OpenGL. השיפור הזה מפחית את השימוש ביחידת העיבוד המרכזית (CPU) בזמן שהאמולטור מציג אנימציות.
- התמיכה במכשיר הרשת הווירטואלי e1000 של QEMU הוחזרה. אפשר להשתמש במכשיר הזה כדי להגדיר את האמולטור בסביבת רשת מגשרת. בסביבת רשת מגשרת, האמולטור מוצג ברשת המארחת והרשת המארחת מוצגת באמולטור.
- קובצי ה-BIOS הבינאריים שמתאימים ל-QEMU 2.12 משמשים עכשיו להפעלת האמולטור.
- שודרגה גרסת
ffmpeg
ל-3.4.5 לקידוד ופענוח של סרטונים. - הפחתנו באופן משמעותי את התקורה של קלט/פלט של לולאה ראשית של QEMU ב-macOS על ידי החלפת הלולאה הראשית שהתבססה על
select()
בלולאה ראשית שמבוססת עלkqueue
. - הגדלנו את גודל המאגר של Logcat ל-2MB כדי לפתור בעיות שקשורות ל-EOF לא צפוי ולא יציב כשמריצים את Logcat באמצעות האמולטור.
- האמולטור מייצא עכשיו את משתנה הסביבה
LC_ALL=C
כברירת מחדל. השינוי הזה פותר קריסות ובעיות תאימות שקשורות להפעלת האמולטור באזורים שונים. - עכשיו אפשר לעקוב אחרי השימוש במעבד ובזיכרון ה-RAM של האמולטור באמצעות נתוני הביצועים שאפשר לגשת אליהם דרך אמצעי בקרה מתקדמים > הגדרות > מתקדם > נתוני ביצועים. אפשר להשתמש בנתונים הסטטיסטיים האלה כדי לאבחן בעיות במהירות אם נראה שהאמולטור משתמש ביותר מדי מעבד או זיכרון 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, האמולטור מנסה להפעיל מחדש את-read-only
AVD עוד 3 פעמים במשך 3 שניות. השינוי הזה מגדיל את הסיכוי שהאמולטור יוכל להפעיל מכונות וירטואליות מקבילות של-read-only
אם מכונות וירטואליות אחרות של אותו AVD לא סיימו לנקות קבצים ישנים. - האמולטור תומך עכשיו ב-Hardware Composer 2.0 לתמונות מערכת עתידיות. השינוי הזה אמור להפחית את התקורה של הדרייבר כשמפעילים את רוב האנימציות.
- גרסת ה-build של האמולטור מבוססת עכשיו על CMake/Ninja.
- בממשק המשתמש של אמצעי הבקרה המורחבים של האמולטור, שוחזרו קווי ההפרדה בטבלת מקשי הקיצור.
- המשתמשים יכולים עכשיו להביע הסכמה לשיתוף מדדים של השימוש במעבד ובזיכרון ה-RAM עם הצוות שלנו, במרווחים של 10 שניות. אנחנו משתמשים במדדים האלה כדי להעשיר את הנתונים שלנו לגבי השימוש במשאבי האמולטור בתרחישי שימוש שונים של המשתמשים שלנו, וכך לשפר את היעילות והתגובה של האמולטור.
תיקונים כלליים ב-Project Marble
העדכון הזה כולל גם את התיקונים הכלליים הבאים, שהם חלק מהיוזמה Project Marble:
- תוקנו בעיות שקשורות לפריימים לא תקינים ולרעידות שהוצגו במערכות עם כרטיסי מסך של Intel כשמשתמשים בתמונות מערכת של Android Q.
- תוקנו בעיות שגרמו להצגת מסך שחור כשמשתמשים בתמונות של מערכת Android Q עם סקינים של Pixel 2 XL (או כל סקין עם חריץ או פינות מעוגלות).
- תוקנה בעיה שבה אפשרות שורת הפקודה
-partition-size
לא הגדירה את גודל מחיצת הנתונים. - תוקנה בעיה שבה pulseaudio באמולטור Linx הסתובב והשתלט על ליבת CPU שלמה במצבים מסוימים.
- תוקנו בעיות בגישה לזיכרון מחוץ לגבולות במהלך עיבוד של טקסטורות דחוסות.
- תוקנו שגיאות GL שהתרחשו במארח ב-
glTexSubImage2D
בעת עדכון מאגרי gralloc מסוימים (עם פורמט RGB 565, RGB10A2, RGB(A)16F). - תוקנה בעיה בתצוגה בתמונות מערכת של Android Q עם תמונות מצב, שבה הגיאומטריה של חלונית ההתראות עברה עיבוד עם הגדרה לא תקינה של מחלק מופעים.
- תוקנו כמה בעיות קריסה וקיפאון שקשה לשחזר בהפעלה, שקרו בגלל ש-Qt איבד אותות או שהיו לו מצבים לא יציבים ולא עקביים בהפעלה.
- תוקנו בעיות רבות שקשורות להרצת תהליכים מקבילים. עכשיו יש לנו אפשרות ליצור את אמולטור Linux באמצעות ThreadSanitizer (TSAN), שיכול לחשוף בקלות באגים שקשה לשחזר בדרך אחרת.
- למשתמשי Linux: גילינו שבליבות מארח מסוימים, ליבת האורח של Android עלולה להחזיר שגיאה ולצאת ב-KVM עם שגיאת חומרה גנרית. האמולטור
abort()
עכשיו כשזה קורה, כדי לשפר את יכולת הניפוי (בעבר, האמולטור פשוט נתקע). - משתמשי Linux יכולים להשתמש באפשרות החדשה
-stdouterr-file <file-name>
בשורת הפקודה כדי להפנות אתstdout
וגם אתstderr
לקובץ, וכך להגדיר CI בקלות. - תוקנה בעיה שבה נעשה שימוש שגוי ב-
SO_REUSEADDR
. מידע נוסף זמין במאמר פרטי ההתחייבות. - תוקנה בעיה שהייתה קיימת זמן רב באמולטור של Windows, שבה הפעלת תהליכי משנה, כמו פקודות ADB, נכשלה אם שם המשתמש כלל רווחים.
- תוקנה בעיה שבה לא בוצעה אתחול של RCU בשרשורי vCPU של HAXM. יכול להיות שהתיקון הזה יפתור חלק מהקריסות ותנאי המירוץ.
- תוקנה קריסה שקרתה בדפוסים מסוימים של שמירה וטעינה של תמונות מצב מממשק המשתמש של תמונות המצב באמצעות תמונות מערכת עדכניות של Android Q.
- תוקנה בעיה שבה המצלמה של הסצנה הווירטואלית הייתה ריקה כשהאמולטור הופעל מתמונת מצב, אם פקודת מאקרו של AR פעלה כשצילום המסך הזה נשמר.
- תוקנה בעיה שבה חלק מהמשתמשים עם הגדרות של שולחן עבודה מרוחק קיבלו מסך שחור
כשפתחו את האמולטור ב-Linux. כדי להימנע מכך, האמולטור מגדיר עכשיו באופן מפורש את
MESA_RGB_VISUAL
. מידע נוסף זמין במאמר פרטי הקומיט. - תוקנה בעיה שבה לחצני הסיבוב הופיעו ב-AVD של טלוויזיה.
- תוקנה בעיה שבה אם האפשרות 'האמולטור תמיד בחזית' הייתה מופעלת, חלון הבקרה המורחבת הופיע בכל פעם שהאמולטור הסתובב.
פרופילי חומרה למכשירים מתקפלים
האמולטור כולל עכשיו פרופילי חומרה למכשירים מתקפלים. כדי להשתמש בפרופילי החומרה החדשים האלה, צריך להשתמש ב-Android Studio 3.5 Canary 10 ומעלה.
יש שני פרופילים של חומרה למכשירים מתקפלים שבהם אפשר להשתמש כדי ליצור מכשיר AVD:
- 7.3" Foldable: 1536x2152 unfolded, 4.6" 840x1960 folded
- מכשיר מתקפל בגודל 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 תומכים גם ב-zero-copy interop עם OpenGL באמצעות התוסף GL_EXT_memory_objects
. האמולטור משתמש ביכולת הזו כדי לספק דרך מלאה לרינדור ממשק המשתמש של Android באמצעות ממשקי Skia Vulkan API.
אם יש לכם מעבד גרפי של 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 וב-Remote Desktop יש בעיות קבועות:
- שליחת פקודות קלט לאמולטור באופן פרוגרמטי כוללת הפעלה של פקודות adb shell שעלולות לגרום לעומס גבוה, או שימוש במסוף telnet, שהוא מהיר יותר, אבל יכול להיות שלא יפעל עם הגדרות רשת מסוימות.
- משתמשי CI מריצים לעיתים קרובות אמולטורים ללא ממשק משתמש, ולכן קשה להם לשים לב לבעיות שדורשות שהמסך יהיה גלוי או אינטראקטיבי.
- למה? כי משתמשים בשולחן עבודה מרוחק לרוב לא יכולים ליצור אינטראקציה עם האמולטור כשהם משתמשים ברינדור GPU של המארח, כי רינדור GPU לרוב קשור לתצוגות הלא וירטואליות של המארח.
כדי לפתור את הבעיה הזו, כשמריצים את האמולטור במכונת Linux, הוא מפעיל עכשיו שירות gRPC. gRPC הוא מסגרת כללית ל-RPC שפועלת באמצעות HTTP.
כברירת מחדל, שירות gRPC של האמולטור מושבת, אבל אפשר להפעיל את השירות באמצעות אפשרות שורת הפקודה הבאה, כאשר <port>
הוא היציאה שדרכה האמולטור צריך להעביר בקשות gRPC (בדרך כלל 5556
):
-grpc <port>
אחרי שהשירות מופעל, הלקוחות יכולים להנפיק פקודות gRPC. קבוצת הפקודות הנוכחית מאפשרת גם לשלוח אירועי קלט וגם לקבל צילומי מסך. הפקודות האלה עוזרות לפתור את הבעיות הבאות:
- אפשר לשלוח פקודות קלט לאמולטור עם תקורה נמוכה באמצעות HTTP. HTTP מאפשר גם לשלוח פקודות בהגדרות רשת נוספות.
- אפשר לשלוח פקודות של צילום מסך כדי לבצע שאילתה לגבי המסך הנוכחי, גם אם האמולטור פועל ללא ממשק משתמש. כדי ליצור אינטראקטיביות, אפשר גם לשלוח אירועי קלט בחזרה לאמולטור.
- משתמשים בשולחן עבודה מרוחק יכולים להריץ את האמולטור ללא ממשק משתמש בצג הראשי עם עיבוד מואץ של GPU, תוך שימוש ב-gRPC כדי לקבל צילומי מסך ולשלוח אירועי קלט כדי ליצור אינטראקציה עם האמולטור.
רשימה מלאה של הפקודות הזמינות מופיעה בפרוטוקול protobuf הזה.
כדי לעזור לכם להתחיל להשתמש ב-gRPC, סיפקנו כמה לקוחות לדוגמה שתוכלו להיעזר בהם.
נכון לעכשיו, הדוגמאות האלה כלולות:
- שירות מבוסס Go שאפשר להשתמש בו כדי לשלוח שאילתות לגבי מצבי אמולטור.
- אפליקציית React שמדגימה אינטראקטיביות מרחוק באמצעות צילום מסך וקלט של בקשות RPC. כדי להשתמש בדוגמה הזו, נדרשת גרסה 3.7.0 של protobuf ומעלה.
- דוגמה ל-Python שמבצעת שאילתה לגבי הגדרת מכונת ה-VM של האמולטור ואז שולחת סדרה של פקודות.
28.0.25 (29 במרץ 2019)
העדכון הזה כולל את השיפורים והתיקונים הבאים:
גרסת אמולטור headless
היה קשה להגדיר את האמולטור עם Docker ועם תהליכי עבודה אחרים של שילוב רציף (CI) בגלל הציפיות המובלעות של המערכת לתמיכה ב-Qt יחד עם יחסי התלות בספרייה המשותפת שלה (בין היתר).
כצעד ראשון לפתרון הבעיה, השקנו גרסה של כלי ההפעלה של האמולטור עם קובצי הפעלה של QEMU שלא תלויה ב-Qt. ב-Linux, עדיין יש קישור ל-libX11
, אבל אנחנו מקווים להסיר אותו בקרוב.
כדי להשתמש באמולטור ללא ממשק משתמש, מריצים את האמולטור משורת הפקודה כרגיל, אבל מחליפים את ההפעלה של קובץ האמולטור הבינארי ב-emulator-headless
. מידע נוסף זמין בעדכון הגרסה 28.1.8 Canary.
- תוקנה הבעיה של תנודות ותצוגת פריים שגויה במעבדים גרפיים של Intel כשמריצים תמונות מערכת של Android Q.
- תוקנו בעיות שבהן מסך שחור הוצג כשנעשה שימוש בתמונות מערכת של Android Q עם סקינים של Pixel 2 XL.
- קובצי ה-BIOS הבינאריים העדכניים משמשים עכשיו להפעלת האמולטור. השינוי הזה יכול לעזור לצמצם את השגיאות מסוג 'בקשת כיבוי של vCPU' שמתרחשות לפעמים כשמפעילים את האמולטור ב-Windows.
- הוספנו תיקון לבעיה של תצוגה שגויה כשממשיכים תמונות מערכת של Android Q מתוך תמונת מצב.
- המשתמשים נתקלו בבעיות בסימולטורים (אמולטורים) שקשורות לגישה לא מורשית בגלל שינוי לא תואם ב-ADB בכלי platform-tools 28.0.2. מעכשיו אפשר להשתמש ב-ADB מ-platform-tools 28.0.2 עם האמולטור בצורה בטוחה. אם נתקלתם בבעיות שקשורות לאמולטורים לא מורשים, כדאי לפעול לפי השלבים הבאים לפתרון הבעיות:
- יוצאים מכל האמולטורים.
- מוחקים את הקבצים
~/.android/adbkey
ו-~/.android/adbkey.pub
. - מריצים את הפקודה הבאה:
adb kill-server
- מריצים את הפקודה הבאה:
adb devices
- איפוס הנתונים ב-AVD.
- מפעילים מחדש את האמולטור.
28.0.23 (29 בינואר 2019)
העדכון הזה כולל את השיפורים והתיקונים הבאים:
קלט האודיו של המארח מושבת כברירת מחדל
בפוסט שפורסם לאחרונה ב-Reddit פורטט איך מערכת ההפעלה האורחת של Android תמיד משתמשת באודיו של המיקרופון של המארח, וכך מאפשרת ל-"Ok Google" לפעול באופן לא צפוי. אנחנו מצטערים על כך ונפעל מול צוות Android כדי לוודא שזיהוי מילות הפעלה מושבת גם בתמונת המערכת.
כדי לתת מענה לבעיה הזו, ביצענו את השינויים הבאים:
- נתוני האודיו של המארח/ת מושתקים עכשיו כברירת מחדל. כשהאורח משתמש במיקרופון, במקום האודיו של המארח, עובר שקט.
- אם רוצים להשתמש בנתוני האודיו של המארח, אפשר להפעיל את האפשרות הזו עכשיו. לשם כך, עוברים אל אמצעי בקרה מתקדמים > מיקרופון ומפעילים את האפשרות המיקרופון הווירטואלי משתמש בקלט האודיו של המארח. האפשרות הזו מושבתת אוטומטית בכל פעם שמפעילים מחדש את האמולטור.
עדכונים בנושא בדיקות של השימוש במעבד
במהלך הבדיקות שלנו במסגרת פרויקט Marble, שמנו לב ששימוש גבוה ב-CPU באמולטור בדרך כלל נחלק לשלוש קטגוריות:
במצב לא פעיל: תמונות של עדכוני אפליקציות אוטומטיים בחנות Play
גילינו שבמרווחי זמן אקראיים, כל האפליקציות המותקנות מתעדכנות, גם כשהמשתמש לא מחובר. במהלך התהליך, השימוש במעבד מגיע למספר הליבות כפול 100% (בדרך כלל כ-400%) ב-GMSCore וב-dex2oat. כדי לפתור את הבעיה, אפשר להשבית את העדכונים האוטומטיים של האפליקציות באפליקציית חנות Play.
במצב סרק: זיהוי מילת הפעלה
כשנמצאים במסך הבית ולא מפעילים אף אפליקציה, יכול להיות שיהיה שימוש רב במעבד (בערך 25% עם עליות פתאומיות ל-50%). הסיבה לכך היא זיהוי מילת ההפעלה, ששולח פינגים כל הזמן למארח. אי אפשר לפתור את הבעיה הזו על ידי השבתת קלט האודיו של המארח, כי העלות של השימוש במעבד נובעת בעיקר מהזמן שלוקח להעביר את האודיו מהמארח לאורח. עם זאת, אפשר לצמצם את הבעיה על ידי ביטול הרשאות המיקרופון באפליקציית Google.
בזמן פעילות, לפעמים במצב לא פעיל: אנימציות
המקור השלישי לשימוש גבוה ב-CPU הוא אנימציות. גילינו שבאמצעות אופטימיזציה של מחסנית מנהלי ההתקנים של הגרפיקה, אפשר גם לצמצם את השימוש במעבד, גם כשהאמולטור לא במצב המתנה. אנחנו נשיק בהדרגה אופטימיזציות של מנהלי התקנים של גרפיקה כחלק מ-Project Marble.
28.0.22 (21 בדצמבר 2018)
העדכון הזה כולל את השיפורים והתיקונים הבאים:
- תוקנה בעיה שהייתה קיימת זמן רב, שבה בהגדרות מסוימות, האמולטור של Mac היה מפעיל מחדש או גורם לבהלת ליבה בשמירת Quickboot. (בעיה מספר 120951634)
- כשמשתמשים בקובץ ממופה כ-RAM snapshot, האמולטור מבטל עכשיו את המיפוי של הקובץ באופן מפורש ביציאה.
28.0.20 (11 בדצמבר 2018)
העדכון הזה כולל את השיפורים והתיקונים הבאים:
- תוקנה בעיה ב-Windows שגרמה לאמולטור לקפוא בטעינת תמונת מצב עם דגמים מסוימים של כרטיסי מסך של Intel.
- תוקנה בעיה שגרמה למצב מכשיר
unauthorized
ADB כשמשתמשים במיקוםANDROID_SDK_HOME
לא סטנדרטי. - תוקנה בעיה ב-Windows שגרמה לקריסת האמולטור בזמן אתחול של תמונות מערכת עם השבתה של האצת המעבד.
- תוקנה הבעיה בתצוגת האמולטור עם פיקסלים מטושטשים. הדגימה הנמוכה אמורה לפעול עכשיו.
- תוקנה בעיה ב-macOS 10.14 ואילך, שבה השליטה במצלמה הווירטואלית באמצעות העכבר הייתה רגישה מדי בגלל אינטראקציה עם הגדרות אבטחה חדשות של נגישות.
- תוקנה שגיאה בחישוב אזור הזמן שיכולה לגרום לשעון של האמולטור להשתנות באופן לא סדיר.
- תוקנו שגיאות רינדור באפליקציות שונות של cocos2d ו-Unreal Engine.
- נוספה תמיכה באמולטור ל-Wi-Fi peer-to-peer.
שני אמולטורים יכולים עכשיו לתקשר ישירות ביניהם באמצעות Wi-Fi אם משתמשים בתמונה העדכנית של חנות Play ב-Pie. כדי להשתמש ב-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 guest.
28.0.16 (נובמבר 2018)
העדכון הזה כולל כמה תכונות חדשות, שיפורים בתכונות קיימות ותיקוני באגים.
שימוש במשאבים
האמולטור משתמש עכשיו בפחות זיכרון RAM באופן כללי, במיוחד כשמשתמשים בתמונות מערכת עם רמת API 28 ומעלה. תמונות המערכת האלה כוללות שימוש משופר בזיכרון עבור מנהלי התקנים גרפיים בצד האורח.
בנוסף, שיפרנו את השימוש במשאבים בתחומים הבאים:
- צמצום השימוש בזיכרון של האמולטור במהלך בדיקות ארוכות. אם עדיין נתקלים בבעיות בשימוש בזיכרון במהלך בדיקות ארוכות, צריך ליצור בעיה שמתארת את התרחיש לדוגמה בIssue Tracker.
- השימוש במעבד (CPU) מצטמצם כשמפעילים אפליקציות עם אנימציות.
- תוקנה בעיה שבה הקשר של QEMU AIO עלול לדלוף ב-Windows.
הפעלה של כמה מופעים של אותו AVD בו-זמנית
עכשיו אפשר להפעיל כמה מופעים של אותו AVD ולהריץ אותם במקביל. מופעים שמופעלים אחרי המופע הראשון הם לקריאה בלבד, והשינויים שלהם בדיסק הווירטואלי של האורח נמחקים ביציאה.
כדי להריץ כמה מופעים של אותו AVD בו-זמנית, מפעילים את המופעים אחרי המופע הראשון משורת הפקודה באמצעות הדגל -read-only
.
התכונה הזו מתאפשרת באמצעות העתקה של קובצי QCOW2 שמשויכים לחלקים שניתנים לכתיבה בתמונת Android. כדי לעזור לכם לנהל את נפח האחסון בדיסק, צירפנו גם את כלי שורת הפקודה qemu-img
כדי לאפשר לכם לבצע קומיט מראש של קובצי QCOW2 לפני הפעלת כמה מופעים.
בנוסף, כשמשתמשים בה בשילוב עם התכונה תמונות מצב של RAM אורח שמגובות בקובץ , כמה מופעים של AVD חולקים את תמונת המצב הראשית של AVD Quickboot כמקור משותף של RAM אורח מסוג copy-on-write. המאפיין הזה מציין שהמופעים חולקים הרבה מהזיכרון שלהם. אפשר להשתמש בתכונה הזו כדי להריץ בדיקות שנדרשים להן כמה מכשירים כדי לפעול במקביל.
נשמח לקבל משוב על תרחישי שימוש אפשריים שמהווים חלק מזרימת העבודה האינטראקטיבית או CI הרגילה שלכם. אפשר ליצור בעיות או להצביע בעד בעיות בכלי למעקב אחרי בעיות.
תמונות מצב של זיכרון RAM של מכונות אורחות שגובו בקובץ
על ידי הקצאה מראש של זיכרון RAM לאורח ומיפוי שלו כקובץ, האמולטור יכול עכשיו לשמור תמונות מצב של Quickboot במהלך זמן הריצה, במקום לבצע את כל העבודה ביציאה. אם אתם חווים כרגע זמני שמירה ארוכים כשאתם סוגרים את האמולטורים, כדאי להפעיל את התכונה הזו כדי לשפר את הביצועים של Quickboot. כברירת מחדל, תמונת מצב של Quickboot נשמרת כשיוצאים מהמכשיר הווירטואלי ונטענת מחדש בכל פעם, כמו השהיה והפעלה של מכשיר אמיתי.
מכיוון שזיכרון ה-RAM של האורח ב-Android נשמר אוטומטית כברירת מחדל, אם רוצים להגדיר מצב מכשיר ולטעון ממנו שוב ושוב, צריך להגדיר לאמולטור לבטל את השינויים אחרי כל סשן. אפשר לעשות זאת בדרכים הבאות:
- משתמשים בדגלים
-no-snapshot-save
או-read-only
כשמפעילים את האמולטור משורת הפקודה. - עוברים אל אמצעי בקרה מתקדמים > תמונות מצב > הגדרות ומעבירים את האפשרות שמירה אוטומטית של המצב הנוכחי להפעלה מהירה? למצב לא.
- אחרי שבוחרים באפשרות הזו, צריך להפעיל מחדש את האמולטור. אם האמולטור מוגדר לשמירה אוטומטית, אפשר להריץ את הפקודה הבאה כדי להגדיר נקודת ביקורת:
אחרי שמריצים את הפקודה הזו, תמונת המצב של Quickboot באמולטור תישאר בנקודת הבדיקה הזו. מריצים שוב את אותה הפקודה כדי לטעון את האמולטור מנקודת הבדיקה.adb emu avd snapshot remap 0
תמונות המצב שנוצרו ונטענו דרך ממשק המשתמש של Snapshots פועלות כמו קודם, ללא מיפוי קבצים.
מדובר בשינוי משמעותי באופן הפעולה של Quickboot, ולכן נשמח לקבל מכם משוב על השיפורים בביצועים של Quickboot ועל הבעיות שנתקלתם בהן במהלך השימוש בו. אם נתקלים בבעיות, אפשר להשבית את התכונה הזו על ידי הוספת השורה הבאה לקובץ ~/.android/advancedFeatures.ini
:
QuickbootFileBacked = off
כשמפעילים את האמולטור מתמונת מצב (באמצעות האפשרות -snapshot
בשורת הפקודה או הפעלה מתמונת מצב במנהל AVD), האמולטור משבית את השמירה האוטומטית של תמונות מצב של Quickboot ואת השמירה של תמונות מצב של Quickboot ביציאה. כך הסיכויים שהתמונה של Quickboot תידחס בטעות קטנים יותר, ונמנעים מסלולי חזרה איטיים שלא משתמשים בתמונות של Quickboot שגובו בקובץ.
QEMU 2.12
התבססנו מחדש על הווריאציה שלנו של QEMU מ-QEMU 2.9 ל-QEMU 2.12. העדכון הזה כולל את השינויים הבאים ב-QEMU:
- https://wiki.qemu.org/ChangeLog/2.10
- https://wiki.qemu.org/ChangeLog/2.11
- https://wiki.qemu.org/ChangeLog/2.12
אלה כמה מהשינויים הבולטים שמשפיעים על Android Emulator:
- x86:
gdbstub
מספקת עכשיו גישה לרישום SSE. - תמונות דיסק: נעילת תמונות מתווספת ומופעלת כברירת מחדל. כמה תהליכי QEMU לא יכולים לכתוב לאותה תמונה כל עוד המארח תומך ב-OFD או בנעילת posix, אלא אם צוינו אפשרויות אחרות.
-
qemu-img: qemu-img resize
תומך בהקצאה מראש של החלקים החדשים בתמונה. - יש עכשיו תמיכה בהקטנת QCOW2 ב-
qemu
וב-qemu-img
.
נגישות
- תוקנו בעיות שקשורות לקוראי מסך, והוספנו תמיכה משופרת בכלים האלה בממשק המשתמש של צילום המסך והתמונה.
- הוספנו סמלי התראות של הפעלה מהירה שנגישים יותר למשתמשים עיוורי צבעים.
גרפיקה
- תוקנה בעיה של גישה לזיכרון מחוץ לגבולות שיכולה להתרחש עבור מצביעים של מערכי קודקודים של OpenGL ES.
- חלק מה-GPU הישנים לא תמכו ב-OpenGL 2.1 ומעלה (שנדרש), או שהיו להם בעיות אחרות שקשורות למהימנות. הבעיות האלה עלולות לגרום לקריסת האמולטור בהפעלה, להקפאה או לחוסר שימושיות בהגדרת ברירת המחדל של ה-GPU. האמולטור עובר עכשיו באופן אוטומטי לרכיב ה-Swiftshader renderer אם הוא מזהה שה-GPU האלה נמצאים בשימוש.
- תוקנה בעיה שגרמה לכך שהאמולטור לא פרסם את מאגר המסגרות הנכון אם
FBO != 0
היה קשור בזמןeglSwapBuffers
. - תוקנה בעיה שבה התצוגה הווירטואלית של Android הופיעה רק בפינה הימנית העליונה. לדעתנו, הבעיה נבעה ממשתני סביבה של Qt שהוגדרו בצורה שגויה. האמולטור מחליף עכשיו את כל משתני הסביבה שקשורים לשינוי גודל ב-Qt.
- תוקנה בעיה שגרמה לקריסה של האמולטור במצבים מסוימים בזמן טעינה של אפליקציות GLES1 מתמונת מצב.
- תוקנו בעיות של פעולות מקבילות ב-OpenGL ובהפעלת שרשורים של עיבוד שיכולות לגרום לשחרור כפול של זיכרון או לנתונים פגומים.
- Android Emulator תומך עכשיו בדחיסת טקסטורה ב-ASTC LDR (
GL_KHR_texture_compression_astc_ldr
) לתמונות מערכת שמשתמשות ברמת API 28 ומעלה. - רוב ה-GPU המודרניים אמורים עכשיו להפעיל את האמולטור עם OpenGL ES 3.x מופעל כברירת מחדל, בלי להשתמש בדגל התכונה
GLESDynamicVersion
. - האפשרות
-gpu guest
(רינדור תוכנה במכונה האורחת) הוצאה משימוש. תמונות מערכת ברמת API 28 ומעלה עוברות עכשיו אוטומטית לשימוש ב-Swiftshader (-gpu swiftshader_indirect
). - אם האמולטור מופעל משורת הפקודה באמצעות הדגל
-no-window
, ברירת המחדל של רכיב הרינדור היא עכשיו Swiftshader.
מיקום
- האמולטור יכול עכשיו לעדכן את הכיוון יחד עם המיקום לפי קווי הרוחב והאורך. החיישן הווירטואלי מגנטומטר מתאים את עצמו באופן דינמי לצפון המגנטי על ידי הסקת תנועה בזמן הפעלה של קובץ GPX או KML.
- עכשיו אפשר להגדיר את מהירות המכשיר בדף 'מיקום'.
- כשמפעילים קובץ GPX או KML, המהירות מוגדרת אוטומטית, וכשההפעלה מסתיימת היא מוגדרת לאפס.
- הגובה כבר לא מוגבל לטווח שבין -1,000 ל-+10,000 מטרים.
- תוקנה בעיה שבה המיקום הווירטואלי ב-GPS לא התעדכן מעת לעת, אלא אם חלון ההגדרות המתקדמות נפתח לפחות פעם אחת.
מצלמה
ב-Windows, יש עכשיו תמיכה ביותר מצלמות רשת כי האמולטור משנה את הגודל של פריימים של המצלמה שמועברים ממצלמת הרשת באופן דינמי. בנוסף, התכונה הזו מונעת שגיאות במסירת פריימים שגורמות לאמולטור להיתקע.
חנות Play
כדי לפתור בעיות שקשורות למצב שבו נגמר נפח האחסון בתמונות של חנות Play, האמולטור משנה את הגודל של מחיצת נתוני המשתמש ל-6GB באופן אוטומטי כשמפעילים אותו עם מכשיר וירטואלי חדש של חנות Play.
שיפורים ותיקונים כלליים באיכות
- חלק מהמשתמשים דיווחו שהאמולטור פועל לאט. זיהינו גורם אפשרי אחד שבו תיקיית הטמפ של האמולטור מכילה יותר מדי קבצים ישנים. כפתרון עקיף, האמולטור כבר לא מאחסן קבצים של בדיקת הפעילות של ADB בספרייה הזו. אבל יכול להיות שגם מחיקת התוכן של התיקייה תעזור. התיקייה נמצאת באחד מהמיקומים הבאים, בהתאם למערכת ההפעלה:
- ב-Windows:
C:\Users\<username>\AppData\Local\Temp\AndroidEmulator\*
- macOS או Linux:
/tmp/android-<username>/*
- ב-Windows:
- אם האמולטור לא מצליח להתחיל לפעול בגלל שאין מספיק זיכרון RAM פנוי, מוצגת עכשיו הודעת שגיאה. אם אתם משתמשים ב-Windows וראיתם שיש זיכרון RAM פנוי, אבל עדיין לא הצלחתם להפעיל את האמולטור, יכול להיות שחרגתם ממגבלת הזיכרון הווירטואלי. לקבלת עזרה בפתרון הבעיה, אפשר לעיין בדף לפתרון בעיות באמולטור.
- האפשרות
-sysdir
בשורת הפקודה מבטלת עכשיו כמו שצריך את ספריית תמונות המערכת שהמערכת הסיקה. - מודם וירטואלי תומך עכשיו בשאילתת
+MAI
model activity info. - תוקנו בעיות שונות שקשורות לדליפות זיכרון, להשחתת זיכרון ולשימוש במעבד (CPU). אם אתם נתקלים בקריסות, בדליפות זיכרון או בשימוש גבוה במשאבים, אתם יכולים ליצור בעיה בכלי למעקב אחר בעיות.
- תוקנה בעיה שהופיעה מחדש ב-macOS 10.14, שבה שימוש באוזניות Bluetooth עם האמולטור פוגע באיכות האודיו באופן כללי. כדי למנוע את זה, האמולטור לא משתמש יותר באודיו ב-Bluetooth כשהוא פועל ב-macOS. (בעיה מספר 37070892)
- תוקנה בעיה ב-Windows שגרמה לכך שהשעון של האמולטור לא היה באזור הזמן הנכון.
- תוקנו בעיות של איטיות והיתקעות של אמולטור במערכות Linux עם כוננים קשיחים מסתובבים (HDD).
- תוקנו כמה אזהרות קומפילציה שיכלו לגרום להשחתת מחסנית ב-macOS.
- תוקנו בעיות שיכלו לגרום לדיווח מטעה על מצב תקיעה.
- תוקנה בעיה בהשמדה של מאגרי שרשורים שיכולה לגרום לקריסה אם אחד מהשרשורים לא נוצר בהצלחה.
- תוקנה בעיה ב-macOS שגרמה לכך שהטיימרים לא היו אמינים, מה שהוביל לתקיעות ולהתנהגות מוזרה אחרת. אם האמולטור נתקע ב-macOS, צריך ליצור בעיה בכלי למעקב אחר בעיות.
- תוקנה בעיה שבה סגירת האמולטור השביתה את ממשק המשתמש, אבל לא סגרה את האמולטור בפועל.
- תוקנו בעיות שגרמו לקריסות ספורדיות, כולל ביטול בגלל פתיחה של יותר מדי מופעים של
/dev/urandom
. - תוקנה בעיה שגרמה לכך שהאמולטור לא הופעל אחרי הפעם הראשונה אם ADB הופסק בכוח.
- הגרסה של MIPS הוסרה. אם עדיין דרוש לך MIPS, אפשר ליצור בעיה בכלי למעקב אחרי בעיות.
- תוקנה בעיה שבה חיבורי ADB עלולים להיפגם בטעינת תמונת מצב.
- תוקנה בעיה שבה חלון האמולטור הציג תמונת לוואי או נעלם מהמסך כשממשיכים תמונת מצב שבה אוריינטציית המכשיר הייתה שונה מאוריינטציית ברירת המחדל של ה-AVD.
- תוקנו בעיות שקשורות לקריסות בזמן שמירת תמונות מצב.
- ב-Linux, מערכות קבצים מסוג btrfs עלולות לגרום להאטה קיצונית כי האמולטור שומר באופן אוטומטי תמונות מצב ומשתמש בהעתקה בעת כתיבה עבור מכשירי הדיסק הווירטואלי שלו. מומלץ לנקות את הספרייה
~/.android/avd
ולהריץ את הפקודה הבאה בספרייה הריקה~/.android/avd
: הפקודה הזו יוצרת תמונות מצב חדשות בתיקייה שבה השבתתם את ההעתקה בעת כתיבה.chattr +C
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 ביט
בגלל השימוש הנמוך והעלויות הגבוהות של התחזוקה, אנחנו מתכננים להוציא משימוש את גרסת 32 ביט של Android Emulator שפועלת ב-Windows. לפני ההסרה והיציאה משימוש של גרסת 32 ביט של Android Emulator, נשיק תוכנית מעבר. עם זאת, אנחנו רוצים לקבל משוב או לטפל בבעיות שקשורות לשינוי הזה בעתיד.
אם אתם מסתמכים כרגע על גרסת 32 ביט של Android Emulator שפועלת ב-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)
העדכון הזה כולל כמה תכונות חדשות, שיפורים בתכונות קיימות ותיקוני באגים.
תמונות מצב
מעכשיו אפשר לשמור כמה תמונות מצב של AVD להגדרת מכשיר מסוימת, ולבחור איזו מהתמונות השמורות לטעון כשמפעילים את האמולטור.
החל מ-Android Studio 3.2 Canary 13, כל הגדרת מכשיר כוללת אמצעי בקרה בהגדרות המתקדמות בתיבת הדו-שיח Virtual Device Configuration (הגדרת מכשיר וירטואלי), שבאמצעותו אפשר לציין איזו תמונת מצב של AVD לטעון כשמפעילים את ה-AVD.
כדי להתאים את עצמנו להרחבה הזו של תכונות התמונות, הוספנו קטגוריה בשם תמונות לתיבת הדו-שיח אמצעי בקרה מתקדמים. החלונית החדשה הזו מכילה אמצעי בקרה לשמירה ולטעינה של תמונות מצב של AVD, כולל אמצעי הבקרה לשמירה ולטעינה של תמונת המצב של האתחול המהיר, שהיו קודם בחלונית ההגדרות.
אפשר לערוך את השם והתיאור של כל תמונה ששמרתם.
פרטים נוספים זמינים במאמר בנושא תמונות מצב.
HAXM 7.2.0
HAXM 7.2.0 זמין עכשיו בכל הערוצים.
העדכון הזה כולל תיקוני באגים ושיפורים בתמיכה בכמויות גדולות של זיכרון RAM. בנוסף, בעקבות העדכון של HAXM ובאמולטור מגרסה 27.3 ואילך, התוכן של התמונות המהירות נטען לזיכרון ה-RAM לפי דרישה, במקום לטעון את כל התמונה המהירה כשהמכשיר הווירטואלי מופעל. השינוי הזה אמור לקצר משמעותית את הזמן שנדרש לטעינת תמונת מצב.
פרטים נוספים זמינים במאמר בנושא הגדרת האצת מכונות וירטואליות.
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 מופעלת עכשיו בתמונות של מכשירי Pixel ו-Pixel 2. הדבר הזה מצוין בAVD Manager ב-Android Studio מגרסה 3.2 ואילך באמצעות הלוגו של Google Play בעמודה Play Store. ב-AVD עם חנות Google Play מופעלת, יש כרטיסייה Google Play בתיבת הדו-שיח Extended controls (אמצעי בקרה מתקדמים), שכוללת לחצן נוח לעדכון Google Play Services במכשיר.
תמונות מצב
עכשיו אפשר לטעון תמונת מצב של הפעלה מהירה בלי להפעיל מחדש את האמולטור. כדי לטעון תמונת מצב, פותחים את החלון Extended Controls ועוברים לדף Settings. לאחר מכן לוחצים על הלחצן Load Now.
ביצענו שיפורים רבים בטעינה ובשמירה של תמונות מצב כדי לשפר את היעילות של השימוש במשאבים ולצמצם את הזמן שכל פעולה אורכת. אם עדיין נתקלתם בשמירות ארוכות באופן חריג, אתם יכולים לדווח על בעיה ולספק פרטים על המעבד, ה-RAM וההגדרות של כל תוכנת אנטי-וירוס, חומת אש או תוכנת אבטחה שפועלת.
רינדור באמצעות Skia
כשמשתמשים בתמונות ל-API 27 ואילך, האמולטור יכול לבצע רינדור של ממשק המשתמש של Android באמצעות Skia, שיכול לבצע רינדור בצורה חלקה ויעילה יותר.
בשלב הזה, כדי להשתמש ב-Skia צריך להפעיל אותו באופן מפורש.
כדי להפעיל את הרינדור של Skia, משתמשים בפקודות הבאות ב-adb shell:
su setprop debug.hwui.renderer skiagl stop start
מצלמה
ב-Windows, אמולטור Android משתמש עכשיו ב-Media Foundation כקצה העורפי של מצלמת האינטרנט, מה שמשפר מאוד את הביצועים ואת קצב הפריימים בצילום ממצלמת האינטרנט, עד 720p ו-30 FPS.
ב-Mac, עכשיו אפשר להשתמש ב-webcam0 וב-webcam1 ביחד.
שונות
האפשרות -phone-number-prefix
בשורת הפקודה השתנתה ל--phone-number [number]
, שמאפשרת להגדיר את מספר הטלפון המלא.
עכשיו אפשר להשתמש בכתובות SMS אלפאנומריות.
תיקונים
- גרסת Linux של Android Emulator נבנית עכשיו באמצעות ערכת כלים מודרנית של Clang C++. השינוי הזה פותר את הבעיה שגורמת לאמולטור להיכשל בהפעלה בגלל שגיאות 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 Emulator כדי להריץ אפליקציות של מציאות רבודה שמבוססות על ARCore, אם יש לכם תמונת מערכת עדכנית וגרסת טרום-הפצה של Android Studio. דרישות והוראות מפורטות זמינות במאמר בנושא הפעלת אפליקציות AR ב-Android Emulator.
27.1.10 (פברואר 2018)
רזולוציית הצילום במצלמה
עכשיו אפשר לצלם פריימים באיכות 720p ממצלמת אינטרנט שמחוברת למחשב.
כדי לעבוד עם תמונות מערכת של Android 8.1 (API ברמה 27) ואילך, לכל מצלמת אינטרנט שמחוברת למכשיר צריכה להיות היכולת לצלם פריימים באיכות 720p.
תיקונים
- תוקנה בעיה שגרמה לכך שצילום ממצלמת אינטרנט הפיק לפעמים תמונה מעוותת או תמונה ירוקה לגמרי.
- תוקנה בעיה שגרמה להודעה הבאה להופיע גם כשלא היה ניתוק בפועל: "emulator: ERROR: detected a hanging thread 'Qt event loop'. לא התקבלה תגובה במשך 15,000 אלפיות השנייה".
אם אתם עדיין נתקלים בבעיות של קריסות או חוסר יציבות אחר, אתם יכולים לדווח על בעיה.
27.1.7 (פברואר 2018)
חלון אמולטור ללא מסגרת:
כברירת מחדל, אמולטורים עם קובצי סקין של מכשירים מוצגים עכשיו ללא מסגרת חלון מסביב. כדי להציג את המסגרת של החלון שמסביב, מפעילים את האפשרות הצגת מסגרת החלון מסביב למכשיר בחלונית ההגדרות של החלון Extended Controls (אמצעי בקרה מתקדמים).
שיפורים בהפעלה מהירה כדי לעבוד בצורה יעילה יותר עם תמונות מצב של AVD:
- אפשר לשמור תמונת מצב של AVD בכל שלב באמצעות הלחצן שמירה מיידית בחלונית ההגדרות של תיבת הדו-שיח אמצעי בקרה מתקדמים.
- במקרים רבים, האמולטור מקצר את הזמן שנדרש לשמירת תמונת מצב, כי הוא שומר רק את ההבדל בין המצב הנוכחי לבין תמונת המצב שנשמרה קודם.
פרטים נוספים זמינים במאמר בנושא הפעלה מהירה.
האמולטור עודכן לשימוש ב-QEMU 2.9.
אלה כמה מהשיפורים הבולטים:
- אופטימיזציה של קלט/פלט (I/O) ונעילה של שרשור קלט/פלט ברמת גרנולריות גבוהה יותר לשיפור הביצועים.
- תוקנו באגים מאז QEMU 2.8 (26.1.4).
- הטמעה חדשה של קצה העורף (back end) של HAXM.
רשימת השינויים המלאה מופיעה ביומן השינויים של QEMU 2.9.
הטמעה של Swiftshader שתואמת ל-OpenGL ES 3.0:
המעבד הגרפי של Swiftshader במדמה תואם עכשיו באופן מלא ל-OpenGL ES 3.0. פרטים על רכיב ה-Renderer של Swiftshader מופיעים בקטע Settings > Advanced (הגדרות > מתקדם) של Extended Controls (אמצעי בקרה מתקדמים).
תיקונים
- תוקנה בעיה שבה שיתוף הלוח לא פעל אלא אם האפשרות הפעלת שיתוף הלוח הושבתה והופעלה מחדש.
- תוקנה בעיה שגרמה להשהיה כשמשתמשים בחלק האחורי של Swiftshader rendering עם AVD ברזולוציה נמוכה.
27.0.5 (ינואר 2018)
האפשרות ANGLE לעיבוד ב-Windows מושבתת עכשיו כברירת מחדל.
אם ANGLE מתאים לכם יותר, אתם יכולים להפעיל אותו מחדש באמצעות הדגל
-gpu angle_indirect
בשורת הפקודה. אפשרות אחרת היא לפתוח את חלון ההגדרות המתקדמות, לעבור אל הגדרות > מתקדם ולבחור באפשרות ANGLE D3D11 בהגדרה של OpenGL ES renderer.תוקנה הבעיה שבה הקשה על Shift+B לא הפיקה את האות B גדולה.
27.0.2 (דצמבר 2017)
תכונת ההפעלה המהירה החדשה מספקת זמני הפעלה מהירים יותר של האמולטור, על סמך תמונת מצב של מופע ה-AVD.
ההגדרה 'אתחול מהיר' מופעלת כברירת מחדל בכל מכשירי ה-AVD. בפעם הראשונה שמפעילים מכשיר וירטואלי של Android (AVD), הוא צריך לבצע הפעלה קרה (בדיוק כמו הפעלה של מכשיר), אבל כל ההפעלות הבאות מהירות והמערכת משוחזרת למצב שבו היא הייתה כשסגרתם את האמולטור (בדומה להעברה של מכשיר ממצב שינה למצב פעיל).
אם רוצים לקבוע מתי האמולטור ישמור תמונת מצב, פותחים את חלון הבקרה המתקדם של האמולטור ולוחצים על הגדרות. כאן אפשר לבחור אחת מההגדרות הבאות של שמירת מצב האתחול המהיר ביציאה:
- כן: תמונת המצב של האתחול המהיר נשמרת תמיד כשסוגרים את האמולטור. זוהי ברירת המחדל.
- לא: לעולם לא לשמור תמונת מצב של הפעלה מהירה; תמיד לבצע הפעלה קרה.
- Ask: תוצג הנחיה לשמירת תמונת המצב של האתחול המהיר כשסוגרים את האמולטור.
הבחירה חלה רק על ה-AVD הפתוח כרגע.
מידע נוסף זמין במסמכי התיעוד בנושא הפעלה מהירה.
נוספה תמיכה ב-Mac OpenGL ES 3 (לתמונות מערכת באמצעות רמת API 24 ומעלה, Google APIs ו-x86 ABI).
כדי לשפר את היציבות באפליקציות OpenGL ES 2 ומעלה, האמולטור משתמש עכשיו בפרופיל ליבה של OpenGL אם הוא זמין.
אפשרויות חדשות לעיבוד באמצעות Swiftshader / ANGLE:
-
-gpu swiftshader_indirect
: גרסה מהירה ויציבה יותר של Swiftshader שפועלת עם אתחול מהיר. -
-gpu angle_indirect
(Windows בלבד): גרסה יציבה יותר של ANGLE D3D שפועלת גם עם הפעלה מהירה.
האפשרויות הישנות יותר
-gpu swiftshader
ו--gpu angle
הוצאו משימוש. בחלון 'אמצעי בקרה מתקדמים', האפשרויות 'SwiftShader' ו-'ANGLE' להגדרת רכיב ה-rendering של OpenGL ES בהגדרות > מתקדמות משתמשות עכשיו בווריאציות של*_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 APIs אמור להיות רינדור תקין בצד האורח.
- תוקנה בעיה שבה האמולטור עבר לתוכנת רינדור בגלל זיהוי של יחידות GPU ישנות יותר של Intel, אבל האמולטור פעל בפועל על יחידת GPU נפרדת. ההחלטה לגבי כרטיסי ה-GPU שיוגדרו לשימוש ב-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
והאמולטור הופעל בלקוח של שולחן עבודה מרוחק. - הוספנו הבהרות להגדרות של 'רמת API של OpenGL ES (נדרשת הפעלה מחדש)'. הוספנו אפשרות לשנמוג מ-OpenGL ES 3 ל-OpenGL ES 2 אם נתקלים בבעיות או אם צריך לבצע בדיקות ברמות API נמוכות יותר של OpenGL ES.
- הרינדור של Mesa הוצא משימוש. מעכשיו,
hw.gpu.mode=mesa
יעבור אוטומטית לשימוש ב-Swiftshader במארח.
- שיפורים ב-macOS:
- האמולטור תואם עכשיו באופן מלא ל-macOS 10.13 High Sierra באמצעות Hypervisor.Framework או HAXM 6.2.0.
- Hypervisor.framework מופעל עכשיו כברירת מחדל ב-macOS לתמונות 32-bit x86 כדי לשפר את הביצועים ואת התאימות ל-macOS. אם נתקלתם בבעיות ספציפיות, אתם יכולים לדווח על באג ולצרף את
HVF = off
אל~/.android/advancedFeatures.ini
(צריך ליצור את הקובץ הזה אם הוא לא קיים). - תוקנו בעיות שקשורות למצב שבו אין אינטרנט או לניסיון כושל לצרף מאתר באגים בזמן השימוש ב-Hypervisor.framework.
- כדי לשפר את התאימות והביצועים של צילום ממצלמת אינטרנט, צילום המצלמה שמבוסס על QTKit הוחלף בצילום מבוסס-מאגר שמבוסס על AVFoundation.
- הוספנו תמיכה ב-Wi-Fi בחלק מתמונות המערכת (נכון לעכשיו רק ברמת API 25).
נקודת גישה בשם AndroidWifi זמינה, ו-Android מתחבר אליה באופן אוטומטי. אפשר להשבית את התמיכה ב-Wi-Fi על ידי הפעלת האמולטור עם פרמטר שורת הפקודה
-feature -Wifi
. - חלק מהמשתמשים הביעו דאגה לגבי נפח האחסון של תמונות המערכת בגודל קבוע בחנות Play, כי הוא לא מספיק. לכן, הגדלנו את הגודל ל-2GB כברירת מחדל (לעומת 800MB).
- נוסף מקש קיצור (Ctrl+Shift+U) לפתיחת דף ממשק המשתמש של דיווח על באגים ישירות מדף ההגדרות.
- תוקנה הבעיה שבה אם נעשה שימוש ביחידת עיבוד מרכזית (CPU) ישנה יותר עם Intel x86 EPT אבל בלי UG, האמולטור לא יופעל אם הוגדרה יותר מליבה אחת.
- תוקנה בעיה שבה HyperV זוהה בצורה לא תקינה אם האמולטור פעל בעצמו ב-Xen hypervisor.
- תוקנה בעיה שגרמה לקריסת האמולטור בהפעלה בחלק מההגדרות של Linux.
26.1.2 (יולי 2017)
הגרסה הזו כוללת תכונות חדשות ושיפורי ביצועים.
נוספה האפשרות להגדיר הגדרת HTTP proxy מותאמת אישית בפקדים המתקדמים (לוחצים על עוד
, ואז על הגדרות ועל Proxy). כברירת מחדל, האמולטור משתמש בהגדרות של שרת ה-Proxy מסוג HTTP של Android Studio, אבל במסך הזה אפשר להגדיר שרת Proxy באופן ידני.
נוספה תמיכה ב-VNC עבור GPU במצב אורח, כך שאפשר לצפות באמולטור מרחוק ולשלוט בו. לדוגמה, אפשר להפעיל את האמולטור ולאפשר ל-VNC להאזין ליציאה 5901 באופן הבא:
- ביצוע:
emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1
פותחים כלי לצפייה ב-VNC, כמו tightvnc viewer, כדי להתחבר ליציאה 5901.
כדי להשתמש בלקוח המובנה לשיתוף מסך ב-Mac, צריך להזין סיסמה ל-VNC כשמפעילים את האמולטור. כדי להגדיר סיסמה, משתמשים בפקודה הבאה:
emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1,password -monitor stdio
לאחר מכן מזינים
change vnc password
במסוף ומזינים סיסמה.
בשלב הזה, אין תמיכה ב-Android O במצב VNC.
- ביצוע:
הוספנו לחצן דיווח על באג במסך העזרה של אמצעי הבקרה המורחבים (לוחצים על סמל האפשרויות הנוספות
, ואז על עזרה ועל עזרה בנושא אמולטור). כשלוחצים על File a bug (דיווח על באג), נפתח חלון דו-שיח שבו אפשר לראות את פרטי דוח הבאג, כמו צילום המסך, פרטי ההגדרה של AVD ויומן דוח הבאג. אחרי כן תוכלו לשמור את הדוח לעצמכם או לדווח על בעיות באמולטור הדוחות.
נוסף חיישן גירוסקופ לאמולטור ולחלונית של חיישנים וירטואליים. כדי שהתכונה הזו תפעל, צריך תמונת מערכת עם תמיכה בגירוסקופ (נכון לעכשיו, רמת API 24 ו-25).
נוספה רשימת DNS מועדפת למארח ל-Qemu DNS ב-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
.
- אם נתקלים בבעיות ב-OpenGL ES 3, מוסיפים את השורה
האמולטור משתמש עכשיו ב-OpenGL FBOs מחוץ למסך לכל העיבוד, מלבד פרסום תמונת התצוגה הסופית. זה אמור לעזור בבעיות של עקביות הצבעים בפלטפורמות שונות.
אחרי שצברנו נתונים על בעיות של האטה פתאומית באמולטור, הגענו למסקנה שהבעיה קשורה לאינטראקציה מסוימת בין דרייברים ישנים של Intel OpenGL לבין עדכוני Windows. לכן, משתמשים עם כרטיסי מסך מסוג Intel HD 4000, 3000, 2000 (ומעבדים גרפיים קשורים) יכולים עכשיו להגדיר את העיבוד כברירת מחדל ל-D3D renderer (ANGLE) או ל-Swiftshader (תוכנת עיבוד).
26.0.0 (מרץ 2017)
הגרסה הזו תואמת לרמת API 26. הגרסה כוללת גם מספר שיפורים בביצועים ותיקוני באגים.
גרסת משנה 26.0.3 (מאי 2017)
- הוספנו דגלים של תכונות שאפשר לעדכן אונליין כדי לטפל במהירות בבעיות שנובעות מהגדרות חומרה בעייתיות. כך Google יכולה להשיק תיקונים ותכונות שתלויים בהגדרות המשתמשים, על ידי עדכון של דגלים בצד השרת. אם אתם מבחינים בבעיות בחומרה ספציפית, אתם יכולים לדווח על באג כדי שנוכל לבדוק את הבעיה.
- תמיכה חדשה בקלט סיבובי לתמונות מערכת ברמת API 25 של Android Wear. כדי לבצע אמולציה של חוגת הקלט הסיבובית במכשיר Wear, לוחצים על הכרטיסייה Rotary Input בחלון המורחב.
- תיבת הדו-שיח של דיווח על קריסות ניתנת לשינוי גודל, ולא מתאפסת יותר לשליחת דיווחים על קריסות לשליחת דיווחים על קריסות ללא קלט.
- כדי למנוע מצב שבו לא נשאר מקום לאמולטור במרחב הכתובות הווירטואלי של 2GB, באמולטור 32 ביט צריך להגדיר את גודל ה-RAM המקסימלי של ה-AVD ל-512MB או פחות.
- נוספה תמיכה בנתיבים מוחלטים בתמונות של אמולטורים.
- נוספת כרטיסייה חדשה בחלון המורחב לתמונות של חנות Google Play, שמוצגת בה גרסת Play Services ולחצן לבדיקת עדכונים של Play Services.
- נוסף תפריט נפתח לבחירת רכיב ה-OpenGL Renderer בדף ההגדרות של האמולטור. אם נתקלתם בבעיות במנהל ההתקן של OpenGL במחשב Windows, נסו להשתמש באפשרויות ANGLE (D3D11) או ANGLE (D3D9) (נדרשת הפעלה מחדש). אם נתקלתם בבעיות במנהל ההתקן של OpenGL במחשב שאינו Windows, נסו להשתמש בתוכנת Swiftshader לעיבוד תמונה (נדרשת הפעלה מחדש).
- תיקנו קריסה נדירה ביציאה כשהאמולטור מקבל את הפקודות
exit
ו-minimize
. - תוקנה בעיה שקשורה לשינוי גודל כשמחליפים מסכים במחשב Mac. (Issue 268296)
- תוקנה בעיה שבה האמולטור תופס 300% מה-CPU ומחזיק אותם אחרי שהמחשב המארח יוצא ממצב שינה או כשהאמולטור פועל במשך זמן רב.
- תוקנה קריסה שמתרחשת כשמכבים את האמולטור.
עדכונים בגרסה HAXM v6.1.1 (מרץ 2017)
הערה: החל מ-30 במרץ, גרסה HAXM v6.1.1 זמינה למשתמשי Mac דרך SDK Manager, ותהיה זמינה למשתמשי 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 של המארח (זה שמנהל את מכונת Windows הווירטואלית או האורח) צריך להשתמש בגרסה העדכנית ביותר של Hyper-V עם הפעלה של וירטואליזציה מקוננת. צריך להשבית את 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 במעבד הגרפי. רוב המערכות יכולות להגיע ל-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 revision 25.3.0.
תכונות חדשות ותיקוני באגים
- מנוע האמולציה עודכן ל-QEMU 2.7, כולל כל תיקוני הבאגים האחרונים, שיפורי הביצועים ותכונות חדשות.
- תמיכה חדשה ב-IPv6.
- האמולטור משתמש עכשיו ב-SwiftShader ככלי לרינדור תוכנה טהור במחשב המארח.
- שיפורים בביצועים של Android Pipe: Android Pipe, ערוץ התקשורת הראשי בין האמולטור לבין Android OS, מהיר עכשיו פי 10, זמן האחזור שלו נמוך יותר והוא מציע ביצועים טובים יותר בריבוי תהליכים. השינוי הזה מוביל לשיפורים בביצועים של האמולטור, כולל:
- שיפור המהירות של פעולות push/pull ב-ADB.
- תמיכה טובה יותר בהאצת תלת-ממד.
- שיפרנו את מהירות התגובה הכוללת של האמולטור.
- שיפור בביצועי הגרפיקה.
- האמולטור משתמש עכשיו בבאפרים בצד ה-GPU (glBindBuffers / glBufferData) כשהמערכת האורחת מבקשת אותם, וכך מצטמצם העומס על המעבד בחלק מהאפליקציות.
- שיפור התמיכה באודיו.
- קלט/פלט (I/O) מהיר יותר בדיסק: האמולטור משתמש עכשיו בשרשורים נפרדים כדי לשלוח קלט/פלט בדיסק, וכתוצאה מכך זמן האחזור קצר יותר והתפוקה טובה יותר (מהירות קלט/פלט רציפה גבוהה פי 1.5 בערך, מהירות קלט/פלט של גישה אקראית גבוהה פי 5 בערך). הפעולה הזו גם מקטינה את מספר הפעמים שבהן הנתונים נשמרים בדיסק, וכך העומס על המכשיר הפיזי נמוך בהרבה.
- האמולטור משתמש עכשיו בקבצים דלילים לאתחול הדיסק במחשבי Windows, וכך מקצר את זמן האתחול הראשון ואת זמן האתחול של 'מחיקת נתונים'. כשיוצרים או מאפסים מכשיר וירטואלי של Android (AVD), האמולטור כותב עכשיו 100-200MB של נתונים לדיסק, במקום 2GB או יותר.
- שיפורים שונים בממשק המשתמש:
- האמולטור משתמש עכשיו ב-Qt 5.7.0, שכולל תיקוני באגים ושיפורי ביצועים.
- האתחול של ממשק המשתמש כבר לא מנסה לטעון את כל קובצי ההפעלה של האמולטור כתוספי Qt, ולכן הוא קצר משמעותית, במיוחד בכונני HDD.
- האינטראקציות בממשק המשתמש מהירות וחלקות יותר עכשיו, כולל סיבוב, שינוי גודל החלון וטעינה וסגירה של חלון הבקרה המורחב.
OpenXR™ והלוגו של OpenXR הם סימנים מסחריים בבעלות The Khronos Group Inc. והם רשומים כסימן מסחרי בסין, באיחוד האירופי, ביפן ובבריטניה.