डायल करने की सुविधा, मीडिया, कार की यूज़र इंटरफ़ेस (यूआई) लाइब्रेरी, और एसएमएस की सुविधा देने वाले ऐप्लिकेशन को अनबंडल्ड ऐप्लिकेशन माना जाता है. इसका मतलब है कि ये ऐप्लिकेशन, Android प्लैटफ़ॉर्म से अनबंडल्ड होते हैं. ऐसे ऐप्लिकेशन में, फ़ोन कंपैनियन ऐप्लिकेशन से डेटा पाने और कार के सिस्टम पर यूज़र एक्सपीरियंस (यूएक्स) से जुड़ा लॉजिक शामिल होता है. इसमें, कार के सिस्टम से फ़ोन को जोड़ने और सुविधा के लिए रजिस्टर करने की सेटिंग भी शामिल होती है. अनबंडल किए गए कोड से बनाए गए APK, प्लैटफ़ॉर्म के कई वर्शन के साथ काम करते हैं.
कोड देखें
अनबंडल किए गए कोड को देखने के लिए, यह कमांड चलाएं:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-masterrepo sync -cq -j4
AOSP के सोर्स कोड के साथ काम करने के बारे में ज़्यादा जानने के लिए, Repo Client को शुरू करना लेख पढ़ें.
कोड बनाना
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 system signed |
Privileged unbundled non-system signed |
अनबंडल किए गए सिस्टम पार्टीशन में शामिल नहीं होने चाहिए |
|---|---|---|---|
| डिस्ट्रिब्यूशन अपडेट करें | OTA | OTA या Google Play | OTA या Google Play |
| AOSP होस्ट | X | ||
| Calendar | X | ||
| CompanionDeviceSupport | X | ||
| कंट्रोल सेंटर (मल्टी-डिसप्ले) | X | ||
| डायलर | X | ||
| मीडिया | X | ||
| Messenger (एसएमएस) | X | ||
| संवेदनशील ऐप्लिकेशन लॉक | X |