অ্যান্ড্রয়েড ওপেন সোর্স প্রজেক্ট (AOSP) অটোমোটিভ অ্যাপ হোস্ট হলো কার অ্যাপ লাইব্রেরির একটি অংশ, যা তৃতীয় পক্ষের (3P) ডেভেলপাররা অ্যান্ড্রয়েড অটোমোটিভের জন্য অ্যাপ সক্ষম করতে ব্যবহার করে। অ্যাপ হোস্ট একটি সিস্টেম অ্যাপ যা 3P কার অ্যাপগুলোকে এর পক্ষ থেকে OEM-স্টাইলের ইউজার ইন্টারফেস (UI) কম্পোনেন্ট রেন্ডার করার সুযোগ দেয়।
3P অ্যাপ চালানোর জন্য, 3P অ্যাপ এবং AOSP Automotive App Host উভয়ই ইনস্টল করা থাকতে হবে:
- অটোমোটিভ অ্যাপ হোস্ট থার্ড-পার্টি (3P) অ্যাপগুলোকে যানবাহনের জন্য অপ্টিমাইজ করা একগুচ্ছ UI টেমপ্লেট ও কম্পোনেন্ট প্রদান করে, যার মধ্যে ব্যবহারযোগ্যতা এবং সুরক্ষার মতো সক্ষমতাও অন্তর্ভুক্ত রয়েছে।
- OEM-রা এই UI টেমপ্লেট এবং কম্পোনেন্টগুলোকে স্টাইল করতে পারে।
- এর ফলস্বরূপ, থার্ড-পার্টি অ্যাপগুলো মূল প্রস্তুতকারকের (OEM) ইনফোটেইনমেন্ট সিস্টেমের সাথে দৃশ্যত ভালোভাবে সমন্বিত হয়।
এই পৃষ্ঠায় ব্যাখ্যা করা হয়েছে কিভাবে গ্রেডল প্রজেক্টের ub-automotive ব্রাঞ্চ থেকে AOSP Automotive App Host তৈরি করতে হয় এবং তারপর কিভাবে AOSP Automotive App Host-কে কার টার্গেটগুলোতে ইন্টিগ্রেট করতে হয়।
কোডটি দেখুন
আনবান্ডেল করা কোডটি দেখতে:
- নিম্নলিখিত কমান্ডটি চালান:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master repo sync -j4
AOSP সোর্স কোড নিয়ে কাজ করার বিষয়ে আরও জানতে, রিপো ক্লায়েন্ট ইনিশিয়ালাইজ করুন দেখুন।
- অ্যান্ড্রয়েড স্টুডিও ইনস্টল করুন।
AOSP হোস্ট APK তৈরি করুন
-
ub-automotiveচেক আউট করুন এবং তারপরpackages/apps/Car/Templates/Hostঅধীনে থাকা Gradle প্রজেক্টটি খুলুন। - অ্যান্ড্রয়েড এসডিকে দিয়ে প্রজেক্টটি কনফিগার করতে, আপনার প্রজেক্টের
local.propertiesফাইলটি কনফিগার করুন। অ্যান্ড্রয়েড স্টুডিও-এর অ্যান্ড্রয়েড এসডিকে সেটিংস-এর অধীনে আপনি এর পাথটি খুঁজে পাবেন।sdk.dir=${path_to_android_sdk_location}
- একটি সাধারণ গ্রেডল প্রজেক্টের মতো হোস্ট APK তৈরি করুন। উদাহরণস্বরূপ, এই
gradleকমান্ডটি চালান:./gradlew :app:assembleDebug
APK ফাইলটি এখানে অবস্থিত:
packages/apps/Car/Templates/Host/app/build/outputs/apk/debug/app-debug.apk
AOSP হোস্ট এম্বেড করুন
- নিম্নলিখিত বিষয়বস্তু অন্তর্ভুক্ত করার জন্য একটি নতুন
Android.mkফাইল তৈরি করুন:LOCAL_PATH := $(my-dir) ################## Start of AOSPHost target ################## include $(CLEAR_VARS) LOCAL_MODULE := CarAOSPHost LOCAL_LICENSE_KINDS := legacy_notice LOCAL_LICENSE_CONDITIONS := notice LOCAL_MODULE_OWNER := google LOCAL_SRC_FILES := AOSPHost.apk LOCAL_MODULE_CLASS := APPS LOCAL_MODULE_TAGS := optional LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) LOCAL_BUILT_MODULE_STEM := package.apk LOCAL_CERTIFICATE := PRESIGNED LOCAL_PRIVILEGED_MODULE := true LOCAL_PRODUCT_MODULE := true LOCAL_DEX_PREOPT := false include $(BUILD_PREBUILT)
app-debug.apkনাম পরিবর্তন করেAOSPHost.apkরাখুন এবং APK ফাইলটিAndroid.mkথাকা ফোল্ডারে রাখুন।-
CarAOSPHostমডিউলটিকে আপনার টার্গেটগুলিতেPRODUCT_PACKAGESহিসেবে যোগ করুন:PRODUCT_PACKAGES += \ CarAOSPHost \
অনুমতি কনফিগারেশন যোগ করুন
-
com.android.car.templates.host.xmlনামে একটি ফাইল তৈরি করুন এবং তাতে নিম্নলিখিত বিষয়গুলো অন্তর্ভুক্ত করুন:<permissions> <!-- Rename the package to com.android.car.templates.host --> <privapp-permissions package="com.android.car.templates.host"> <!-- To be able to display activities in the cluster --> <permission name="android.car.permission.CAR_DISPLAY_IN_CLUSTER" /> <!-- To be able to show navigation state (turn by turn directions) in the cluster.--> <permission name="android.car.permission.CAR_NAVIGATION_MANAGER" /> <!-- To be considered a system-approved host --> <permission name="android.car.permission.TEMPLATE_RENDERER" /> </privapp-permissions> <!-- Declare support for templated applications. --> <feature name="android.software.car.templates_host" /> </permissions>
- আপনার টার্গেটে কনফিগ ফাইলটি যোগ করুন:
PRODUCT_COPY_FILES += \ <the file root>/com.android.car.templates.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.android.car.templates.host.xml
লক্ষ্য তৈরি করুন
যখন আপনি টার্গেটটি বিল্ড করেন, তখন হোস্টটি ইনস্টল করা হয় এবং অনুমতি প্রদান করা হয়:
… android.car.permission.CAR_NAVIGATION_MANAGER: granted=true android.car.permission.CAR_DISPLAY_IN_CLUSTER: granted=true android.car.permission.TEMPLATE_RENDERER: granted=true …
ইন্টিগ্রেশন পরীক্ষা করুন
স্যাম্পলগুলো বিল্ড ও ইনস্টল করতে, এই গিটহাব প্রজেক্টটি দেখুন: car-samples/car_app_library ।