מכשיר וירטואלי של Android כפלטפורמת פיתוח

כדי להשתמש במכשירי Android וירטואליים (AVD), אמולטור Android תומך בממשק משתמש גרפי (GUI) ובממשק שורת פקודה (CLI). בוחרים את תהליך עבודה אופטימלי לסביבה שלכם.

הפעלת AVD של רכב AOSP באמצעות

כדי להפעיל ולבדוק במהירות באמצעות AOSP Car AVD, צריך להשתמש בסקריפט בקוד פתוח כדי להוריד ולהשיק גרסת build של אמולטור ci.android.com הסקריפט נבדק על macOS ו-Linux.

צריך Curl כדי להשתמש בסקריפט הזה.

כדי להריץ את הסקריפט:

  1. מעתיקים את launch_emu.sh של הסקריפט המקומי שלכם, בהנחה שאתם משתמשים ב-launch_emu.sh בתור את שם הקובץ המקומי.
  2. יוצרים קובץ הפעלה של הסקריפט המקומי. לדוגמה, מריצים את הפקודה chmod +x ./launch_emu.sh.
  3. כדי לבדוק את האפשרויות הזמינות, מריצים את הסקריפט באמצעות ./launch_emu.sh -h.
  4. ב-ci.android.com, עוברים אל הסתעפות aosp-main-throttled ובחירת build מהזמן האחרון שבו sdk_car_x86_64 הוא ירוק. לדוגמה, 11370359. אם לא רואים את גרסת ה-build מידע, צא מחשבון Google שלך ונסה שוב.
  5. מורידים ומתקינים את הקבצים הבינאריים הרלוונטיים לאמולטור עם מזהה ה-build. לדוגמה, ./launch_emu.sh -i -a 11370359
  6. לאחר מכן, אפשר להשתמש ב-./launch_emu.sh כדי להפעיל את הפריטים שהורדו והותקנו אמולטור (אין להשתמש באפשרויות -i או -a).
  7. כדי להוריד ולהתקין מזהה build נוסף, מריצים את ./launch_emu.sh -c כדי לנקות את Workspace ואז לחזור על שלבים 4 ו-5 למעלה.

כדי לציין אמולטור Android אפשרויות להפעלת שורת הפקודה כשמפעילים את האמולטור, צריך להשתמש באפשרות -v. מוצרים לדוגמה:

  ./launch_emu.sh -v “-cores 4 -memory 6144 -no-snapshot"

בניית AVD של רכב ב-AOSP

תהליך הפיתוח של AVD של רכב AOSP דומה לתהליך יצירת תמונות AVD לטלפון (לדוגמה, aosp_car_x86_64):

  1. כדי להגדיר את סביבת הפיתוח ולזהות הסתעפות, כלים לבקרת מקור. ואז לבדוק הורדת המקור:
    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
  2. יוצרים את קובץ האימג' של ה-AVD:
    . build/envsetup.sh && lunch sdk_car_x86_64-userdebug && m -j32
  3. להריץ את תמונת ה-AVD (לצרף עוד אפשרויות להפעלת שורת הפקודה) לפי הצורך):
    emulator &

    לדוגמה:

    איור 1. מסך 'אמולטור וירטואלי של Android'

    הערות לגבי התהליך הזה:

    • כי תהליך ה-build זהה לתהליך שנדרש כדי ליצור את Android למכשיר פיזי, מומלץ להמתין זמן מה כדי להוריד את המקור ואז לפתח אותו.
    • כדי לעבוד על הסתעפויות אחרות, צריך להגדיר את $ANDROID_BRANCH לערך אחר הסתעפות/תג.
    • תמונות AVD, כמו system.img, נוצרות ב-$ANDROID_PRODUCT_OUT. מידע נוסף על תמונות עיקריות זמין במאמר AVD ספריית המערכת.
    • לצפייה README כדי ללמוד איך משתמשים בקבצים הבינאריים של האמולטור המובְנים בעץ Android להריץ את האמולטור.

יצירת AVD של רכב

הוספה של AVD של רכב חדש כמעט זהה ל- הוספת מכשיר חדש. לדוגמה, 1660554 נוצר AVD חדש של avd_car.

כדי ליצור AVD של רכב:

  1. יוצרים חברה ותיקיות במכשיר לפי הצורך. בדוגמה הזו אנחנו משתמשים $ANDROID_BUILD_TOP/device/google_car/avd_car
  2. יוצרים את קובץ ה-Makefile של המוצר, avd_car.mk, שמגדיר את אופן בניית ה-AVD.
  3. יוצרים תיקייה במכשיר, avd_car_device, שתכלול BoardConfig.mk וגם source.properties
  4. הוספת האפשרות החדשה makefile והאפשרות החדשה lunch אל AndroidProducts.mk.
  5. כדי ליצור ולהפעיל את ה-AVD החדש של avd_car:
    . build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
עכשיו אתם מוכנים ליצור אב טיפוס של רוב תכונות ה-HMI ושל האפליקציה ב-AVD החדש.

אריזת קובץ ZIP של תמונה בפורמט AVD

