כדי להשתמש במכשירים וירטואליים של Android (AVD), Android Emulator תומך בממשק משתמש גרפי (GUI) ובממשק שורת פקודה (CLI). בוחרים את תהליך העבודה האופטימלי לסביבה שלכם.
- יצירה וניהול של מכשירים וירטואליים ממשק המשתמש הוא כלי פשוט שזמין לרוב מפתחי האפליקציות והמשתמשים.
- הפעלת האמולטור משורת הפקודה מאפשרת למשתמשים מתקדמים ולאוטומציה לפעול בצורה גמישה. לדוגמה, כדי להשתמש בכמה מכשירי AVD או כדי להגדיר בדיקות רציפות ואינטגרציה רציפה. כדי להתחיל, כדאי לעיין בדוגמאות שבכלים.
איך יוצרים מכשיר AVD לרכב ב-AOSP
התהליך ליצירת AVD לרכב ב-AOSP דומה ליצירת תמונות AVD לטלפון (לדוגמה, aosp_car_x86_64):
- כדי להגדיר את סביבת הפיתוח ולזהות ענף, אפשר לעיין במאמר בנושא כלים לניהול קוד מקור ואז לקרוא את המאמר בנושא הורדת קוד המקור של Android:
ANDROID_BRANCH="android12L-release"
REPO_URL="https://android.googlesource.com/platform/manifest"
mkdir $ANDROID_BRANCH && cd $ANDROID_BRANCH && repo init -u $REPO_URL -b $ANDROID_BRANCH --partial-clone && repo sync -c -j8 - יוצרים את תמונת ה-AVD:
. build/envsetup.sh && lunch sdk_car_x86_64-userdebug && m -j32
- מריצים את תמונת ה-AVD (מוסיפים אפשרויות נוספות להפעלה משורת הפקודה לפי הצורך):
emulator &
לדוגמה:

