האמולטור פועל בצורה הטובה ביותר אם הוא יכול להשתמש בחומרה של המחשב, כמו המעבד, ה-GPU והמודם, במקום לפעול כתוכנה בלבד. היכולת להשתמש בחומרה של המחשב כדי לשפר את הביצועים נקראת שיפור מהירות באמצעות חומרה.
האמולטור יכול להשתמש בהאצת חומרה כדי לשפר את חוויית השימוש בשתי דרכים עיקריות:
- האצת גרפיקה לשיפור העיבוד של המסך
- האצת מכונות וירטואליות (VM) לשיפור מהירות הביצוע
ברוב המחשבים, ההגדרה 'שיפור מהירות באמצעות חומרה' מופעלת כברירת מחדל. אם האפשרות הזו לא מופעלת במחשב שלכם, בדף הזה מוסבר איך להגדיר האצת גרפיקה ומכונה וירטואלית (VM) כדי לשפר את הביצועים של האמולטור.
הגדרת האצת הגרפיקה
מכשירי Android משתמשים בממשקי API של OpenGL for Embedded Systems (OpenGL ES או GLES) ו-Vulkan כדי לעבד גרפיקה על המסך. שיפור מהירות באמצעות חומרה מאפשר להשתמש בחומרה של המחשב (בדרך כלל ב-GPU) כדי להפוך את העיבוד למהיר יותר. מומלץ להשתמש בהאצת חומרה כדי לשפר את הביצועים, אבל יכול להיות שתצטרכו להשתמש במצב תוכנה אם המחשב לא תואם בגלל תמיכה במנהל התקן גרפי או בגלל דרישות חסרות של תמונת המערכת.
כשיוצרים מכשיר וירטואלי של Android (AVD) ב-AVD Manager, אפשר לציין אם האמולטור ישתמש בהצגת תמונה (rendering) של חומרה או של תוכנה. במצב האוטומטי, האמולטור מחליט אם להשתמש בהאצת גרפיקה של חומרה או של תוכנה על סמך המחשב שלכם. אפשר גם לשנות את ההגדרה אם מפעילים את האמולטור משורת הפקודה.
הגדרת האצת גרפיקה ב-AVD Manager
כדי להגדיר האצת גרפיקה ב-AVD, פועלים לפי השלבים הבאים:
- פותחים את הכלי לניהול מכשירים.
- יוצרים AVD חדש או עורכים AVD קיים.
- בחלון הגדרה, מחפשים את הקטע ביצועים מדומיים בכרטיסייה הגדרות נוספות.
- בוחרים ערך לאפשרות האצת גרפיקה.
- לוחצים על סיום.
הגדרה של האצת הגרפיקה משורת הפקודה
כדי לציין סוג של האצת גרפיקה כשמריצים AVD משורת הפקודה, צריך לכלול את האפשרות -gpu
, כמו בדוגמה הבאה:
emulator -avd avd_name -gpu mode [{-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
האצת מכונת 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 Virtualization Technology (VT-x, vmx), כמו מעבדי Intel Core iX ו-Intel Core Ultra
- מעבדי AMD עם AMD-V (SVM), כמו מעבדי AMD Ryzen
- Apple silicon
דרישות נוספות למעבדי Intel ו-AMD:
נדרשת תרגום כתובות ברמה השנייה (Intel EPT או AMD RVI) למעבדי Intel ו-AMD. רוב המעבדים המודרניים של Intel ו-AMD תומכים בתרגום כתובות ברמה השנייה. יכול להיות שמעבדי Intel או AMD מהדור הראשון שמציעים הרחבות וירטואליזציה לא יכללו תרגומים של דפים ברמה השנייה.
אם אתם לא בטוחים אם המעבד שלכם תומך בתוספים הנדרשים, אתם יכולים לבדוק את המפרט של המעבד באתר היצרן. אם המעבד שלכם לא תומך בתוספים האלה, לא תוכלו להשתמש בהאצת מכונה וירטואלית.
הגבלות
ההגבלות הבאות חלות על האצת מכונות וירטואליות:
- אי אפשר להריץ אמולטור עם האצה של מכונה וירטואלית בתוך מכונה וירטואלית אחרת, כמו מכונה וירטואלית שמארחת VirtualBox, VMWare או Docker. צריך להריץ אמולטור עם האצת מכונה וירטואלית ישירות במחשב המארח.
- יכול להיות שבהתאם למערכת ההפעלה ול-hypervisor שלכם, לא תוכלו להריץ תוכנה שמשתמשת בטכנולוגיית וירטואליזציה אחרת במקביל להרצת אמולטור עם האצת מכונה וירטואלית. דוגמאות לתוכנות כאלה כוללות, בין היתר, פתרונות למכונות וירטואליות, תוכנות אנטי-וירוס מסוימות ופתרונות מסוימים למניעת רמאות. המצב הזה נצפה בעיקר ב-Windows עם Hyper-V מושבת. רוב התוכנות האלה יכולות להתקיים יחד עם אמולטור Android בלי בעיות. אבל אם מתרחשים עימותים, מומלץ לא להפעיל את האמולטור עם האצת VM בו-זמנית עם תוכנות כאלה.
מידע על hypervisors
כדי להאיץ את המכונה הווירטואלית צריך היפר-ויז'ור, כלי שמשתמש בהרחבות וירטואליזציה שמסופקות על ידי המעבד של המחשב.
בלי היפרויזור והאצת מכונה וירטואלית, האמולטור צריך לתרגם את קוד המכונה מהבלוק של המכונה הווירטואלית בלוק אחרי בלוק כדי להתאים לארכיטקטורה של המחשב המארח. התהליך הזה יכול להיות איטי למדי. אם משתמשים בהיפר-ויז'ר, והמכונה הווירטואלית והארכיטקטורה של המחשב המארח תואמות, האמולטור יכול להריץ קוד ישירות במעבד המארח באמצעות ההיפר-ויז'ר. השיפור הזה מגדיל באופן משמעותי את המהירות והביצועים של האמולטור.
ה-hypervisor שהכי מתאים לכם תלוי במערכת ההפעלה ובהגדרה של המחשב. מידע נוסף זמין באחד מהקטעים הבאים:
- הגדרת האצת מכונות וירטואליות ב-Windows
- הגדרת האצת מכונות וירטואליות ב-macOS
- הגדרת האצת מכונות וירטואליות ב-Linux
איך בודקים אם מותקן היפר-ויזור
אפשר להשתמש באפשרות -accel-check
של שורת הפקודה של האמולטור כדי לבדוק אם מותקן כרגע hypervisor במחשב.
בדוגמאות הבאות מוצגות דרכים להשתמש באפשרות accel-check
של האמולטור. בכל דוגמה, Sdk
הוא המיקום של Android SDK:
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.
הגדרת האצת מכונות וירטואליות ב-Windows
אפשר להשתמש באחד משני היפר-ויזורים להאצת מכונות וירטואליות ב-Windows:
- פלטפורמת ה-hypervisor של Windows (WHPX)
- מנהל ההתקן של ההיפר-ויז'ור (AEHD) של אמולטור Android
פלטפורמת ה-hypervisor של Windows משתמשת ב-Hyper-V Hypervisor שמסופק על ידי Windows, ומציעה את התאימות הטובה ביותר עם פחות חוסר יציבות. אם אפשר, כדאי להשתמש ב-WHPX.
אם המערכת שלכם לא תומכת ב-WHPX, או אם יש לכם חששות אחרים לגבי השימוש בה, אתם יכולים להשתמש במנהל ההתקן של Hypervisor של Android Emulator.
הגדרת האצת מכונה וירטואלית באמצעות Windows Hypervisor Platform
כדי להפעיל את WHPX, המחשב שלכם צריך לעמוד בדרישות הבאות:
- מעבדי Intel: תמיכה בתכונות Virtualization Technology (VT-x), Extended Page Tables (EPT) ו-Unrestricted Guest (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 כדי לפתוח את תפריט ההתחלה.
בסרגל החיפוש, מקלידים הפעלה או השבתה של תכונות Windows.
לוח הבקרה הפעלה או השבתה של תכונות Windows אמור להופיע, וצריך לבחור בו.
מקישים על מקש Enter או לוחצים על הפעלה או השבתה של תכונות Windows כדי להפעיל את לוח הבקרה.
מסמנים את התיבה שלצד Windows Hypervisor Platform.
לוחצים על אישור.
אחרי שההתקנה מסתיימת, מפעילים מחדש את המחשב.
הגדרת האצת מכונה וירטואלית באמצעות מנהל ההיפר-ויזורים של Android Emulator (AEHD) ב-Windows
כדי להתקין ולהשתמש במנהל ההיפר-ויזורים של Android Emulator, המחשב שלכם צריך לעמוד בדרישות הבאות:
- מעבדי Intel או AMD עם תוסף וירטואליזציה.
Windows 11 או Windows 10 בגרסת 64 ביט (אין תמיכה ב-Windows בגרסת 32 ביט)
משתמשי Windows 8.1, Windows 8 ו-Windows 7 יכולים להמשיך להשתמש ב-AEHD 1.7 או בגרסאות קודמות. עם זאת, לא תהיה תמיכה בתרחישים כאלה.
צריך להשבית את התכונות שמשתמשות גם ב-Hypervisor של Windows Hyper-V בתיבת הדו-שיח Windows Features.
רכיבים מסוימים של Windows מפעילים גם את Windows Hyper-V Hypervisor ומשתמשים בו, גם אם Windows Hypervisor Platform לא נבחרה בתיבת הדו-שיח Windows Features. הן כוללות תכונות אבטחה כמו Hyper-V, Core Isolation ועוד. (שימו לב שהתכונה Hyper-V היא לא אותו דבר כמו Hyper-V Hypervisor). אם אתם צריכים את התכונות האלה, אתם יכולים להשתמש ב-WHPX.
במעבדי AMD, אפשר להתקין את מנהל ההיפר-ויזורים של Android Emulator דרך SDK Manager ב-Android Studio 4.0 Canary 5 ואילך.
במעבדי Intel, אפשר להתקין את מנהל ההיפר-ויזורים של Android Emulator דרך SDK Manager ב-Android Studio Flamingo או בגרסאות חדשות יותר.
כדי להתקין מ-SDK Manager:
- בוחרים באפשרות Tools > SDK Manager.
- לוחצים על הכרטיסייה SDK Tools (כלים ל-SDK) ובוחרים באפשרות Android Emulator hypervisor driver (מנהל התקן של היפר-ויז'ר לאמולטור Android).
- לוחצים על אישור כדי להוריד ולהתקין את מנהל ההתקן של 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) ...
אפשר גם להוריד ולהתקין את מנהל ההיפר-ויזורים של Android Emulator מ-GitHub.
אחרי שפורקים את חבילת מנהלי ההתקנים, מריצים את הפקודה silent_install.bat
בשורת הפקודה עם הרשאות אדמין.
כדי להסיר את מנהל ההיפר-ויזורים של Android Emulator, מריצים את הפקודות הבאות בשורת פקודה עם הרשאות אדמין:
AEHD 2.1 ואילך
sc stop aehd
sc delete aehd
AEHD 2.0 ומטה
sc stop gvm
sc delete gvm
הגדרת האצת מכונות וירטואליות ב-macOS
ב-macOS, כלי Android Emulator משתמש ב-Hypervisor.Framework המובנה, שנדרשת בשבילו מערכת macOS מגרסה 10.10 (Yosemite) ואילך. עם זאת, יכול להיות ש-Android Studio ידרוש גרסה גבוהה יותר של macOS. במקרים כאלה, צריך לפעול לפי דרישות המערכת של Android Studio.
הגדרת האצת מכונות וירטואליות ב-Linux
מערכות מבוססות-Linux תומכות בהאצת מכונות וירטואליות באמצעות חבילת התוכנה KVM. פועלים לפי ההוראות להתקנת KVM במערכת Linux, ואז מוודאים ש-KVM מופעל. במערכות Ubuntu, אפשר לעיין במאמר בנושא התקנת Ubuntu KVM.
דרישות
כדי להריץ KVM צריך הרשאות משתמש ספציפיות. צריך לוודא שיש לכם הרשאות מספיקות כמו שמוסבר בהוראות ההתקנה של KVM.
כדי להשתמש בהאצת מכונות וירטואליות ב-Linux, המחשב צריך לעמוד גם בדרישות הבאות:
- למעבדי Intel: תמיכה בטכנולוגיית וירטואליזציה (VT-x), בתכונות Intel EM64T (Intel 64) ובהפעלת הפונקציונליות של Execute Disable (XD) Bit.
- למעבדי AMD: תמיכה ב-AMD Virtualization (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 מציין שהמעבד לא תומך בווירטואליזציה של חומרה.
מריצים את הפקודה
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
Karmic (9.10) או גרסה מוקדמת יותר:
sudo aptitude install kvm libvirt-bin ubuntu-vm-builder bridge-utils
מדריך להסרת Intel HAXM
הוצאנו את HAXM משימוש לפני זמן מה (01/2023) כי Intel הפסיקה את הפיתוח של HAXM.
החל מגרסת אמולטור 36.2.x.x, אמולטור Android לא ישתמש יותר ב-HAXM. אם השתמשתם בו בעבר, תצטרכו להתקין מנהל התקן חדש של Hypervisor. מומלץ להשתמש ב-Windows Hypervisor Platform (WHPX) של מיקרוסופט.
מומלץ להסיר את 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 Manager מ-Android Studio
אם התקנתם בעבר את HAXM באמצעות SDK Manager, עדיין אמור להופיע המודול בכרטיסייה SDK Tools.
פותחים את הכלי לניהול ערכות SDK מ-Android Studio, עוברים לכרטיסייה SDK Tools (כלים ל-SDK) ואז עוברים לשורה Intel x86 Emulator Accelerator (HAXM installer) - Deprecated (מאיץ אמולטור Intel x86 (התקנת HAXM) – הוצא משימוש). הוא אמור להיראות כמו בצילום המסך הבא.
מבטלים את הסימון בתיבת הסימון כמו שמוצג בצילום המסך הבא.
לוחצים על הלחצן 'אישור' ומופיעה תיבת הדו-שיח הבאה.
אחרי הסרה מוצלחת של Intel HAXM, אמור להופיע המסך הבא.
ההסרה הסתיימה ואפשר להפסיק כאן.
אם מופיעות שגיאות, ממשיכים אל השלב הבא.
מסירים את Intel HAXM באמצעות ההגדרות של Windows.
פותחים את ההגדרות של Windows ועוברים אל 'אפליקציות > אפליקציות מותקנות'.
מאתרים את הרשומה Intel Hardware Accelerated Execution Manager (מנהל ביצוע מואץ של חומרה של Intel) ולוחצים על Uninstall (הסרה), כמו שמוצג בצילום המסך הבא.
תוכנת ההסרה של Intel HAXM אמורה לפעול ולדווח על התוצאה. אם ההסרה מצליחה, עוברים אל מחיקת חבילת ההתקנה של Intel HAXM. אם לא, ממשיכים לשלב הבא.
הסרת התקנה באמצעות שורת הפקודה
מריצים את הפקודה 'sc stop intelhaxm' כדי להפסיק את שירות Intel HAXM. הפלט הבא אמור להתקבל:
מחיקת שירות 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. דוגמה בצילום המסך הבא.