האמולטור פועל בצורה הטובה ביותר אם הוא יכול להשתמש בחומרה של המחשב, למשל במעבד (CPU), ביחידת ה-GPU ובמודם, במקום לפעול כתוכנה טהור. היכולת להשתמש החומרה של המחשב לשיפור הביצועים נקראת חומרה האצה.
האמולטור יכול להשתמש בהאצת חומרה כדי לשפר את בשתי דרכים עיקריות:
- האצת גרפיקה למסך משופר רינדור
- הגברת מהירות המכונות הווירטואליות (VM) לשיפור מהירות הביצוע
ההגדרה 'שיפור מהירות באמצעות חומרה' מופעלת כברירת מחדל ברוב המחשבים. אם הוא לא זהה שמופעלת במחשב שלך, בדף הזה נסביר איך להגדיר הגברת המהירות במכונה וירטואלית (VM) כדי לשפר את הביצועים מהאמולטור.
הגדרה של האצת הגרפיקה
התכונה 'שיפור מהירות הגרפיקה' משתמשת בחומרת המחשב (בדרך כלל ה-GPU) כדי ליצור עיבוד המסך מהיר יותר. מכשירי Android משתמשים ב-OpenGL למערכות מוטמעות (OpenGL ES או GLES) לעיבוד בשני ממדים גרפיקה בתלת ממד על המסך.
כשיוצרים מכשיר וירטואלי של Android (AVD) במנהל ה-AVD, אפשר לציין אם האמולטור משתמש בחומרה או בתוכנה כדי לאמולציה ה-GPU של ה-AVD. מומלץ להשתמש בהאצת חומרה, ובדרך כלל מהר יותר. אבל יכול להיות שתצטרכו להשתמש בהאצת תוכנה אם משתמש במנהלי התקנים גרפיים שלא תואמים לאמולטור.
כברירת מחדל, האמולטור מחליט אם להשתמש בחומרה או בתוכנה לשיפור המהירות של הגרפיקה בהתאם להגדרת המחשב. אם חומרת ה-GPU מנהלי התקנים תואמים, האמולטור משתמש ב-GPU. אחרת, האמולטור משתמשת בהאצת תוכנה (באמצעות המעבד של המחשב) כדי לדמות GPU בעיבוד.
אם מפעילים את האמולטור את שורת הפקודה, אפשר לשנות ההגדרה של האצת הגרפיקה ב-AVD לגבי אותה מופע של מכשיר וירטואלי.
הדרישות
כדי להשתמש בהאצת הגרפיקה, סביבת הפיתוח הבאים:
- כלי SDK: מומלץ להשתמש בגרסה האחרונה (גרסה 17 לפחות)
- פלטפורמת SDK: מומלץ להשתמש בגרסה האחרונה (Android 4.0.3, גרסה 3, מינימום)
הגדרת האצת הגרפיקה במנהל ה-AVD
כדי להגדיר האצת גרפיקה עבור AVD, מבצעים את הפעולות הבאות:
- פותחים את AVD Manager.
- יוצרים AVD חדש או לערוך AVD קיים.
- בקטע אימות ההגדרות האישיות מוצאים את הקטע Emulated Performance.
- בוחרים ערך לאפשרות גרפיקה:.
- לוחצים על סיום.
הגדרה של האצת גרפיקה משורת הפקודה
לציין את הסוג של האצת הגרפיקה כשמריצים AVD מהפקודה
כוללים את האפשרות -gpu
, כפי שמוצג בדוגמה הבאה:
emulator -avd avd_name -gpu mode [{-option [value]} ... ]
אפשר להגדיר את הערך של mode
לאחת מהאפשרויות הבאות
אפשרויות:
auto
: מתן הרשאה לאמולטור לבחור בין גרפיקה של חומרה או תוכנה תאוצה על סמך הגדרות המחשב שלכם.host
: שימוש ב-GPU במחשב לשיפור המהירות באמצעות חומרה. האפשרות הזו מספק בדרך כלל את איכות הגרפיקה ואת הביצועים הטובים ביותר אמולטור. אבל אם במנהלי ההתקנים הגרפיים יש בעיות בעיבוד OpenGL, אולי יהיה צורך להשתמש באפשרויותswiftshader_indirect
אוangle_indirect
.swiftshader_indirect
: שימוש בווריאנט תואם לאתחול מהיר של SwiftShader כדי לעבד את הגרפיקה באמצעות האצת תוכנה. האפשרות הזאת טובה אם אי אפשר לשפר את המהירות באמצעות חומרה, יש להחליף למצבhost
.angle_indirect
: (Windows בלבד) שימוש בגרסה שתואמת להפעלה מהירה של זווית Direct3D כדי לעבד את הגרפיקה באמצעות האצת תוכנה. האפשרות הזאת טובה אם אי אפשר לשפר את המהירות באמצעות חומרה, יש להחליף למצבhost
. ברוב המקרים, הביצועים של ANGLE דומים לביצועים של מצבhost
כי מערכת ANGLE משתמשת ב-Microsoft Attribution במקום ב-OpenGL.ב-Windows, ב-Microsoft בדרך כלל, במנהלי התקנים של Direct יש פחות בעיות בהשוואה למנהלי התקנים של OpenGL. האפשרות הזו משתמש ב-Direct3D 11 ומחייב Windows 10, Windows 8.1 או Windows 7 SP1 עם עדכון הפלטפורמה של Windows 7.
guest
: שימוש ברינדור תוכנה בצד האורח. אפשרות זו מספקת את איכות הגרפיקה והביצועים של האמולטור.
האפשרויות הבאות של mode
הוצאו משימוש:
swiftshader
: הוצאה משימוש בגרסה 27.0.2. שימוש בפורמטswiftshader_indirect
במקום זאת.angle
: הוצאה משימוש בגרסה 27.0.2. שימוש ב-angle_indirect
במקום זאת (Windows בלבד).mesa
: הוצאה משימוש בגרסה 25.3. במקומה צריך להשתמש במדיניותswiftshader_indirect
.
הפעלה של עיבוד Skia בממשק המשתמש של Android
כשמשתמשים בתמונות ברמת API 27 ומעלה, האמולטור יכול לעבד את ממשק משתמש של Android עם Skia. סקיה עוזרת ל אמולטור מעבד גרפיקה בצורה חלקה ויעילה יותר.
כדי להפעיל רינדור Skia, צריך להשתמש בפקודות הבאות במעטפת adb
:
su
setprop debug.hwui.renderer skiagl
stop
start
איך מגדירים האצת מהירות ב-VM
התכונה 'שיפור מהירות במכונות וירטואליות' משתמשת במעבד של המחשב כדי לשפר באופן משמעותי את מהירות הביצוע של האמולטור. כלי שנקרא hypervisor מנהל את זה אינטראקציה באמצעות תוספי וירטואליזציה שהמעבד של המחשב מספקת. בסעיף הזה מפורטות הדרישות לשימוש בהאצת מכונות וירטואליות נסביר איך להגדיר האצת מכונה ב-VM בכל מערכת הפעלה.
דרישות כלליות
כדי להשתמש בהאצת מכונות וירטואליות באמצעות האמולטור, המחשב צריך לעמוד בדרישות הדרישות בסעיף הזה. המחשב צריך גם לעמוד בדרישות נוספות הדרישות הספציפיות למערכת ההפעלה שלך.
דרישות לגבי סביבת הפיתוח
כדי להשתמש בהאצת מכונות וירטואליות, סביבת הפיתוח חייבת לעמוד בדרישות הדרישות הבאות:
- כלי SDK: גרסה 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:
- אי אפשר להריץ אמולטור שמואץ באמצעות 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
הוא המיקום של Android SDK:
Windows:
c:\Users\janedoe\AppData\Local\Android> Sdk\emulator\emulator -accel-check accel: 0 AEHD (version 2.2) 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)
בחירת hypervisor ב-Windows
בקטע הזה מוצגים הקריטריונים שקובעים באיזה hypervisor להשתמש. תהליך ההגדרה של האצת מכונות VM באמצעות כל hypervisor מתואר בקטעים הבאים.
קריטריונים | Hypervisor |
---|---|
חובה להפעיל את Hyper-V בו-זמנית עם האמולטור Android. | משתמשים ב-WHPX. |
אין צורך להפעיל Hyper-V במקביל לאמולטור Android. | משתמשים במנהל התקן hypervisor של Android Emulator. |
הגדרת האצת מכונות VM באמצעות Windows Hypervisor Platform
כדי להפעיל WHPX, המחשב צריך לעמוד בדרישות הבאות:
- מעבדי Intel: תמיכה בטכנולוגיית וירטואליזציה (VT-x), Extended Page תכונות Tables (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 ובוחרים אפליקציות ותכונות.
- בקטע הגדרות קשורות לוחצים על תוכניות ותכונות.
- לוחצים על הפעלה או השבתה של תכונות 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 או פחות. עם זאת, לא תהיה תמיכה בתרחישים כאלה.
צריך להשבית את Hyper-V בתיבת הדו-שיח 'תכונות של Windows'.
רכיבי Windows מסוימים יכולים להפעיל את Hyper-V hypervisor בלי הפעלת Hyper-V בתיבת הדו-שיח של תכונות Windows, כמו בידוד ליבה שמוצע על ידי Windows Defender. במקרים כאלה, יש להשתמש ב-WHPX במקום זאת.
במעבדי AMD, ניתן להתקין את מנהל התקן ה-hypervisor של Android Emulator דרך מנהל ה-SDK ב-Android Studio 4.0 Canary 5 ואילך.
במעבדי Intel, ניתן להתקין את מנהל התקן hypervisor של Android Emulator דרך מנהל ה-SDK ב-Android Studio Flamingo או מאוחר יותר.
כדי להתקין מ-SDK Manager, יש לבצע את השלבים הבאים:
- בוחרים באפשרות כלים > מנהל SDK.
- לוחצים על הכרטיסייה SDK Tools ובוחרים באפשרות Android Emulator hypervisor נהג/ת.
- לוחצים על אישור כדי להוריד ולהתקין את מנהל התקן 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 (יוסמיטי) ואילך. עם זאת, ב-Android Studio עשויה לדרוש גרסה גבוהה יותר של macOS. במקרים כאלה, פועלים לפי ההוראות ב-Android. דרישות המערכת של Studio.
איך מגדירים האצת מכונות VM ב-Linux
מערכות מבוססות Linux תומכות בהאצת מכונות וירטואליות באמצעות תוכנת KVM חבילה. פועלים לפי ההוראות להתקנת KVM במערכת Linux, ולאחר מכן מאמתים שה-KVM מופעל. למערכות Ubuntu: התקנת Ubuntu KVM.
הדרישות
כדי להפעיל KVM נדרשות הרשאות משתמש ספציפיות. עליך לוודא שיש את ההרשאות המתאימות כמו שצוין בהוראות להתקנת KVM.
כדי להשתמש בהאצת מכונות וירטואליות ב-Linux, המחשב צריך לעמוד גם בדרישות הבאות: דרישות:
- למעבדי Intel: תמיכה בטכנולוגיית וירטואליזציה (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. אמולטור Android מנהל התקן hypervisor (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' ולאחר מכן עוברים אל הדף 'Intel x86 Emulator Accelerator (מנהל ההתקנה HAXM) - הוצא משימוש'. השורה הזו. היא אמורה להיראות כמו צילום המסך הבא.
מוחקים את תיבת הסימון כפי שמוצג בצילום המסך הבא.
צריך ללחוץ על 'אישור' ותיבת הדו-שיח הבאה אמורה להופיע.
כשמסירים את ההתקנה של Intel HAXM, אמורים להופיע השגיאות הבאות. הסרת ההתקנה הסתיימה ואפשר לעצור כאן.
אם קיימות שגיאות, ממשיכים לשלב הבא.
מסירים את Intel HAXM באמצעות "הגדרות" של Windows.
פתיחת ה'הגדרות' של Windows ועוברים אל 'אפליקציות >' אפליקציות מותקנות".
מאתרים את 'מנהל הביצוע המואצת של חומרת Intel' כניסה וללחוץ "הסרה", כפי שמוצג בצילום המסך הבא.
תוכנת ההסרה של 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 בסטטוס "Installed".
חבילת מנהל ההתקנה ממוקמת בתיקייה <Your Android SDK folder>\extras\intel. כברירת מחדל, ערכת Android SDK תותקן בכתובת "C:\Users\<Your Windows User ID >\AppData\Local\Android\Sdk". אפשר לראות דוגמה בצילום המסך הבא.