מארח אפליקציות ה-Android Open Source Project (AOSP) הוא חלק מספריית האפליקציות לרכב המשמשת מפתחי צד שלישי (3P) כדי לאפשר אפליקציות עבור Android Automotive. ה-App Host היא אפליקציית מערכת המאפשרת לאפליקציות רכב תלת-Pורות להציג רכיבי ממשק משתמש (UI) בסגנון OEM בשמה.
כדי להפעיל אפליקציות 3P, יש להתקין גם את האפליקציה 3P וגם את מארח האפליקציות של AOSP Automotive:
- Automotive App Host מספק לאפליקציות תלת-ממדיות קבוצה של תבניות ממשק משתמש ורכיבים המותאמים לכלי רכב, כולל יכולות כמו שימושיות ובטיחות.
- יצרני OEM יכולים לסגנן תבניות ורכיבים אלה של ממשק המשתמש.
- התוצאה? אפליקציות 3P משולבות היטב מבחינה ויזואלית במערכת המידע והבידור של ה-OEM.
דף זה מסביר כיצד ליצור את ה-AOSP Automotive App Host מפרויקט Gradle בסניף ub-automotive
ולאחר מכן כיצד לשלב את AOSP Automotive App Host ביעדי רכב.
בדוק את הקוד
כדי לבדוק את הקוד המנותק:
- הפעל את הפקודה הבאה:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master repo sync -j4
למידע נוסף על עבודה עם קוד מקור AOSP, ראה אתחול לקוח Repo .
- התקן את Android Studio .
צור את ה-APK המארח של AOSP
- בדוק את
ub-automotive
ולאחר מכן פתח את פרויקט Gradle תחתpackages/apps/Car/Templates/Host
. - כדי להגדיר את הפרויקט עם ה-Android SDK, הגדר את הקובץ
local.properties
של הפרויקט שלך. אתה יכול למצוא את הנתיב תחת הגדרות Android SDK ב-Android Studio.sdk.dir=${path_to_android_sdk_location}
- צור את ה-APK המארח כפרויקט Gradle טיפוסי. לדוגמה, הפעל את הפקודה
gradle
:./gradlew :app:assembleDebug
קובץ ה-APK נמצא ב:
packages/apps/Car/Templates/Host/app/build/outputs/apk/debug/app-debug.apk
הטמע את מארח ה-AOSP
- צור קובץ
Android.mk
חדש שיכלול את התוכן הבא:LOCAL_PATH := $(my-dir) ################## Start of AOSPHost target ################## include $(CLEAR_VARS) LOCAL_MODULE := CarAOSPHost LOCAL_LICENSE_KINDS := legacy_notice LOCAL_LICENSE_CONDITIONS := notice LOCAL_MODULE_OWNER := google LOCAL_SRC_FILES := AOSPHost.apk LOCAL_MODULE_CLASS := APPS LOCAL_MODULE_TAGS := optional LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) LOCAL_BUILT_MODULE_STEM := package.apk LOCAL_CERTIFICATE := PRESIGNED LOCAL_PRIVILEGED_MODULE := true LOCAL_PRODUCT_MODULE := true LOCAL_DEX_PREOPT := false include $(BUILD_PREBUILT)
- שנה את שם
app-debug.apk
ל-AOSPHost.apk
ושם את ה-APK באותה תיקיה כמוAndroid.mk
. - הוסף את מודול
CarAOSPHost
ליעדים שלך בתורPRODUCT_PACKAGES
:PRODUCT_PACKAGES += \ CarAOSPHost \
הוסף את תצורת ההרשאות
- צור קובץ בשם
com.android.car.templates.host.xml
שיכיל את הדברים הבאים:<permissions> <!-- Rename the package to com.android.car.templates.host --> <privapp-permissions package="com.android.car.templates.host"> <!-- To be able to display activities in the cluster --> <permission name="android.car.permission.CAR_DISPLAY_IN_CLUSTER" /> <!-- To be able to show navigation state (turn by turn directions) in the cluster.--> <permission name="android.car.permission.CAR_NAVIGATION_MANAGER" /> <!-- To be considered a system-approved host --> <permission name="android.car.permission.TEMPLATE_RENDERER" /> </privapp-permissions> <!-- Declare support for templated applications. --> <feature name="android.software.car.templates_host" /> </permissions>
- ביעד שלך, הוסף את קובץ התצורה למטרות שלך:
PRODUCT_COPY_FILES += \ <the file root>/com.android.car.templates.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.android.car.templates.host.xml
בנה את המטרה
כאשר אתה בונה את היעד, המארח מותקן והרשאה ניתנת:
… android.car.permission.CAR_NAVIGATION_MANAGER: granted=true android.car.permission.CAR_DISPLAY_IN_CLUSTER: granted=true android.car.permission.TEMPLATE_RENDERER: granted=true …
בדוק את האינטגרציה
כדי לבנות ולהתקין את הדוגמאות, עיין בפרויקט GitHub זה, car-samples/car_app_library .