אפליקציות שכוללות את 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 זמין במאמר הפעלת הלקוח של Repo.
יצירת הקוד
אפשר ליצור את הקוד באמצעות Android Studio או משורת הפקודה.
Android Studio
כדי לבנות את הקוד ב-Android Studio:
ב-Android Studio, מייבאים את קובץ ה-build הבא:
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
מוודאים ש-Gradle JDK מוגדר לגרסה 11 ואילך:
איור 1. מגדירים את Gradle JDK לגרסה 11 ב-Android Studio.
שורת הפקודה
כדי ליצור את הקוד משורת הפקודה:
מגדירים את המיקום של 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.
פותחים שורת פקודה או חלון של מעטפת.
למעבר אל
packages/apps/Car/libs/aaos-apps-gradle-project
.מריצים את הפקודה הבאה:
./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, משתמשים בכלל android_app_import
של Soong, כמו בדוגמה הבאה:
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 |
ההרשאות המיוחדות לא כלולות בחבילה לא מערכתיות חתימה |
אפליקציות לא מקובצות לא צריכות להיות במחיצת המערכת |
---|---|---|---|
אפליקציה - יומן | X | ||
אפליקציה – CompanionDeviceSupport | X | ||
אפליקציה – חייגן | X | ||
אפליקציה – מארח AOSP | X | ||
אפליקציה – מדיה | X | ||
אפליקציה – Messenger (SMS) | X | ||
עדכון ההפצה | OTA | OTA או Google Play | OTA או Google Play |