अलग-अलग बंडल में मौजूद ऐप्लिकेशन इंटिग्रेट करना

डायलर, मीडिया, कार की यूज़र इंटरफ़ेस (यूआई) लाइब्रेरी, और एसएमएस जैसे ऐप्लिकेशन को अलग-अलग बंडल में मौजूद ऐप्लिकेशन माना जाता है. इसका मतलब है कि ये ऐप्लिकेशन, Android प्लैटफ़ॉर्म से अलग-अलग बंडल में मौजूद होते हैं. ऐसे ऐप्लिकेशन में, फ़ोन के साथ काम करने वाले ऐप्लिकेशन और कार के यूज़र इंटरफ़ेस (यूएक्स) से डेटा पाने का लॉजिक शामिल होता है. इसमें, असोसिएशन और सुविधा के लिए रजिस्टर करने की सेटिंग भी शामिल होती हैं. अनबंड किए गए कोड से बनाए गए APK, प्लैटफ़ॉर्म के कई वर्शन के साथ काम करते हैं.

कोड देखें

अनबंड किए गए कोड की जांच करने के लिए, यह तरीका अपनाएं:

repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
repo sync -cq -j4

AOSP सोर्स कोड के साथ काम करने के बारे में ज़्यादा जानने के लिए, Repo क्लाइंट को शुरू करना लेख पढ़ें.

कोड बनाना

Android Studio या कमांड लाइन का इस्तेमाल करके, कोड बनाया जा सकता है.

Android Studio

Android Studio में कोड बनाने के लिए:

  1. Android Studio में, यह बिल्ड फ़ाइल इंपोर्ट करें:

    packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
    
  2. पक्का करें कि Gradle JDK, 11 या इसके बाद के वर्शन पर सेट हो:

    वर्शन 11

    पहली इमेज. Android Studio में, Gradle JDK को वर्शन 11 पर सेट करें.

कमांड लाइन

कमांड लाइन से कोड बनाने के लिए:

  1. इनमें से किसी एक तरीके का इस्तेमाल करके, Android SDK की जगह की जानकारी सेट करें:

    • packages/apps/Car/libs/aaos-apps-gradle-project/local.properties बनाएं और फिर उसमें sdk.dir प्रॉपर्टी सेट करें. Android Studio, प्रोजेक्ट खोलने पर ऐसा अपने-आप कर सकता है. उदाहरण के लिए, sdk.dir=/Users/MY-USERNAME/Library/Android/sdk का इस्तेमाल करें.

      या

    • ANDROID_SDK_ROOT एनवायरमेंट वैरिएबल को Android SDK टूल के पाथ के साथ सेट करें.

  2. कोई कमांड प्रॉम्प्ट या शेल विंडो खोलें.

  3. packages/apps/Car/libs/aaos-apps-gradle-project पर जाएं

  4. यह कमांड चलाएं:

    ./gradlew assemble

ज़रूरी एपीआई लेवल

अनबंड किए गए हर ऐप्लिकेशन के लिए, Android के उस वर्शन की ज़रूरत होती है जो minSdkVersion के बराबर या उससे ज़्यादा हो. यहां दी गई टेबल में, हर ऐप्लिकेशन के साथ काम करने वाले एपीआई के कम से कम वर्शन की सूची दी गई है:

ऐप्लिकेशन कम से कम एपीआई लेवल
Calendar 29
कार की यूज़र इंटरफ़ेस (यूआई) लाइब्रेरी 29
CompanionDevice 29
Dialer 31
मीडिया 30
Messenger (एसएमएस) 30
AOSP होस्ट 29

पहले से बने वर्शन को सिस्टम इमेज में इंटिग्रेट करना

अगर ऐप्लिकेशन, Android प्लैटफ़ॉर्म के उस वर्शन पर काम करता है जिसका इस्तेमाल डिवाइस में किया जा रहा है (पिछले सेक्शन में टेबल देखें), तो सिस्टम इमेज में APK जोड़ा जा सकता है. हालांकि, Android प्लैटफ़ॉर्म के वर्शन के हिसाब से, इंटिग्रेशन के चरण अलग-अलग होते हैं.

Android 13 और उसके बाद के वर्शन

Android 13 और उसके बाद के वर्शन में, अनबंड किए गए ऐप्लिकेशन का सोर्स कोड शामिल नहीं होता. हालांकि, सीडीडी के अनुपालन की जांच करने या खास सुविधाओं वाले ऐप्लिकेशन को उपलब्ध कराने जैसे इस्तेमाल के उदाहरणों के लिए, प्लैटफ़ॉर्म बिल्ड में पहले से बना APK शामिल किया जा सकता है. APK की जानकारी देने के लिए, android_app_import Soong नियम का इस्तेमाल करें, जैसा कि इस उदाहरण में दिखाया गया है:

android_app_import {
    name: "CarMediaApp",
    apk: "CarMediaApp.apk",
    privileged: true,
    certificate: "platform", // Media must be signed by the platform
    required: ["allowed_privapp_com.android.car.media"],
}

Android 12 और उससे पहले के वर्शन

Android 12 और उससे पहले के वर्शन में, अनबंड किए गए ऐप्लिकेशन का सोर्स कोड शामिल होता है. हालांकि, अब भी किसी पहले से बने APK को शामिल करने के लिए कहा जा सकता है. Soong डिफ़ॉल्ट रूप से, पहले से बने कोड के बजाय सोर्स कोड को प्राथमिकता देता है. इसलिए, android_app_import नियम में prefer फ़्लैग को true पर सेट करना ज़रूरी है, जैसा कि यहां दिए गए उदाहरण में दिखाया गया है:

android_app_import {
    name: "CarDialerApp",
    apk: "CarDialerApp.apk",
    privileged: true,
    presigned: true, // Dialer can have its own signature
    required: ["allowed_privapp_com.android.car.dialer"],
    overrides: ["Dialer"],
    prefer: true, // The prebuilt replaces a source target with the same name
    }

अलग-अलग बंडल में उपलब्ध ऐप्लिकेशन की जानकारी

ऐप्लिकेशन/डिस्ट्रिब्यूशन खास सुविधाओं वाला अनबंड किया गया
सिस्टम साइन किया गया
खास सुविधाओं वाला अनबंड किया गया
सिस्टम के लिए साइन नहीं किया गया
अनबंड किए गए
को सिस्टम पार्टीशन में होना ज़रूरी नहीं है
ऐप्लिकेशन - Calendar X
ऐप्लिकेशन - CompanionDeviceSupport X
ऐप्लिकेशन - डायलर X
ऐप्लिकेशन - AOSP होस्ट X
ऐप्लिकेशन - मीडिया X
ऐप्लिकेशन - मैसेंजर (एसएमएस) X
डिस्ट्रिब्यूशन अपडेट करना OTA ओटीए या Google Play ओटीए या Google Play