שימוש במכשירים וירטואליים של Android אמולטור

אפשר להשתמש ב-Android Emulator כדי ליצור הדמיות של מכשירי Android שפועלות בהן קובצי אימג' מותאמים אישית של מערכת Android. בנוסף, אפשר להוסיף תמיכה במספר מסכים להדמיות של Android Emulator.

הארכיטקטורה של Android Emulator

Android Emulator מפעיל את מערכת ההפעלה Android במכונה וירטואלית שנקראת מכשיר וירטואלי של Android‏ (AVD). כל AVD מכיל את סטאק התוכנה המלא של Android, והוא פועל כאילו הוא במכשיר פיזי. באיור 1 מוצגת הארכיטקטורה ברמה גבוהה של Android Emulator. מידע נוסף על הסימולטור זמין במאמר הרצת אפליקציות בסימולטור Android.

הארכיטקטורה של Android Emulator.

איור 1. הארכיטקטורה של Android Emulator.

פיתוח קובצי אימג' של AVD

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

כדי ליצור קובץ אימג' של מערכת AVD ולהריץ אותו:

  1. מורידים את קוד המקור של Android:

    mkdir aosp-main; cd aosp-main
    repo init -u
    repo sync -j24

אם רוצים ליצור גרסאות אחרות של Android, אפשר למצוא את שמות ההסתעפויות שלהן במאגר הציבורי של Android. הם ממופים אל שמות קוד, תגים ומספרי build של Android.

  1. יצירת קובץ אימג' של מערכת AVD. זהו אותו תהליך כמו יצירת קובץ אימג' של מערכת במכשיר Android. לדוגמה, כדי ליצור מכונה וירטואלית מסוג AVD עם x86 של 64 ביט:

    source ./build/envsetup.sh
    lunch sdk_phone_x86_64
    make -j32
  2. מריצים את קובץ האימג' של מערכת AVD במהדמ של Android:

    emulator

פרטים נוספים על הפעלת הסימולטור זמינים במאמר אפשרויות הפעלה בשורת הפקודה. באיור 2 מוצגת דוגמה לאמולטור Android שבו פועל AVD:

אמולטור Android שבו פועל AVD.

איור 2. אמולטור Android שבו פועל AVD.

שיתוף קובצי אימג' של מערכת AVD לשימוש של אחרים ב-Android Studio

פועלים לפי ההוראות הבאות כדי לשתף את קובצי האימג' של מערכת AVD עם אחרים. הם יכולים להשתמש בתמונות המערכת של AVD עם Android Studio כדי לפתח ולבדוק אפליקציות.

  1. יוצרים חבילות sdk ו-sdk_repo נוספות:

    בגרסה 13 של Android ואילך, משתמשים בפקודה emu_img_zip:

    $ make emu_img_zip
    

    הפעולה הזו יוצרת קובץ sdk-repo-linux-system-images-eng.[username]].zip.

    בגרסה 12 של Android ובגרסאות קודמות, משתמשים בפקודה sdk_repo:

    $ make -j32 sdk sdk_repo
    

    הפקודה make sdk sdk_repo יוצרת שני קבצים ב-aosp-main/out/host/linux-x86/sdk/sdk_phone_x86:

    • sdk-repo-linux-system-images-eng.[username].zip
    • repo-sys-img.xml
  2. מארחים את הקובץ sdk-repo-linux-system-images-eng.[username].zip במקום שבו המשתמשים יכולים לגשת אליו, ומקבלים את כתובת ה-URL שלו לשימוש ככתובת ה-URL של קובץ האימג' של המערכת ב-AVD.

  3. ב-Android מגרסה 12 ומטה, עורכים את repo-sys-img.xml בהתאם:

    • מעדכנים את <sdk:url> בכתובת ה-URL של קובץ האימג' של מערכת AVD.
    • למידע על עדכונים אחרים בקובץ, אפשר לעיין בקובץ sdk-sys-img-03.xsd.
    • מארחים את repo-sys-img.xml במקום נגיש למשתמשים ומקבלים את כתובת ה-URL שלו לשימוש בתור כתובת ה-URL של האתר עם העדכונים המותאמים אישית.

כדי להשתמש בתמונה מותאמת אישית של AVD, מבצעים את הפעולות הבאות ב-SDK Manager:

  1. מוסיפים את כתובת ה-URL של אתר העדכונים המותאם אישית בתור אתר העדכונים של ה-SDK.

    הפעולה הזו תוסיף את קובץ האימג' של מערכת AVD בהתאמה אישית לדף System Images (תמונות מערכת).

  2. יוצרים מכונה וירטואלית ל-Android על ידי הורדה ובחירה של קובץ האימג' של מערכת AVD בהתאמה אישית.

הוספת תמיכה בתצוגה מרובת מסכים

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

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

  • מוסיפים את הספק של התצוגות המרובות לגרסה המאוחדת (build) על ידי הוספת השורות הבאות לקובץ build/target/product/sdk_phone_x86.mk:

    PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST := \
        system/lib/libemulator_multidisplay_jni.so \
        system/lib64/libemulator_multidisplay_jni.so \
        system/priv-app/MultiDisplayProvider/MultiDisplayProvider.apk \
    PRODUCT_PACKAGES += MultiDisplayProvider
    
  • כדי להפעיל את דגל התכונה 'תצוגה בכמה מסכים', מוסיפים את השורה הבאה לקובץ device/generic/goldfish/data/etc/advancedFeatures.ini:

    MultiDisplay = on
    

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