מדריך לשילוב

בדף הזה מוסבר איך לשלב אפליקציות לא מקובצות. אפליקציות שכוללות 'חייגן', מדיה, ממשק המשתמש ברכב ספרייה ו-SMS נחשבות כאפליקציות לא מקובצות. האפליקציות האלה לא שייכות לפלטפורמת Android וכוללים את הלוגיקה לקבלת נתונים מהאפליקציה הנלווית לטלפון ומחוויית המשתמש בצד הרכב, כולל הגדרות של שיוך ורישום תכונות.

חבילות APK שנוצרו מהקוד הלא-חבילה פועלות עם כמה גרסאות של הפלטפורמה.

בדיקת הקוד

כדי לבדוק את הקוד שלא כלול בחבילה:

  1. מריצים את הפקודה הבאה:
    repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
    repo sync -cq -j4
    
  2. למידע נוסף על עבודה עם קוד המקור של AOSP: אתחול לקוח מאגר.

כתיבת הקוד

סטודיו ל-Android

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

  1. ב-Android Studio, מייבאים את קובץ ה-build הבא:
    packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
  2. צריך להגדיר את Gradle JDK ב-Android Studio לגרסה 11 לפחות:


    איור 1. גרסה 11.
  3. בונים את חבילות ה-APK הרצויות.

שורת הפקודה

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

  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
מכשיר Companion 29
Dialer 31
מדיה 30
SMS 30
מארח AOSP 29

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

תמונות מ-Android מגרסה 13 ואילך

הקוד שלא נכלל בחבילה יוסר מפלטפורמת Android 13. לכן, יכול להיות שיהיה צורך להוסיף חבילות APK מובנות מראש לגרסאות build של הפלטפורמה בשביל:

  • בדיקת תאימות ל-CDD
  • הקצאת אפליקציות עם הרשאות

איך משיגים את זה באמצעות 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 (ראו טבלה שלמעלה), ה-APK יכול יתווספו לתמונת המערכת הזו. עם זאת, לרוב האפליקציות שאינן מקובצות יש גרסאות קודמות של קוד המקור נכללות בפלטפורמות שקודמות ל-Android 13. כברירת מחדל, Sog נותן קדימות לקוד המקור על פני קוד מובנה מראש. לכן צריך להגדיר את סימון 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,
    }

אפליקציות ברשימה בהתאם לסוג 'לא בחבילה'

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