यह आलेख बताता है कि अनबंडल किए गए ऐप्स को कैसे एकीकृत किया जाए। जिन ऐप्स में डायलर, मीडिया, कार यूआई लाइब्रेरी और एसएमएस शामिल हैं, उन्हें अनबंडल ऐप्स माना जाता है। इन ऐप्स को एंड्रॉइड प्लेटफॉर्म से अलग कर दिया गया है और इसमें फोन कंपेनियन ऐप और कार-साइड पर यूएक्स से डेटा प्राप्त करने के लिए तर्क शामिल हैं, जिसमें एसोसिएशन और फीचर नामांकन के लिए सेटिंग्स शामिल हैं।
अनबंडल्ड कोड से निर्मित एपीके प्लेटफॉर्म के कई संस्करणों के साथ काम करते हैं।
कोड देखें
अनबंडल कोड देखने के लिए:
- निम्न चलाएँ:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master repo sync -cq -j4
- एओएसपी स्रोत कोड के साथ काम करने के बारे में अधिक जानने के लिए, रेपो क्लाइंट को प्रारंभ करना देखें।
कोड बनाएँ
एंड्रॉइड स्टूडियो
Android स्टूडियो में कोड बनाने के लिए:
- Android स्टूडियो में, इस बिल्ड फ़ाइल को आयात करें:
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
- Android Studio में Gradle JDK को कम से कम संस्करण 11 पर सेट करना सुनिश्चित करें:
चित्र 1. संस्करण 11 - वांछित एपीके (या एपीके) बनाएं।
कमांड लाइन
कमांड लाइन से कोड बनाने के लिए:
- Android SDK स्थान को इन दो तरीकों में से किसी एक में सेट करें:
-
packages/apps/Car/libs/aaos-apps-gradle-project/local.properties
बनाएं और फिर उसमें मौजूदsdk.dir
प्रॉपर्टी को सेट करें। प्रोजेक्ट खोलते समय Android स्टूडियो स्वचालित रूप से ऐसा कर सकता है। उदाहरण के लिए,sdk.dir=/Users/MY-USERNAME/Library/Android/sdk
उपयोग करें
या, - Android SDK के पथ के साथ
ANDROID_SDK_ROOT
पर्यावरण चर सेट करें।
-
- कमांड प्रॉम्प्ट या शेल विंडो खोलें।
-
packages/apps/Car/libs/unbundled-apps-gradle-project
पर जाएं - निम्न आदेश चलाएँ:
./gradlew assemble
न्यूनतम आवश्यक एपीआई स्तर
प्रत्येक अनबंडल किया गया ऐप Android प्लेटफ़ॉर्म पर उसके minSdkVersion
के बराबर या उससे अधिक संस्करण के साथ काम करता है। निम्न तालिका प्रत्येक ऐप द्वारा समर्थित न्यूनतम एपीआई संस्करण को सूचीबद्ध करती है:
अनुप्रयोग | न्यूनतम एपीआई स्तर |
---|---|
पंचांग | 29 |
कार यूआई पुस्तकालय | 29 |
सहयोगी डिवाइस | 29 |
डायलर | 31 |
मिडिया | 30 |
एसएमएस | 30 |
एओएसपी होस्ट | 29 |
सिस्टम छवि में प्री-बिल्ड को एकीकृत करना
Android 13 और इसके बाद के संस्करण की छवियां
अनबंडल्ड कोड को Android 13 प्लेटफॉर्म से हटा दिया गया है। इसलिए, प्लैटफ़ॉर्म बिल्ड में पहले से बनाए गए APK को जोड़ने के लिए इनकी ज़रूरत हो सकती है:
- सीडीडी अनुपालन परीक्षण
- विशेषाधिकार प्राप्त ऐप्स का प्रावधान
यह android_app_import सूंग नियम से हासिल किया गया है:
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 प्लेटफ़ॉर्म संस्करण ऐप द्वारा समर्थित है (ऊपर दी गई तालिका देखें), एपीके को उस सिस्टम छवि में जोड़ा जा सकता है। हालाँकि, अधिकांश अनबंडल किए गए ऐप्स में Android 13 से पुराने प्लेटफ़ॉर्म में शामिल स्रोत कोड के पिछले संस्करण होते हैं। डिफ़ॉल्ट रूप से, 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, }
ऐप्स अनबंडल-प्रकार के अनुसार सूचीबद्ध हैं
अनुप्रयोग | विशेषाधिकार प्राप्त unbundled | अनबंडल किए गए (सिस्टम विभाजन पर होने की आवश्यकता नहीं है) | |
---|---|---|---|
सिस्टम पर हस्ताक्षर किए | गैर-प्रणाली पर हस्ताक्षर किए | ||
पंचांग | एक्स | ||
सहयोगी डिवाइस | एक्स | ||
डायलर | एक्स | ||
एओएसपी होस्ट | एक्स | ||
मिडिया | एक्स | ||
एसएमएस | एक्स | ||
अद्यतन वितरण | ओटीए | ओटीए या प्ले स्टोर | ओटीए या प्ले स्टोर |