AOSP হোস্টকে একীভূত করুন

অ্যান্ড্রয়েড ওপেন সোর্স প্রজেক্ট (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-কে কার টার্গেটগুলোতে ইন্টিগ্রেট করতে হয়।

কোডটি দেখুন

আনবান্ডেল করা কোডটি দেখতে:

  1. নিম্নলিখিত কমান্ডটি চালান:
    repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
    repo sync -j4
  2. AOSP সোর্স কোড নিয়ে কাজ করার বিষয়ে আরও জানতে, রিপো ক্লায়েন্ট ইনিশিয়ালাইজ করুন দেখুন।

  3. অ্যান্ড্রয়েড স্টুডিও ইনস্টল করুন।

AOSP হোস্ট APK তৈরি করুন

  1. ub-automotive চেক আউট করুন এবং তারপর packages/apps/Car/Templates/Host অধীনে থাকা Gradle প্রজেক্টটি খুলুন।
  2. অ্যান্ড্রয়েড এসডিকে দিয়ে প্রজেক্টটি কনফিগার করতে, আপনার প্রজেক্টের local.properties ফাইলটি কনফিগার করুন। অ্যান্ড্রয়েড স্টুডিও-এর অ্যান্ড্রয়েড এসডিকে সেটিংস-এর অধীনে আপনি এর পাথটি খুঁজে পাবেন।
    sdk.dir=${path_to_android_sdk_location}
  3. একটি সাধারণ গ্রেডল প্রজেক্টের মতো হোস্ট APK তৈরি করুন। উদাহরণস্বরূপ, এই gradle কমান্ডটি চালান:
    ./gradlew :app:assembleDebug

    APK ফাইলটি এখানে অবস্থিত:

    packages/apps/Car/Templates/Host/app/build/outputs/apk/debug/app-debug.apk

AOSP হোস্ট এম্বেড করুন

  1. নিম্নলিখিত বিষয়বস্তু অন্তর্ভুক্ত করার জন্য একটি নতুন 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)
  2. app-debug.apk নাম পরিবর্তন করে AOSPHost.apk রাখুন এবং APK ফাইলটি Android.mk থাকা ফোল্ডারে রাখুন।
  3. CarAOSPHost মডিউলটিকে আপনার টার্গেটগুলিতে PRODUCT_PACKAGES হিসেবে যোগ করুন:
    PRODUCT_PACKAGES += \
       CarAOSPHost \

অনুমতি কনফিগারেশন যোগ করুন

  1. 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>
  2. আপনার টার্গেটে কনফিগ ফাইলটি যোগ করুন:
    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