האמולטור פועל בצורה הטובה ביותר אם הוא יכול להשתמש בחומרה של המכונה, למשל המעבד (CPU), ה-GPU והמודם, במקום לפעול כתוכנה טהורים. היכולת להשתמש בחומרה של המכונה כדי לשפר את הביצועים נקראת שיפור מהירות באמצעות חומרה.
האמולטור יכול להשתמש בהאצת חומרה כדי לשפר את החוויה בשתי דרכים עיקריות:
- האצת גרפיקה לעיבוד מסך משופר
- הגברת מהירות המכונות הווירטואליות (VM) לשיפור מהירות הביצוע
ההגדרה 'שיפור מהירות באמצעות חומרה' מופעלת כברירת מחדל ברוב המחשבים. אם האפשרות לא מופעלת במחשב שלכם, במאמר הזה נסביר איך להגדיר את הגרפיקה ואת האצת המכונות הווירטואליות (VM) כדי לשפר את הביצועים מהאמולטור.
הגדרה של האצת הגרפיקה
במכשירי Android נעשה שימוש ב-OpenGL למערכות מוטמעות (OpenGL ES או GLES) ובממשקי API של Vulkan לעיבוד גרפיקה במסך. התכונה 'שיפור מהירות הגרפיקה' מאפשרת להשתמש בחומרת המחשב (בדרך כלל ה-GPU) כדי להאיץ את העיבוד. מומלץ להשתמש בהאצת חומרה כדי לשפר את הביצועים, אבל יכול להיות שתצטרכו להשתמש במצב תוכנה אם המחשב לא תואם בגלל תמיכה במנהל התקן הגרפיקה או בגלל דרישות של תמונת המערכת.
כשיוצרים מכשיר וירטואלי של Android (AVD) במנהל ה-AVD, אפשר לציין אם האמולטור משתמש בעיבוד חומרה או תוכנה. במצב האוטומטי, האמולטור מחליט אם להשתמש בהאצת גרפיקה של חומרה או תוכנה על סמך המחשב שלכם. אפשר לשנות את ההגדרה גם אם מפעילים את האמולטור משורת הפקודה.
הגדרת האצת הגרפיקה במנהל ה-AVD
כדי להגדיר האצת גרפיקה עבור AVD, מבצעים את הפעולות הבאות:
- פותחים את מנהל המכשירים.
- יוצרים AVD חדש או עורכים AVD קיים.
- בחלון Configuration, מאתרים את הקטע Emulated Performance בכרטיסייה Additional Settings.
- בוחרים ערך לאפשרות האצת גרפיקה.
- לוחצים על סיום.
הגדרה של האצת גרפיקה משורת הפקודה
כדי לציין את הסוג של האצת הגרפיקה כשמריצים AVD משורת הפקודה, צריך לכלול את האפשרות -gpu
, כפי שמוצג בדוגמה הבאה:
emulator -avdavd_name -gpumode [{-option [value ]} ... ]
אפשר להגדיר את הערך של mode
לאחת מהאפשרויות הבאות:
auto
: מאפשרים לאמולטור לבחור בין האצת גרפיקה באמצעות חומרה או תוכנה על סמך ה-AVD, הגדרת המחשב ומדדי האיכות.host
: שימוש ב-GPU במחשב לשיפור המהירות באמצעות חומרה. האפשרות הזו בדרך כלל מספקת את הביצועים הגרפיים ואת הביצועים הטובים ביותר לאמולטור, והיא יכולה להפעיל את MoltenVK ב-macOS כדי שהרינדור של Vulkan מואץ. עם זאת, אם יש בעיות באמולציה של הגרפיקה, יכול להיות שתצטרכו לעבור לרינדור תוכנה.swiftshader_indirect
: שימוש בגרסה שתואמת לאתחול מהיר של SwiftShader כדי לעבד גרפיקה באמצעות שיפור מהירות התוכנה. האפשרות הזו היא אלטרנטיבה טובה למצבhost
אם אי אפשר לשפר את המהירות באמצעות חומרה במחשב.
האפשרויות הבאות של mode
הוצאו משימוש:
swiftshader
: הוצאה משימוש בגרסה 27.0.2. במקום זאת, אתם צריכים להשתמש ב-swiftshader_indirect
.angle
: הוצאה משימוש בגרסה 27.0.2. במקום זאת, אתם צריכים להשתמש ב-swiftshader_indirect
.mesa
: הוצאה משימוש בגרסה 25.3. במקום זאת, אתם צריכים להשתמש ב-swiftshader_indirect
.guest
: הוצא משימוש לרמות API 28 ואילך. במקום זאת, אתם צריכים להשתמש ב-swiftshader_indirect
.angle_indirect
: הוצאה משימוש בגרסה 34.2.14. במקום זאת, אתם צריכים להשתמש ב-swiftshader_indirect
.
איך מגדירים האצת מהירות ב-VM
התכונה 'שיפור מהירות במכונות וירטואליות' משתמשת במעבד של המחשב כדי לשפר משמעותית את מהירות הביצוע של האמולטור. כלי שנקרא hypervisor מנהל את האינטראקציה הזו באמצעות תוספי הווירטואליזציה שהמעבד של המחשב מספק. בקטע הזה מפורטות הדרישות לשימוש בשיפור המהירות באמצעות מכונות וירטואליות, ומוסבר איך להגדיר את שיפור המהירות באמצעות מכונות וירטואליות בכל מערכת הפעלה.
דרישות כלליות
כדי להשתמש בהאצת מכונות וירטואליות באמצעות האמולטור, המחשב צריך לעמוד בדרישות הכלליות שמפורטות בקטע הזה. המחשב צריך גם לעמוד בדרישות אחרות שספציפיות למערכת ההפעלה.
דרישות לגבי סביבת הפיתוח
כדי להשתמש בהאצת מכונות וירטואליות, סביבת הפיתוח צריכה לעמוד בדרישות האלה:
- SDK Tools: גרסה 17 לפחות, מומלץ גרסה 26.1.1 ואילך
AVD: גרסת Android הנדרשת מתוארת בטבלה הבאה.
ארכיטקטורת מעבד (CPU) דרישות תמונת מערכת X86_64 תמונות מערכת x86 או x86_64 ל-Android 2.3.3 (רמת API 10) ואילך ARM64 תמונות מערכת של Arm64-v8a ל-Android 5.0 (רמת API 21) ואילך
הדרישות לגבי תוספי וירטואליזציה
בנוסף לדרישות של סביבת הפיתוח, המעבד במחשב צריך לתמוך בתוספי וירטואליזציה. המעבדים הנתמכים הם:
- מעבדי Intel עם טכנולוגיית וירטואליזציה של Intel (VT-x, vmx), כמו מעבדי Intel Core iX ומעבדי Intel Core Ultra
- מעבדי AMD עם AMD-V (SVM), כגון מעבדי AMD Ryzen
- Apple סיליקון
דרישות נוספות למעבדי Intel ו-AMD:
תרגום כתובת ברמה שנייה (Intel EPT או AMD RVI) נדרש במעבדי Intel ו-AMD. רוב המעבדים המודרניים של Intel ו-AMD תומכים בתרגום כתובות ברמה השנייה. רק למעבדי Intel או AMD מדור ראשון עם תוספי וירטואלי לא יכולים להיות תרגום דפים ברמה השנייה.
אם אתם לא בטוחים אם המעבד תומך בתוספים הנדרשים, תוכלו לעיין במפרט של המעבד באתר של היצרן. אם המעבד לא תומך בתוספים האלה, לא תוכלו להשתמש בשיפור המהירות באמצעות מכונות וירטואליות.
הגבלות
אלו המגבלות שחלות על שיפור המהירות ב-VM:
- אי אפשר להריץ אמולטור שמואץ ל-VM בתוך מכונה וירטואלית אחרת, למשל מכונה וירטואלית שמתארחת ב-VirtualBox, VMWare או Docker. עליכם להריץ אמולטור שמואץ באמצעות VM ישירות במחשב המארח.
- בהתאם למערכת ההפעלה ול-hypervisor, יכול להיות שלא תוכלו להפעיל תוכנה שמשתמשת בטכנולוגיית וירטואליזציה אחרת בזמן ההפעלה של אמולטור מואץ באמצעות VM. דוגמאות לתוכנות כאלה כוללות, בין היתר, פתרונות של מכונות וירטואליות, תוכנות אנטי-וירוס מסוימות ומספר פתרונות להונאה. אפשר לראות את המצב הזה בעיקר ב-Windows עם Hyper-V כבוי. רוב התוכנות האלה יכולות לפעול יחד עם האמולטור של Android בלי בעיות. אבל כשיש התנגשויות, מומלץ לא להפעיל את האמולטור שמואץ באמצעות VM בו-זמנית עם תוכנה כזו.
מידע על hypervisors
כדי לשפר את המהירות של מכונות וירטואליות, צריך להשתמש ב-hypervisor, כלי שמשתמש בתוספי וירטואליזציה שסופקו על ידי המעבד במחשב.
בלי hypervisor והאצה של מכונות וירטואליות, האמולטור צריך לתרגם את קוד המכונה מבלוק ה-VM לפי בלוק, כדי להתאים לארכיטקטורה של המחשב המארח. התהליך הזה יכול להיות די איטי. עם hypervisor, כשה-VM והארכיטקטורה של המחשב המארח תואמות, האמולטור יכול להריץ קוד ישירות במעבד המארח באמצעות hypervisor. השיפור הזה מגדיל משמעותית את המהירות ואת הביצועים של האמולטור.
ה-hypervisor שהכי מתאים לכם תלוי במערכת ההפעלה ובהגדרות של המחשב. מידע נוסף זמין באחד מהקטעים הבאים:
- הגדרת האצת מכונה וירטואלית ב-Windows
- הגדרה של האצת מכונות וירטואליות ב-macOS
- הגדרה של האצת מכונות וירטואליות ב-Linux
בדיקה אם מותקנת hypervisor
תוכלו להשתמש באפשרות שורת הפקודה -accel-check
באמולטור כדי לבדוק אם במחשב מותקן hypervisor כרגע.
בדוגמאות הבאות מוסבר איך להשתמש באפשרות האמולטור accel-check
. בכל דוגמה, Sdk
הוא המיקום של ה-SDK של Android:
Windows:
c:\Users\janedoe\AppData\Local\Android>Sdk \emulator\emulator -accel-check accel: 0 WHPX(10.0.22631) is installed and usable. accel
macOS:
janedoe-macbookpro:Android janedoe$ ./Sdk /emulator/emulator -accel-check accel: 0 Hypervisor.Framework OS X Version 13.2 accel
Linux:
janedoe:~/Android$ ./Sdk /emulator/emulator -accel-check accel: 0 KVM (version 12) is installed and usable.
איך מגדירים האצת מהירות באמצעות VM ב-Windows
כדי לשפר את המהירות של מכונות וירטואליות ב-Windows, אפשר להשתמש באחד משני שירותי hypervisors:
- Windows Hypervisor Platform (WHPX)
- מנהל התקן hypervisor של Android (AEHD)
ב-Windows Hypervisor Platform נעשה שימוש ב-Hyper-V Hypervisor של Windows, והיא מציעה את התאימות הטובה ביותר עם חוסר יציבות מופחת. אם ניתן, מומלץ להשתמש ב-WHPX.
אם המערכת שלכם לא תומכת ב-WHPX, או אם יש לכם חששות בנוגע לשימוש בו, תוכלו להשתמש ב-Android Emulator Hypervisor Driver.
הגדרת האצת מכונות VM באמצעות Windows Hypervisor Platform
כדי להפעיל WHPX, המחשב צריך לעמוד בדרישות הבאות:
- מעבדי Intel: תמיכה בתכונות וירטואליזציה (VT-x), טבלאות דפים מורחבים (EPT) ואורח ללא הגבלה (UG). חובה להפעיל את VT-x בהגדרות ה-BIOS של המחשב.
- מעבדי AMD: מומלץ להשתמש במעבד AMD Ryzen. חובה להפעיל וירטואליזציה או SVM בהגדרות BIOS במחשב.
- Android Studio 3.2 Beta 1 ואילך
- Android Emulator מגרסה 27.3.8 ואילך
- Windows 10 ואילך
כדי להתקין את WHPX ב-Windows, מבצעים את השלבים הבאים:
- משולחן העבודה של Windows, לוחצים על הסמל של Windows כדי לפתוח את תפריט ההתחלה.
בסרגל החיפוש, מקלידים Turn Windows features on or off (הפעלה או השבתה של תכונות Windows).
לוח הבקרה Turn Windows features on or off (הפעלה או השבתה של תכונות Windows) אמור להופיע ולהיבחר.
כדי להפעיל את לוח הבקרה, מקישים על מקש Enter או על Turns Windows Features on or off (הפעלה או כיבוי של תכונות Windows).
מסמנים את התיבה לצד Windows Hypervisor Platform.
לוחצים על אישור.
לאחר סיום ההתקנה, יש להפעיל מחדש את המחשב.
הגדרה של האצת מכונות VM באמצעות מנהל התקן hypervisor של Android Emulator (AEHD) ב-Windows
כדי להתקין את מנהל התקן hypervisor של Android Emulator ולהשתמש בו, המחשב צריך לעמוד בדרישות הבאות:
- מעבדי Intel או AMD עם תוסף וירטואליזציה.
Windows 11 או Windows 10 בגרסת 64 ביט (אין תמיכה ב-Windows בגרסת 32 ביט)
משתמשי Windows 8.1, Windows 8 ו-Windows 7 יכולים להמשיך להשתמש ב-AEHD מגרסה 1.7 ומטה. עם זאת, לא תהיה תמיכה בתרחישים כאלה.
כדי תכונות שמשתמשות גם ב-Windows Hyper-V Hypervisor, צריך להשבית בתיבת הדו-שיח 'תכונות של Windows'.
גם רכיבי Windows מסוימים מפעילים את Windows Hyper-V Hypervisor ומשתמשים בה, גם אם Windows Hypervisor Platform לא מסומנת בתיבת הדו-שיח של התכונות של Windows. אמצעי האבטחה האלה כוללים, למשל, Hyper-V, בידוד ליבה ועוד. (שימו לב: התכונה Hyper-V שונה מ-Hyper-V Hypervisor). אם אתם צריכים את התכונות האלה, צריך להשתמש במקום זאת ב-WHPX.
במעבדי AMD, אפשר להתקין את מנהל התקן hypervisor של Android Emulator דרך SDK Manager ב-Android Studio 4.0 Canary 5 ואילך.
במעבדי Intel, אפשר להתקין את מנהל התקן ה-hypervisor של Android Emulator דרך מנהל ה-SDK ב-Android Studio Flamingo ואילך.
כדי להתקין מ-SDK Manager, מבצעים את השלבים הבאים:
- בוחרים באפשרות כלים > מנהל SDK.
- לוחצים על הכרטיסייה SDK Tools ובוחרים באפשרות Android Emulator hypervisordriver.
- לוחצים על אישור כדי להוריד ולהתקין את מנהל התקן hypervisor של Android Emulator.
לאחר ההתקנה, מוודאים שמנהל ההתקן פועל באופן תקין באמצעות הפקודה הבאה של שורת הפקודה:
AEHD 2.1 ואילך
sc query aehd
הודעת סטטוס כוללת את הפרטים הבאים:
SERVICE_NAME: aehd ... STATE : 4 RUNNING ...
הודעת השגיאה הבאה מופיעה אם תוסף הווירטואליזציה לא מופעל ב-BIOS או ש-Hyper-V לא מושבת:
SERVICE_NAME: aehd ... STATE : 1 STOPPED WIN32_EXIT_CODE : 4294967201 (0xffffffa1) ...
AEHD 2.0 ומטה
sc query gvm
הודעת סטטוס כוללת את הפרטים הבאים:
SERVICE_NAME: gvm ... STATE : 4 RUNNING ...
הודעת השגיאה הבאה מופיעה אם תוסף הווירטואליזציה לא מופעל ב-BIOS או ש-Hyper-V לא מושבת:
SERVICE_NAME: gvm ... STATE : 1 STOPPED WIN32_EXIT_CODE : 4294967201 (0xffffffa1) ...
אפשר גם להוריד ולהתקין את מנהל התקן ה-hypervisor של Android Emulator מ-GitHub.
אחרי שחרור חבילת הנהג, מריצים את silent_install.bat
בשורת פקודה עם הרשאות אדמין.
אפשר להסיר את מנהל התקן ה-hypervisor של Android Emulator באמצעות הפקודות הבאות בשורת הפקודה עם הרשאות אדמין:
AEHD 2.1 ואילך
sc stop aehd
sc delete aehd
AEHD 2.0 ומטה
sc stop gvm
sc delete gvm
איך מגדירים האצת מכונות VM ב-macOS
ב-macOS, אפליקציית אמולטור Android משתמשת ב-Hypervisor.Framework המובנה, שמחייב macOS מגרסה 10.10 (Yosemite) ואילך. עם זאת, יכול להיות שמערכת Android Studio תדרוש גרסה גבוהה יותר של macOS. במקרים כאלה, צריך לעמוד בדרישות המערכת של Android Studio.
איך מגדירים האצת מכונות VM ב-Linux
מערכות מבוססות Linux תומכות בהאצת מכונות וירטואליות באמצעות חבילת התוכנה KVM. פועלים לפי ההוראות להתקנת KVM במערכת Linux ולאחר מכן מוודאים שה-KVM מופעל. למערכות Ubuntu, ראו התקנת Ubuntu KVM.
דרישות
כדי להריץ KVM נדרשות הרשאות משתמש ספציפיות. מוודאים שיש לכם את ההרשאות מספיקות, כפי שמתואר בהוראות להתקנת KVM.
כדי להשתמש בהאצת מכונות וירטואליות ב-Linux, המחשב צריך גם לעמוד בדרישות הבאות:
- למעבדי Intel: תמיכה בתכונות Virtualization Technology (VT-x), Intel EM64T (Intel 64) ופונקציונליות ביט לביצוע השבתה (XD) שמופעלת.
- למעבדי AMD: תמיכה בווירטואליזציה של AMD (AMD-V).
בדיקה אם KVM מותקן כרגע ב-Linux
תוכלו להשתמש באפשרות שורת הפקודה -accel-check
של האמולטור כדי לבדוק אם KVM מותקנת. לחלופין, אפשר להתקין את החבילה cpu-checker
שמכילה את הפקודה kvm-ok
.
בדוגמה הבאה אפשר לראות איך משתמשים בפקודה kvm-ok
:
התקנת החבילה
cpu-checker
:sudo apt-get install cpu-checker egrep -c '(vmx|svm)' /proc/cpuinfo
אם הפלט הוא 1 או יותר, סימן שיש תמיכה בווירטואליזציה. אם הפלט הוא 0, המעבד (CPU) לא תומך בווירטואליזציה של חומרה.
מריצים את הפקודה
kvm-ok
:sudo kvm-ok
הפלט הצפוי:
INFO: /dev/kvm exists KVM acceleration can be used
אם קיבלתם את השגיאה הבאה, אתם עדיין יכולים להפעיל מכונות וירטואליות. עם זאת, המכונה הווירטואלית תהיה איטית יותר ללא תוספי KVM.
INFO: Your CPU does not support KVM extensions KVM acceleration can NOT be used
התקנת KVM ב-Linux
כדי להתקין KVM, משתמשים בפקודה הבאה:
Cosmic (18.10) ואילך:
sudo apt-get install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils
Lucid (10.04) ואילך:
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
קרמי (9.10) או מוקדם יותר:
sudo aptitude install kvm libvirt-bin ubuntu-vm-builder bridge-utils
מדריך להסרת Intel HAXM
החל מהאמולטור 33.x.x.x, HAXM הוצאה משימוש כי Intel מפסיקה את הפיתוח של HAXM. מנהל התקן hypervisor של Android Emulator (AEHD) מחליף את Intel HAXM במעבדי Intel.
מומלץ להסיר לגמרי את Intel HAXM ממערכת Windows, אלא אם התקנתם תוכנה אחרת שתלויה ב-HAXM ובחרתם לשמור את Intel HAXM ולנהל אותו בעצמכם.
כדי להסיר את Intel HAXM, מבצעים את הפעולות הבאות:
בדיקה אם Intel HAXM מותקן
כדי לבדוק אם Intel HAXM מותקנת במערכת Windows, פותחים מסוף פקודה של Windows ומריצים את הפקודה הבאה:
sc query intelhaxm
אם Intel HAXM מותקנת ומופעלת, ההודעה הבאה אמורה להופיע בפלט הפקודה.
אם Intel HAXM מותקן אבל מושבת, ההודעה הבאה אמורה להופיע בפלט הפקודה.
בשני המקרים, גם אם Intel HAXM פועל או מושבת, הוא מותקן בשני המקרים. עליכם לעבור לשלב הבא כדי להמשיך להסיר את Intel HAXM.
אם Intel HAXM לא מותקן, אמורה להופיע ההודעה הבאה.
איך מסירים את Intel HAXM באמצעות מנהל SDK מ-Android Studio
פותחים את מנהל ה-SDK מ-Android Studio, נכנסים לכרטיסייה SDK Tools ומנווטים לשורה 'Intel x86 Emulator Accelerator (מנהל ההתקנה HAXM – הוצא משימוש)'. הוא אמור להיראות כמו צילום המסך הבא.
מוחקים את תיבת הסימון כפי שמוצג בצילום המסך הבא.
לוחצים על הלחצן Apply (אישור) ותיבת הדו-שיח הבאה אמורה להופיע.
כשמסירים את ההתקנה של Intel HAXM, אמורים להופיע השגיאות הבאות.
ההסרה הסתיימה ואפשר להפסיק אותה כאן.
אם קיימות שגיאות, ממשיכים לשלב הבא.
מסירים את Intel HAXM באמצעות "הגדרות" של Windows.
פותחים את ה'הגדרות' של Windows ועוברים אל 'אפליקציות' > 'אפליקציות מותקנות'.
מאתרים את הרשומה 'Intel Hardware Accelerated Execution Manager' ולוחצים על 'Uninstall' (הסרה), כפי שמוצג בצילום המסך הבא.
תוכנת ההסרה של Intel HAXM אמורה להריץ את התוצאה ולדווח על התוצאה. אם ההסרה בוצעה בהצלחה, עוברים אל מחיקת חבילת מנהל ההתקנה של Intel HAXM. אם לא, המשיכו לשלב הבא.
הסרת התקנה באמצעות שורת פקודה
הפסקת שירות Intel HAXM באמצעות הרצת sc stop intelhaxm. הפלט הבא אמור להופיע.
מוחקים את שירות Intel HAXM באמצעות הרצת 'sc delete intelhaxm'. הפלט הבא אמור להופיע.
עוברים אל מחיקת חבילת מנהל ההתקנה של Intel HAXM.
מחיקת חבילת מנהל ההתקנה של Intel HAXM.
השלב הזה נדרש רק כשמסירים את Intel HAXM באמצעות 'הגדרות' או שורת פקודה של Windows. בלי השלב הזה, מנהל ה-SDK של Android Studio יכול להמשיך להציג את Intel HAXM בסטטוס 'מותקן'.
חבילת מנהל ההתקנה ממוקמת בתיקייה <Your Android SDK folder>\extras\intel.
כברירת מחדל, Android SDK מותקן בכתובת "C:\Users\<Your Windows User ID
>\AppData\Local\Android\Sdk". תוכלו לראות דוגמה בצילום המסך הבא.