מארח האפליקציות של 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