מארח האפליקציות של Android לשימוש בפרויקט קוד פתוח (AOSP) הוא חלק מספריית האפליקציות של רכב משמש מפתחי צד שלישי (צד שלישי) כדי להפעיל אפליקציות ל-Android Automotive. מארח האפליקציות הוא מערכת שמאפשר לאפליקציות של צד שלישי לרכב לעבד רכיבים של ממשק משתמש (UI) בסגנון OEM (ממשק משתמש) מטעמה.
כדי להפעיל אפליקציות של צד שלישי, גם אפליקציית הצד השלישי וגם מארח האפליקציות AOSP Automotive מותקן:
- Automotive App Host מספק אפליקציות צד שלישי עם קבוצה של תבניות ורכיבים של ממשק משתמש בוצעה אופטימיזציה לכלי רכב, כולל יכולות כמו נוחות השימוש ובטיחות.
- יצרני ציוד מקורי יכולים לעצב את התבניות והרכיבים האלה של ממשק המשתמש.
- התוצאה? אפליקציות צד שלישי משולבות היטב מערכת המידע והבידור של ה-OEM.
בדף הזה מוסבר איך ליצור מארח אפליקציות של AOSP Automotive מפרויקט Gradle
הסתעפות של ub-automotive
ואז איך לשלב את מארח האפליקציות של AOSP במכונית
יעדים.
בדיקת הקוד
כדי לבדוק את הקוד שלא כלול בחבילה:
- מריצים את הפקודה הבאה:
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
. אפשר למצוא את הנתיב בהגדרות ה-SDK של Android ב-Android אולפן.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