מדריך שילוב מארח AOSP

מארח אפליקציות ה-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 ביעדי רכב.

בדוק את הקוד

כדי לבדוק את הקוד המנותק:

  1. הפעל את הפקודה הבאה:
    repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
    repo sync -j4
    
  2. למידע נוסף על עבודה עם קוד מקור AOSP, ראה אתחול לקוח Repo .

  3. התקן את Android Studio .

צור את ה-APK המארח של AOSP

  1. בדוק את ub-automotive ולאחר מכן פתח את פרויקט Gradle תחת packages/apps/Car/Templates/Host .
  2. כדי להגדיר את הפרויקט עם ה-Android SDK, הגדר את הקובץ local.properties של הפרויקט שלך. אתה יכול למצוא את הנתיב תחת הגדרות Android SDK ב-Android Studio.
    sdk.dir=${path_to_android_sdk_location}
    
  3. צור את ה-APK המארח כפרויקט Gradle טיפוסי. לדוגמה, הפעל את הפקודה gradle :
    ./gradlew :app:assembleDebug
    

    קובץ ה-APK נמצא ב:

    packages/apps/Car/Templates/Host/app/build/outputs/apk/debug/app-debug.apk

הטמע את מארח ה-AOSP

  1. צור קובץ 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)
    
  2. שנה את שם app-debug.apk ל- AOSPHost.apk ושם את ה-APK באותה תיקיה כמו Android.mk .
  3. הוסף את מודול CarAOSPHost ליעדים שלך בתור PRODUCT_PACKAGES :
    PRODUCT_PACKAGES += \
       CarAOSPHost \
    

הוסף את תצורת ההרשאות

  1. צור קובץ בשם 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>
    
  2. ביעד שלך, הוסף את קובץ התצורה למטרות שלך:
    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 .