डायल करने की सुविधा, मीडिया, कार की यूज़र इंटरफ़ेस (यूआई) लाइब्रेरी, और एसएमएस की सुविधा देने वाले ऐप्लिकेशन को अनबंडल्ड ऐप्लिकेशन माना जाता है. इसका मतलब है कि ये ऐप्लिकेशन, Android प्लैटफ़ॉर्म से अनबंडल्ड होते हैं. ऐसे ऐप्लिकेशन में, फ़ोन कंपैनियन ऐप्लिकेशन से डेटा पाने का लॉजिक और कार के सिस्टम पर यूज़र एक्सपीरियंस (यूएक्स) शामिल होता है. इसमें, कार के सिस्टम से फ़ोन को कनेक्ट करने और सुविधा के लिए रजिस्टर करने की सेटिंग भी शामिल होती है. अनबंडल किए गए कोड से बनाए गए APK, प्लैटफ़ॉर्म के कई वर्शन के साथ काम करते हैं.
कोड देखें
अनबंडल किए गए कोड को देखने के लिए, यह कमांड चलाएं:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-masterrepo sync -cq -j4
AOSP के सोर्स कोड के साथ काम करने के बारे में ज़्यादा जानने के लिए, Repo क्लाइंट को शुरू करना लेख पढ़ें.
कोड बनाना
Android Studio या कमांड लाइन का इस्तेमाल करके, कोड बनाया जा सकता है.
Android Studio
Android Studio में कोड बनाने के लिए:
Android Studio में, यहां दी गई बिल्ड फ़ाइल इंपोर्ट करें:
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradleपक्का करें कि Gradle JDK, वर्शन 11 या इसके बाद वाले वर्शन पर सेट हो:
पहली इमेज. Android Studio में Gradle JDK को वर्शन 11 पर सेट करें.
कमांड लाइन
कमांड लाइन से कोड बनाने के लिए:
इनमें से किसी एक तरीके का इस्तेमाल करके, 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 के पाथ के साथ
ANDROID_SDK_ROOTएनवायरमेंट वैरिएबल सेट करें.
कमांड प्रॉम्प्ट या शेल विंडो खोलें.
packages/apps/Car/libs/aaos-apps-gradle-projectपर जाएंयह कमांड चलाएं:
./gradlew assemble
कम से कम ज़रूरी एपीआई लेवल
अनबंडल किया गया हर ऐप्लिकेशन, Android के ऐसे प्लैटफ़ॉर्म पर काम करता है जिसका वर्शन, ऐप्लिकेशन के minSdkVersion के बराबर या उससे ज़्यादा हो. यहां दी गई टेबल में, हर ऐप्लिकेशन के साथ काम करने वाले एपीआई के कम से कम वर्शन की सूची दी गई है:
| ऐप्लिकेशन | कम से कम एपीआई लेवल |
|---|---|
| Calendar | 29 |
| कार की यूज़र इंटरफ़ेस (यूआई) लाइब्रेरी | 29 |
| CompanionDevice | 29 |
| डायलर | 31 |
| मीडिया | 30 |
| Messenger (एसएमएस) | 30 |
| AOSP होस्ट | 29 |
किसी प्रीबिल्ड को सिस्टम इमेज में इंटिग्रेट करना
अगर Android प्लैटफ़ॉर्म का वर्शन, ऐप्लिकेशन के साथ काम करता है (पिछले सेक्शन में दी गई टेबल देखें), तो सिस्टम इमेज में APK जोड़ा जा सकता है. हालांकि, Android प्लैटफ़ॉर्म के वर्शन के हिसाब से इंटिग्रेशन के चरण अलग-अलग होते हैं.
Android 13 और उसके बाद के वर्शन
Android 13 और इसके बाद के वर्शन में, अनबंडल किए गए ऐप्लिकेशन के लिए सोर्स कोड शामिल नहीं होता. हालांकि, सीडीडी के मुताबिक काम करने की जांच या खास सुविधाओं वाले ऐप्लिकेशन को उपलब्ध कराने जैसे इस्तेमाल के उदाहरणों के लिए, प्लैटफ़ॉर्म बिल्ड में पहले से बनाया गया 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
}
अनबंडल किए गए ऐप्लिकेशन की जानकारी
| ऐप्लिकेशन/डिस्ट्रिब्यूशन | खास अधिकार वाला अनबंडल्ड सिस्टम के हस्ताक्षर वाला |
Privileged unbundled non-system signed |
अनबंडल किए गए सिस्टम पार्टीशन में शामिल नहीं होने चाहिए |
|---|---|---|---|
| ऐप्लिकेशन - Calendar | X | ||
| ऐप्लिकेशन - CompanionDeviceSupport | X | ||
| ऐप्लिकेशन - Dialer | X | ||
| ऐप्लिकेशन - AOSP होस्ट | X | ||
| ऐप्लिकेशन - मीडिया | X | ||
| ऐप्लिकेशन - Messenger (एसएमएस) | X | ||
| वितरण की जानकारी अपडेट करना | OTA | OTA या Google Play | OTA या Google Play |