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