בדף הזה מוסבר איך לשלב אפליקציות לא מקובצות. אפליקציות שכוללות 'חייגן', מדיה, ממשק המשתמש ברכב ספרייה ו-SMS נחשבות כאפליקציות לא מקובצות. האפליקציות האלה לא שייכות לפלטפורמת Android וכוללים את הלוגיקה לקבלת נתונים מהאפליקציה הנלווית לטלפון ומחוויית המשתמש בצד הרכב, כולל הגדרות של שיוך ורישום תכונות.
חבילות APK שנוצרו מהקוד הלא-חבילה פועלות עם כמה גרסאות של הפלטפורמה.
בדיקת הקוד
כדי לבדוק את הקוד שלא כלול בחבילה:
- מריצים את הפקודה הבאה:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master repo sync -cq -j4
- למידע נוסף על עבודה עם קוד המקור של AOSP: אתחול לקוח מאגר.
כתיבת הקוד
סטודיו ל-Android
כדי ליצור את הקוד ב-Android Studio:
- ב-Android Studio, מייבאים את קובץ ה-build הבא:
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
- צריך להגדיר את Gradle JDK ב-Android Studio לגרסה 11 לפחות:
איור 1. גרסה 11. - בונים את חבילות ה-APK הרצויות.
שורת הפקודה
כדי ליצור את הקוד משורת הפקודה:
- אפשר להגדיר את מיקום ה-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 |
מכשיר 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 |