שילוב אפליקציות שלא נכללות בחבילה

אפליקציות שכוללות את Dialer,‏ Media,‏ Car UI Library ו-SMS נחשבות לאפליקציות לא מאוגדות (כלומר, הן לא מאוגדות לפלטפורמת Android). אפליקציות כאלה כוללות את הלוגיקה לקבלת נתונים מאפליקציית הטלפון הנלווית וממשק משתמש בצד המכונית, כולל הגדרות לשיוך ולהרשמה לתכונות. חבילות APK שנוצרו מקוד לא מאוגד פועלות עם כמה גרסאות של הפלטפורמה.

בדיקת הקוד

כדי לבדוק את הקוד שלא נכלל בחבילה, מריצים את הפקודה הבאה:

repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
repo sync -cq -j4

מידע נוסף על עבודה עם קוד מקור של AOSP זמין במאמר Initialize the Repo Client.

יצירת הקוד

אפשר ליצור את הקוד באמצעות Android Studio או משורת הפקודה.

‫Android Studio

כדי לבנות את הקוד ב-Android Studio:

  1. ב-Android Studio, מייבאים את קובץ ה-build הבא:

    packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
    
  2. מוודאים ש-Gradle JDK מוגדר לגרסה 11 ואילך:

    גרסה 11

    איור 1. מגדירים את Gradle JDK לגרסה 11 ב-Android Studio.

שורת הפקודה

כדי ליצור את הקוד משורת הפקודה:

  1. מגדירים את המיקום של Android SDK באחת מהשיטות הבאות:

    • יוצרים packages/apps/Car/libs/aaos-apps-gradle-project/local.properties ואז מגדירים את הנכס sdk.dir שהוא מכיל. ‫Android Studio יכול לעשות את זה באופן אוטומטי כשפותחים פרויקט. לדוגמה, משתמשים ב-sdk.dir=/Users/MY-USERNAME/Library/Android/sdk.

      או

    • מגדירים את משתנה הסביבה ANDROID_SDK_ROOT עם הנתיב אל Android SDK.

  2. פותחים שורת פקודה או חלון של מעטפת.

  3. למעבר אל packages/apps/Car/libs/aaos-apps-gradle-project.

  4. מריצים את הפקודה הבאה:

    ./gradlew assemble

רמות ה-API המינימליות הנדרשות

כל אפליקציה לא מקובצת פועלת בפלטפורמות Android בגרסה ששווה לגרסה minSdkVersion של האפליקציה או גבוהה ממנה. בטבלה הבאה מפורטת גרסת ה-API המינימלית שנתמכת על ידי כל אפליקציה:

אפליקציה רמת API מינימלית
יומן 29
ספריית ממשק המשתמש שברכב 29
CompanionDevice 29
Dialer 31
מדיה 30
Messenger (SMS) 30
מארח AOSP 29

שילוב של תצורה מוכנה מראש בתמונת מערכת

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

‫Android מגרסה 13 ואילך

‫Android 13 ומעלה לא כולל קוד מקור לאפליקציות לא מקובצות, אבל אפשר לכלול APK מוכן מראש ב-build של הפלטפורמה לתרחישי שימוש כמו בדיקת תאימות ל-CDD או הקצאת הרשאות לאפליקציות מועדפות. כדי לציין את חבילת ה-APK, משתמשים בכלל Soong‏ android_app_import, כמו בדוגמה הבאה:

android_app_import {
    name: "CarMediaApp",
    apk: "CarMediaApp.apk",
    privileged: true,
    certificate: "platform", // Media must be signed by the platform
    required: ["allowed_privapp_com.android.car.media"],
}

‫Android מגרסה 12 ומטה

גרסה Android 12 ומטה כוללת קוד מקור לאפליקציות לא מאוגדות, אבל עדיין אפשר לציין קובץ APK מוכן מראש שייכלל. מכיוון שברירת המחדל של Soong היא לתת עדיפות לקוד המקור על פני קוד מוכן מראש, צריך להגדיר את הדגל prefer לערך true בתוך הכלל android_app_import, כמו בדוגמה הבאה:

android_app_import {
    name: "CarDialerApp",
    apk: "CarDialerApp.apk",
    privileged: true,
    presigned: true, // Dialer can have its own signature
    required: ["allowed_privapp_com.android.car.dialer"],
    overrides: ["Dialer"],
    prefer: true, // The prebuilt replaces a source target with the same name
    }

פרטי אפליקציה לא מאוגדת

אפליקציה Privileged unbundled
system signed
ההרשאות המיוחדות לא כלולות בחבילה
לא מערכתית חתומה

לא צריך להתקין אותן במחיצת המערכת
עדכון ההפצה OTA OTA או Google Play OTA או Google Play
מארח AOSP X
יומן Google X
CompanionDeviceSupport X
מרכז הבקרה (מספר מסכים) X
Dialer X
מדיה X
Messenger (SMS) X
נעילת אפליקציות רגישות X