אפשר לארוז ולשתף את ה-AVD עם אחרים או להשתמש בו במכשיר אחר במחשב. שימוש ב-emu_img_zip.mk כדי ליצור את קובץ ה-ZIP לתמונה בפורמט AVD:

  1. לאחר יצירת ה-AVD, הופכים את emu_img_zip ליעד:
    m emu_img_zip
  2. קובץ ה-ZIP של קובץ ה-AVD, עם הקידומת sdk-repo-linux-system-images, הוא נוצרה בתיקייה בשם $ANDROID_PRODUCT_OUT.

פיתוח ליבה (kernel) של AVD

ליבות AVD דומות לליבות אחרות של Android בכך שכולן הן תמונות מוכנות מראש. בדרך כלל, אפשר להשתמש בתמונות הרגילות המוכנות מראש של ליבה דג זהב כמו בכל מהדורה של Android.

כדי להתנסות בשינויים בליבה (kernel):

  1. מריצים את סדרת ההוראות הבאה:
    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/
    
  2. מחליפים את קובץ ה-kernel הבינארי ב-codebase בהתאם לקובץ ה-Makefile של AVD. לדוגמה, x86_64-vendor.mk כולל x86_64-kernel.mk.

קוד הליבה וההגדרה נמצאים כך:

פריט ערך
סניף common-android11-5.4 (בשימוש ב-Android 11)
מניפסט kernel/manifest/common-android11-5.4
מודולים נפוצים/מכשירים וירטואליים kernel/common-modules/virtual-device/android11-5.4
ליבה kernel/common/android11-5.4

יצירת פרופיל מכשיר חדש

כדי לאפשר למשתמשים ליצור AVD ספציפי ב-Android Studio AVD Manager: יצירה וניהול של מכשירים וירטואליים יצרני מכשירים יכולים להגדיר מפרטי חומרה משלהם, למשל גודל המסך ו-DPI, באמצעות קובץ devices.xml שכלול בתמונת ה-AVD.

  • לדוגמה, אפשר לראות את הפרופילים של מכשירים בכלי רכב ב-automotive.xml.
  • לצורך פיתוח HMI או יצירת אב טיפוס, ניתן להוסיף מספר מכשירים לאותה תמונת AVD.
  • כוללים את הקובץ בקובץ ה-ZIP של תמונות ה-AVD של ה-OEM בתיקייה [ABI]. לדוגמה, בתור x86_64.
  • יוצרי מכשירים יכולים גם ליצור סקין של אמולטור. למשל, הגדרה של לחצני חומרה נוספים לשיפור האיכות של חוויית המשתמש. המידע הזה שימושי לא רק לתהליכי עבודה למפתחים, אלא גם למשימות אחרות כמו מחקר חוויית המשתמש. ולבדוק.

יוצרים את קובץ ה-XML של התמונה מסוג AVD

יוצרי התקנים יכולים ליצור קובץ XML של תמונה מסוג AVD כדי להוריד אותו ל-Android Studio את זה.

  • לדוגמה, אפשר לעיין בקובץ ה-XML של התמונה מסוג AAOS AVD, sys-img2-1.xml.
  • יצרני מכשירים יכולים להגדיר הסכם רישיון AVD משלהם ל-OEM (יצרן ציוד מקורי) עבור משתמשי היעד שלהם (בעזרת מערכת הזכאות), עם הרישיון לאמולטור Android. במכשירי Android כאשר רישיון כזה כלול, יש לקבל את הקונצנזוס בקרב המשתמשים.

כדי ליצור את התמונה:

  1. מכינים קובץ ZIP של תמונה בפורמט AVD.
  2. מחלצים את הקובץ ${ANDROID_PRODUCT_OUT}/sdk-repo-linux-system-images-*.zip.
  3. צריך להוסיף את devices.xml לתיקייה x86_64 ואז לדחוס את הקובץ בעזרת קובץ ZIP. לדוגמה, בתור oem_avd_img_x86_64.zip.
  4. יש לעדכן את oem-sys-img2-1.xml.
  5. מעדכנים את השם, הגודל וה-shasum של קובץ ה-ZIP (קובצי XML לדוגמה מסופקים tools).

לדוגמה, כדי לארח את ה-AVD ב-Google Cloud Storage, ראה יצירת קטגוריות אחסון.

כדי להעלות את ה-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 של תוסף תמונות ה-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 מהרשת:

  1. מארחים את קובץ ה-ZIP ואת קובצי ה-XML בשרת.
  2. צריך לספק את כתובת ה-URL למשתמשי היעד.
  3. (אופציונלי) הגבלת הגישה לפי שם משתמש וסיסמה.

לחלופין, כדי לזרז את הפיתוח, ניתן להוריד את ה-AVD לספרייה מקומית:

  1. שומרים בתיקייה את קובצי ה-XML ואת כל פריטי המידע שנוצרו בתהליך הפיתוח (Artifact) שצוינו בקובץ ה-XML (למשל, כל קובצי ה-ZIP של תמונות מסוג AVD) בשם ADDON_DIR.
  2. צריך לציין את כתובת ה-URL בתור file://$ADDON_DIR/oem-sys-img2-1.xml.