כדי להשתמש במכשירים וירטואליים של Android (AVD), Android Emulator תומך בממשק משתמש גרפי (GUI) ובממשק שורת פקודה (CLI). בוחרים את תהליך העבודה האופטימלי לסביבה שלכם.
- יצירה וניהול של מכשירים וירטואליים ממשק משתמש גרפי הוא כלי פשוט שזמין לרוב מפתחי האפליקציות והמשתמשים.
- הפעלת הסימולטור משורת הפקודה היא דרך גמישה למשתמשי קצה מתקדמים ולשימוש באוטומציה. לדוגמה, כדי להשתמש במספר מכשירי AVD או כדי להגדיר בדיקות ואינטגרציה רציפות. כדי להתחיל, אפשר לעיין בדוגמאות שבכלים).
הפעלת AVD של AOSP Car באמצעות קובץ build מוגדר מראש
כדי להפעיל ולבדוק במהירות באמצעות AOSP Car AVD שנוצר מראש, משתמשים בסקריפט בקוד פתוח כדי להוריד ולהפעיל גרסה של אמולטור מ-ci.android.com
. הסקריפט נבדק ב-macOS וב-Linux.
כדי להשתמש בסקריפט הזה, צריך Curl.
כדי להריץ את הסקריפט:
- מעתיקים את תוכן הסקריפט
launch_emu.sh
לקובץ המקומי, בהנחה שמשתמשים ב-launch_emu.sh
בתור שם הקובץ המקומי. - הופכים את הסקריפט המקומי לניתן להפעלה. לדוגמה, מריצים את הפקודה
chmod +x ./launch_emu.sh
. - כדי לבדוק את האפשרויות הזמינות, מריצים את הסקריפט באמצעות
./launch_emu.sh -h
. - ב-
ci.android.com
, עוברים להסתעפותaosp-main-throttled
ובוחרים גרסה זמנית (build) עדכנית שבה הערך שלsdk_car_x86_64
ירוק. לדוגמה, 11370359. אם פרטי הגרסה לא מופיעים, יוצאים מחשבון Google ומנסים שוב. - מורידים ומתקינים את הקבצים הבינאריים הרלוונטיים לאמולטור עם מזהה ה-build. לדוגמה,
./launch_emu.sh -i -a 11370359
. - לאחר מכן, תוכלו להשתמש ב-
./launch_emu.sh
כדי להפעיל את הסימולטור שהורדתם והתקנתם (אל תשתמשו באפשרויות-i
או-a
). - כדי להוריד ולהתקין מזהה build אחר, מריצים את הפקודה
./launch_emu.sh -c
כדי לנקות את סביבת העבודה, ואז חוזרים על שלבים 4 ו-5 שלמעלה.
כדי לציין את האפשרויות של Command-line startup options במהלך הפעלת הסימולטור של Android, משתמשים באפשרות -v
. לדוגמה:
./launch_emu.sh -v “-cores 4 -memory 6144 -no-snapshot"
פיתוח AVD לרכב ב-AOSP
התהליך ליצירת AVD של AOSP Car דומה ליצירת קובצי אימג' של AVD לטלפון (לדוגמה, aosp_car_x86_64):
- במאמר כלים לניהול גרסאות מוסבר איך מגדירים את סביבת הפיתוח ומזהים הסתעפות. לאחר מכן, קוראים את המאמר הורדת המקור:
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 Virtual Emulator
הערות לגבי התהליך הזה:
- תהליך ה-build זהה לתהליך הנדרש ליצירת Android למכשיר פיזי, לכן צריך להמתין זמן מה עד להורדת המקור ואז ליצירתו.
- כדי לעבוד על סניפים אחרים, מגדירים את
$ANDROID_BRANCH
לסניף/תג אחר. - קובצי אימג' של AVD, כמו
system.img
, נוצרים ב-$ANDROID_PRODUCT_OUT
. מידע נוסף על קובצי אימג' של מפתחות זמין בספריית המערכת של AVD. - בקובץ README מוסבר איך משתמשים בקובצי ה-binary של הסימולטור שנוצרו מראש בעץ Android כדי להריץ את הסימולטור.
יצירת AVD לרכב
הוספת AVD חדש לרכב דומה כמעט להוספת מכשיר חדש. לדוגמה, הערך 1660554
יוצר מכונה וירטואלית חדשה מסוג AVD ב-avd_car
.
כדי ליצור AVD לרכב:
- יוצרים תיקייה של החברה ותיקייה של המכשיר לפי הצורך. בדוגמה הזו נעשה שימוש ב-
$ANDROID_BUILD_TOP/device/google_car/avd_car
. - יוצרים את קובץ ה-makefile של המוצר,
avd_car.mk
, שמגדיר את אופן ה-build של ה-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 עם אחרים או להשתמש בו במחשב אחר. משתמשים ב-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. לדוגמה, הערך
x86_64-vendor.mk
כולל את הערךx86_64-kernel.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.
- כוללים את הקובץ בקובץ ה-ZIP של קובץ האימג' של OEM AVD בתיקייה
[ABI]
. לדוגמה, כ-x86_64
. - יצרני מכשירים יכולים גם ליצור עיצוב של אמולטור. לדוגמה, כדי להגדיר לחצני חומרה נוספים לשיפור חוויית המשתמש. האפשרות הזו שימושית לא רק לתהליכי עבודה של מפתחים, אלא גם למשימות אחרות כמו מחקר וחקר UX.
יצירת קובץ ה-XML של קובץ האימג' של AVD
יצרני המכשירים יכולים ליצור קובץ XML של תמונה של AVD כדי ש-Android Studio יוכל להוריד אותו.
- לדוגמה, קובץ ה-XML של קובץ האימג' של AAOS AVD,
sys-img2-1.xml
. - יצרני המכשירים יכולים להגדיר הסכם רישיון משלהם ל-OEM AVD למשתמשים היעד שלהם (באמצעות מערכת של 'כבוד המערכת'), באמצעות הרישיון ל-Android Emulator. כשמצרפים רישיון כזה, מערכת Android Studio מקבלת הסכמה מהמשתמשים.
כדי ליצור את התמונה:
- מכינים קובץ ZIP של קובץ אימג' של AVD.
- פותחים את הקובץ
${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
. - מעדכנים את השם, הגודל וה-shasum של קובץ ה-zip (קובצי 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. פרטים נוספים זמינים במאמר עדכון הכלים של IDE ו-SDK.
כדי להוריד את ה-AVD מהרשת:
- מארחים את קובץ ה-zip של התמונות ואת קובצי ה-XML בשרת.
- מספקים את כתובת ה-URL למשתמשים היעד.
- (אופציונלי) מגבילים את הגישה לפי שם משתמש וסיסמה.
לחלופין, כדי לזרז את הפיתוח, אפשר להוריד את ה-AVD לספרייה מקומית:
- שומרים את קובצי ה-XML ואת כל הארטיפקטים שצוינו בקובץ ה-XML בתיקייה בשם
ADDON_DIR
(לדוגמה, כל קובצי ה-ZIP של קובצי האימג' של AVD). - מציינים את כתובת ה-URL כ-
file://$ADDON_DIR/oem-sys-img2-1.xml
.