אפליקציות שכוללות את האפליקציות 'חייגן', 'מדיה', 'ספריית ממשק המשתמש שברכב' ו-SMS נחשבות לאפליקציות לא מאוגדות (כלומר, הן לא מאוגדות לפלטפורמת Android). אפליקציות כאלה כוללות את הלוגיקה לקבלת נתונים מאפליקציית הטלפון הנלווית ואת חוויית המשתמש בצד המכונית, כולל הגדרות לשיוך ולהרשמה לתכונות. חבילות APK שנוצרו מקוד לא מאוגד פועלות עם כמה גרסאות של הפלטפורמה.
בדיקת הקוד
כדי לבדוק את הקוד הלא מאוגד, מריצים את הפקודה הבאה:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-masterrepo sync -cq -j4
מידע נוסף על עבודה עם קוד מקור של AOSP זמין במאמר Initialize the Repo Client.
יצירת הקוד
אפשר ליצור את הקוד באמצעות Android Studio או משורת הפקודה.
Android Studio
כדי לבצע build של הקוד ב-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 |
| נעילת אפליקציות | 34 |
שילוב תמונה מוכנה מראש בקובץ אימג' של המערכת
אם גרסת פלטפורמת 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
}
פרטי אפליקציה לא מקובצת
| אפליקציה | פריבילגיה לא מאוגדת מערכת חתומה |
ההרשאות המיוחדות לא כלולות בחבילה לא מערכתיות חתימה |
לא צריך להפעיל את האפליקציות שלא כלולות בחבילה במחיצת המערכת |
|---|---|---|---|
| עדכון ההפצה | OTA | OTA או Google Play | OTA או Google Play |
| מארח AOSP | X | ||
| יומן Google | X | ||
| CompanionDeviceSupport | X | ||
| מרכז הבקרה (מספר מסכים) | X | ||
| Dialer | X | ||
| מדיה | X | ||
| Messenger (SMS) | X | ||
| נעילת אפליקציות רגישות | X |