যেসব অ্যাপে ডায়ালার, মিডিয়া, কার UI লাইব্রেরি এবং এসএমএস অন্তর্ভুক্ত থাকে, সেগুলোকে আনবান্ডলড অ্যাপ হিসেবে গণ্য করা হয় (অর্থাৎ, এগুলো অ্যান্ড্রয়েড প্ল্যাটফর্ম থেকে আলাদা করা থাকে)। এই ধরনের অ্যাপে ফোন কম্প্যানিয়ন অ্যাপ থেকে ডেটা গ্রহণ করার লজিক এবং গাড়ির দিকের ইউএক্স (UX) অন্তর্ভুক্ত থাকে, যার মধ্যে অ্যাসোসিয়েশন ও ফিচার এনরোলমেন্টের সেটিংসও রয়েছে। আনবান্ডলড কোড থেকে তৈরি করা APK-গুলো প্ল্যাটফর্মের বিভিন্ন সংস্করণের সাথে কাজ করে।
কোডটি দেখুন
আনবান্ডেল করা কোড চেক আউট করতে, নিম্নলিখিতটি চালান:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-masterrepo sync -cq -j4
AOSP সোর্স কোড নিয়ে কাজ করার বিষয়ে আরও জানতে, রিপো ক্লায়েন্ট ইনিশিয়ালাইজ করুন দেখুন।
কোডটি তৈরি করুন
আপনি অ্যান্ড্রয়েড স্টুডিও অথবা কমান্ড লাইন থেকে কোডটি বিল্ড করতে পারেন।
অ্যান্ড্রয়েড স্টুডিও
অ্যান্ড্রয়েড স্টুডিওতে কোডটি বিল্ড করতে:
অ্যান্ড্রয়েড স্টুডিওতে, নিম্নলিখিত বিল্ড ফাইলটি ইম্পোর্ট করুন:
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradleনিশ্চিত করুন যে Gradle JDK-এর ভার্সন ১১ বা তার চেয়ে উচ্চতর সংস্করণ সেট করা আছে:

চিত্র ১। অ্যান্ড্রয়েড স্টুডিওতে গ্রেডল জেডিকে (Gradle JDK) ভার্সন ১১-এ সেট করুন।
কমান্ড লাইন
কমান্ড লাইন থেকে কোডটি বিল্ড করতে:
নিম্নলিখিত পদ্ধতিগুলোর মধ্যে যেকোনো একটি ব্যবহার করে অ্যান্ড্রয়েড এসডিকে-র অবস্থান নির্ধারণ করুন:
packages/apps/Car/libs/aaos-apps-gradle-project/local.propertiesফাইলটি তৈরি করুন এবং তারপর এর মধ্যে থাকাsdk.dirপ্রপার্টিটি সেট করুন। অ্যান্ড্রয়েড স্টুডিও একটি প্রজেক্ট খোলার সময় এটি স্বয়ংক্রিয়ভাবে করতে পারে। উদাহরণস্বরূপ,sdk.dir=/Users/MY-USERNAME/Library/Android/sdkব্যবহার করুন।অথবা
ANDROID_SDK_ROOTএনভায়রনমেন্ট ভেরিয়েবলটি Android SDK-এর পাথ দিয়ে সেট করুন।
একটি কমান্ড প্রম্পট বা শেল উইন্ডো খুলুন।
packages/apps/Car/libs/aaos-apps-gradle-project-এ যান।নিম্নলিখিত কমান্ডটি চালান:
./gradlew assemble
ন্যূনতম প্রয়োজনীয় এপিআই স্তর
প্রতিটি আনবান্ডেলড অ্যাপ তার minSdkVersion সমান বা তার চেয়ে বেশি সংস্করণের অ্যান্ড্রয়েড প্ল্যাটফর্মে কাজ করে। নিম্নলিখিত সারণিতে প্রতিটি অ্যাপ দ্বারা সমর্থিত সর্বনিম্ন API সংস্করণ তালিকাভুক্ত করা হয়েছে:
| অ্যাপ | সর্বনিম্ন এপিআই স্তর |
|---|---|
| ক্যালেন্ডার | ২৯ |
| গাড়ির UI লাইব্রেরি | ২৯ |
| সহযোগী ডিভাইস | ২৯ |
| ডায়ালার | ৩১ |
| মিডিয়া | ৩০ |
| মেসেঞ্জার (এসএমএস) | ৩০ |
| AOSP হোস্ট | ২৯ |
| অ্যাপ লক | ৩৪ |
একটি সিস্টেম ইমেজে একটি প্রি-বিল্ট ইন্টিগ্রেট করুন
যদি অ্যাপটি অ্যান্ড্রয়েড প্ল্যাটফর্ম সংস্করণ দ্বারা সমর্থিত হয় (পূর্ববর্তী বিভাগের সারণিটি দেখুন), তবে আপনি 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"],
}
অ্যান্ড্রয়েড ১২ এবং তার নিচের সংস্করণ
অ্যান্ড্রয়েড ১২ এবং এর নিচের সংস্করণগুলোতে আনবান্ডেলড অ্যাপের সোর্স কোড অন্তর্ভুক্ত থাকে, কিন্তু আপনি চাইলে একটি প্রি-বিল্ট 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
}
আনবান্ডেলড অ্যাপের বিবরণ
| অ্যাপ | বিশেষাধিকারপ্রাপ্ত আনবান্ডেলড সিস্টেম স্বাক্ষরিত | বিশেষাধিকারপ্রাপ্ত আনবান্ডেলড সিস্টেম-বহির্ভূত স্বাক্ষরিত | আনবান্ডেলড সিস্টেম পার্টিশনে থাকার প্রয়োজন নেই |
|---|---|---|---|
| বিতরণ আপডেট করুন | ওটিএ | OTA বা গুগল প্লে | OTA বা গুগল প্লে |
| AOSP হোস্ট | এক্স | ||
| ক্যালেন্ডার | এক্স | ||
| সহযোগী ডিভাইস সমর্থন | এক্স | ||
| নিয়ন্ত্রণ কেন্দ্র (মাল্টি-ডিসপ্লে) | এক্স | ||
| ডায়ালার | এক্স | ||
| মিডিয়া | এক্স | ||
| মেসেঞ্জার (এসএমএস) | এক্স | ||
| সংবেদনশীল অ্যাপ লক | এক্স |