Android Open Source Project (AOSP) Automotive App होस्ट, कार ऐप्लिकेशन लाइब्रेरी का हिस्सा है. इसका इस्तेमाल, तीसरे पक्ष (3P) के डेवलपर, Android Automotive के लिए ऐप्लिकेशन चालू करने के लिए करते हैं. ऐप्लिकेशन होस्ट एक सिस्टम ऐप्लिकेशन है. इसकी मदद से, तीसरे पक्ष के कार ऐप्लिकेशन, OEM स्टाइल वाले यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट को रेंडर कर सकते हैं.
तीसरे पक्ष के ऐप्लिकेशन चलाने के लिए, तीसरे पक्ष का ऐप्लिकेशन और AOSP Automotive App होस्ट, दोनों को इंस्टॉल करना ज़रूरी है:
- Automotive App होस्ट, तीसरे पक्ष के ऐप्लिकेशन के लिए यूज़र इंटरफ़ेस (यूआई) टेंप्लेट और कॉम्पोनेंट का एक सेट उपलब्ध कराता है. ये टेंप्लेट और कॉम्पोनेंट, गाड़ियों के लिए ऑप्टिमाइज़ किए गए होते हैं. इनमें, इस्तेमाल करने और सुरक्षा जैसी सुविधाएं भी शामिल होती हैं.
- OEM, इन यूज़र इंटरफ़ेस (यूआई) टेंप्लेट और कॉम्पोनेंट को स्टाइल कर सकते हैं.
- इससे क्या नतीजे मिलेंगे? तीसरे पक्ष के ऐप्लिकेशन, OEM के सूचना और मनोरंजन की सुविधा देने वाले डिवाइस में अच्छी तरह से इंटिग्रेट किए गए हों.
इस पेज पर, ub-automotive
शाखा में मौजूद Gradle प्रोजेक्ट से AOSP Automotive ऐप्लिकेशन होस्ट जनरेट करने का तरीका बताया गया है. इसके बाद, AOSP Automotive ऐप्लिकेशन होस्ट को कार टारगेट में इंटिग्रेट करने का तरीका बताया गया है.
कोड देखें
अनबंड किए गए कोड की जांच करने के लिए:
- यह कमांड चलाएं:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master repo sync -j4
AOSP सोर्स कोड के साथ काम करने के बारे में ज़्यादा जानने के लिए, रिपो क्लाइंट को शुरू करना लेख पढ़ें.
- Android Studio इंस्टॉल करें.
AOSP होस्ट APK बनाना
ub-automotive
को देखें और फिरpackages/apps/Car/Templates/Host
में जाकर Gradle प्रोजेक्ट खोलें.- Android SDK टूल की मदद से प्रोजेक्ट को कॉन्फ़िगर करने के लिए, अपने प्रोजेक्ट की
local.properties
फ़ाइल को कॉन्फ़िगर करें. आपको यह पाथ, Android Studio में Android SDK की सेटिंग में दिखेगा.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.