איור 1. מסך של אמולטור וירטואלי של Android
הערות לגבי התהליך הזה:
- תהליך הבנייה זהה לזה שנדרש לבניית Android למכשיר פיזי, לכן כדאי להקצות זמן להורדת המקור ואז לבנייה.
- כדי לעבוד על ענפים אחרים, מגדירים את
$ANDROID_BRANCHלערך אחר של branch/tag. - תמונות AVD, כמו
system.img, נוצרות ב-$ANDROID_PRODUCT_OUT. מידע נוסף על תמונות מרכזיות זמין במדריך המערכת של AVD. - בקטע README מוסבר איך משתמשים בקבצים הבינאריים של האמולטור שנוצרו מראש בעץ Android כדי להפעיל את האמולטור.
יצירת Car AVD
הוספה של מכונית חדשה ל-AVD דומה מאוד להוספה של מכשיר חדש. לדוגמה,
1660554
יוצר avd_car AVD חדש.
כדי ליצור מכשיר AVD של מכונית:
- יוצרים חברה ותיקיית מכשירים לפי הצורך. בדוגמה הזו נעשה שימוש ב-
$ANDROID_BUILD_TOP/device/google_car/avd_car. - יוצרים את קובץ ה-Makefile של המוצר,
avd_car.mk, שמגדיר איך לבנות את ה-AVD. - יוצרים תיקייה במכשיר,
avd_car_device, שתכיל אתBoardConfig.mkואתsource.properties. - מוסיפים את
makefileהחדש ואת האפשרות החדשהlunchאלAndroidProducts.mk. - כדי ליצור ולהריץ את
avd_carAVD החדש:. build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
דחיסת קובץ ZIP של תמונת AVD
אתם יכולים לארוז את ה-AVD ולשתף אותו עם אחרים או להשתמש בו במחשב אחר. משתמשים ב-emu_img_zip.mk
כדי ליצור את קובץ ה-ZIP של תמונת ה-AVD:
- אחרי שיוצרים את ה-AVD, מגדירים את
emu_img_zipכיעד:m emu_img_zip
- קובץ ה-ZIP של תמונת ה-AVD, עם התחילית
sdk-repo-linux-system-images, נוצר בתיקייה בשם$ANDROID_PRODUCT_OUT.
איך בונים ליבת AVD
ליבות AVD דומות לליבות אחרות של Android בכך שכולן תמונות שנוצרו מראש. בדרך כלל, אפשר להשתמש בתמונות מוכנות מראש של ליבת goldfish כפי שהן מכל מהדורת Android.
כדי להתנסות בשינויים בקרנל:
- מריצים את סדרת ההוראות הבאה:
mkdir goldfish-kernel-54 cd goldfish-kernel-54 repo init -u https://android.googlesource.com/kernel/manifest -b common-android11-5.4 repo sync BUILD_CONFIG=common/build.config.gki.x86_64 build/build.sh BUILD_CONFIG=common-modules/virtual-device/build.config.goldfish.x86_64 build/build.sh ls -l ./out/android11-5.4/dist/
- מחליפים את הקובץ הבינארי של ליבת המערכת בבסיס הקוד בהתאם לקובץ ה-Makefile של AVD. לדוגמה,
device/generic/goldfish/board/emu64x/details.mkכוללdevice/generic/goldfish/board/kernel/x86_64.mk.
הקוד וההגדרות של הליבה נמצאים במיקומים הבאים:
| פריט | ערך |
|---|---|
| ענף | common-android11-5.4 (בשימוש ב-Android 11) |
| מניפסט | kernel/manifest/common-android11-5.4 |
| common-modules/virtual-device | kernel/common-modules/virtual-device/android11-5.4 |
| ליבה | kernel/common/android11-5.4 |
יצירת פרופיל מכשיר חדש
כדי לאפשר למשתמשים ליצור מכשיר וירטואלי ספציפי ב-AVD Manager של Android Studio, אפשר לעיין במאמר בנושא יצירה וניהול של מכשירים וירטואליים.
יצרני מכשירים יכולים להגדיר מפרטי חומרה משלהם, למשל גודל המסך ו-DPI, באמצעות קובץ devices.xml שכלול בתמונת ה-AVD.
- לדוגמה, אפשר לעיין בפרופילים של מכשירים לרכב ב-
automotive.xml. - לפיתוח או ליצירת אב טיפוס של HMI, אפשר להוסיף כמה מכשירים לקובץ עבור אותה תמונת AVD.
- צריך לכלול את הקובץ בתיקייה
[ABI]בקובץ ה-ZIP של תמונת ה-AVD של יצרן הציוד המקורי. לדוגמה,x86_64. - יצרני מכשירים יכולים גם ליצור סקין לאמולטור. לדוגמה, כדי להגדיר לחצני חומרה נוספים לחוויית משתמש נאמנה יותר. התכונה הזו שימושית לא רק לתהליכי עבודה של מפתחים, אלא גם למשימות אחרות כמו מחקר וסקירה של חוויית המשתמש.
יצירת קובץ ה-XML של תמונת ה-AVD
יצרני מכשירים יכולים ליצור קובץ XML של תמונת AVD כדי ש-Android Studio יוכל להוריד אותו.
- לדוגמה, אפשר לעיין בקובץ ה-XML של תמונת ה-AVD של AAOS,
sys-img2-1.xml. - יצרני מכשירים יכולים להגדיר הסכם רישיון OEM AVD משלהם למשתמשי היעד שלהם (בשיטת 'תשלום בהתאם לשימוש'), עם הרישיון ל-Android Emulator. Android Studio מקבל את הסכמת המשתמשים כשהרישיון הזה כלול.
כדי ליצור את התמונה:
- מכינים קובץ ZIP של תמונת AVD.
- חילוץ ZIP
${ANDROID_PRODUCT_OUT}/sdk-repo-linux-system-images-*.zip. - מוסיפים את
devices.xmlלתיקייהx86_64ואז דוחסים את הקובץ לקובץ ZIP. לדוגמה,oem_avd_img_x86_64.zip. - יש לעדכן את
oem-sys-img2-1.xml. - מעדכנים את שם קובץ ה-ZIP, הגודל וסכום ה-SHA (קבצי XML לדוגמה זמינים בכתובת
tools).
לדוגמה, כדי לארח את ה-AVD ב-Cloud Storage של Google, אפשר לעיין במאמר בנושא יצירת קטגוריות אחסון.
כדי להעלות את ה-AVD ולהגדיר אותו כגלוי לכולם, אפשר לעיין במאמר הגדרת נתונים כציבוריים.
BUCKET_NAME="aaos-avd" gsutil mb gs://$BUCKET_NAME gsutil cp oem_avd_img_x86_64.zip gs://$BUCKET_NAME gsutil cp oem-sys-img2-1.xml gs://$BUCKET_NAME gsutil iam ch allUsers:objectViewer gs://$BUCKET_NAME
הפורמט של כתובת ה-URL של תוסף ה-SDK של תמונת ה-AVD הוא: https://storage.googleapis.com/$BUCKET_NAME/oem-sys-img2-1.xml.
לדוגמה, אם BUCKET_NAME הוא aaos-avd, כתובת ה-URL היא: https://storage.googleapis.com/aaos-avd/oem-sys-img2-1.xml.
שיתוף תמונה של AVD עם משתמשי Android Studio
כדי שהמשתמשים יוכלו להוריד תמונות של AVD ולהשתמש ב-AVD שלכם באמצעות Android Studio, אתם יכולים לספק קובץ XML של תוסף SDK. פרטים נוספים זמינים במאמר בנושא עדכון כלי ה-SDK וסביבת הפיתוח המשולבת (IDE).
כדי להוריד את ה-AVD מהרשת:
- מאחסנים את קובץ ה-ZIP של התמונה ואת קובצי ה-XML בשרת.
- מספקים את כתובת ה-URL למשתמשי היעד.
- (אופציונלי) מגבילים את הגישה באמצעות שם משתמש וסיסמה.
לחלופין, כדי להאיץ את הפיתוח, אפשר להוריד את ה-AVD לספרייה מקומית:
- שומרים את קובצי ה-XML ואת כל הארטיפקטים שצוינו בקובץ ה-XML בתיקייה (לדוגמה, כל קובצי ה-ZIP של תמונות ה-AVD) בשם
ADDON_DIR. - מציינים את כתובת ה-URL כ-
file://$ADDON_DIR/oem-sys-img2-1.xml.