כדי להשתמש במכשירים וירטואליים של 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 החדש
avd_car
:. build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
דחיסת קובץ ZIP של תמונת AVD
אתם יכולים לארוז את ה-AVD ולשתף אותו עם אחרים או להשתמש בו במחשב אחר. כדי ליצור את קובץ ה-ZIP של תמונת ה-AVD, משתמשים בפקודה emu_img_zip.mk
:
- אחרי שיוצרים את ה-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
.