डायल करने की सुविधा, मीडिया, कार की यूज़र इंटरफ़ेस (यूआई) लाइब्रेरी, और एसएमएस की सुविधा देने वाले ऐप्लिकेशन को अनबंडल्ड ऐप्लिकेशन माना जाता है. इसका मतलब है कि ये ऐप्लिकेशन, 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 |
| Dialer | 31 |
| मीडिया | 30 |
| Messenger (एसएमएस) | 30 |
| AOSP होस्ट | 29 |
| ऐप्लिकेशन लॉक | 34 |
पहले से बनी इमेज को सिस्टम इमेज में इंटिग्रेट करना
अगर 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 |