AOSP होस्ट को इंटिग्रेट करना

Android Open Source Project (AOSP) Automotive App Host, Car App Library का हिस्सा है. इसका इस्तेमाल, तीसरे पक्ष (3P) के डेवलपर, Android Automotive के लिए ऐप्लिकेशन बनाने के लिए करते हैं. App Host, एक सिस्टम ऐप्लिकेशन है. इसकी मदद से, तीसरे पक्ष के कार ऐप्लिकेशन, ओईएम के स्टाइल वाले यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट रेंडर कर सकते हैं.

तीसरे पक्ष के ऐप्लिकेशन चलाने के लिए, तीसरे पक्ष का ऐप्लिकेशन और AOSP Automotive App Host, दोनों इंस्टॉल होने चाहिए:

  • Automotive App Host, तीसरे पक्ष के ऐप्लिकेशन को यूज़र इंटरफ़ेस (यूआई) के टेंप्लेट और कॉम्पोनेंट का सेट उपलब्ध कराता है. इन्हें गाड़ियों के लिए ऑप्टिमाइज़ किया जाता है. इनमें इस्तेमाल करने की सुविधा और सुरक्षा जैसी क्षमताएं शामिल होती हैं.
  • ओईएम, यूज़र इंटरफ़ेस (यूआई) के इन टेंप्लेट और कॉम्पोनेंट को स्टाइल कर सकते हैं.
  • इसका नतीजा? तीसरे पक्ष के ऐप्लिकेशन, ओईएम के सूचना और मनोरंजन वाले सिस्टम में अच्छी तरह से इंटिग्रेट हो जाते हैं.

इस पेज पर, ub-automotive ब्रांच में मौजूद Gradle प्रोजेक्ट से, AOSP Automotive App Host जनरेट करने का तरीका बताया गया है. इसके बाद, 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 इंस्टॉल करें.

AOSP होस्ट APK बनाएं

  1. ub-automotive देखें. इसके बाद, packages/apps/Car/Templates/Host में मौजूद Gradle प्रोजेक्ट खोलें.
  2. Android SDK के साथ प्रोजेक्ट को कॉन्फ़िगर करने के लिए, अपने प्रोजेक्ट की local.properties फ़ाइल को कॉन्फ़िगर करें. आपको Android Studio में, Android SDK की सेटिंग में जाकर पाथ मिल सकता है.
    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
      
android.car.permission.TEMPLATE_RENDERER

इंटिग्रेशन की जांच करना

सैंपल बनाने और इंस्टॉल करने के लिए, GitHub का यह प्रोजेक्ट, car-samples/car_app_library देखें.