AOSP হোস্ট ইন্টিগ্রেশন গাইড

অ্যান্ড্রয়েড ওপেন সোর্স প্রজেক্ট (AOSP) অটোমোটিভ অ্যাপ হোস্ট কার অ্যাপ লাইব্রেরির একটি অংশ যা তৃতীয় পক্ষের (3P) বিকাশকারীরা Android Automotive-এর জন্য অ্যাপগুলিকে সক্ষম করতে ব্যবহার করে। অ্যাপ হোস্ট হল একটি সিস্টেম অ্যাপ যা 3P কার অ্যাপগুলিকে তার পক্ষ থেকে OEM-স্টাইলযুক্ত ইউজার ইন্টারফেস (UI) উপাদান রেন্ডার করতে দেয়।

3P অ্যাপ চালানোর জন্য, 3P অ্যাপ এবং AOSP অটোমোটিভ অ্যাপ হোস্ট উভয়কেই ইনস্টল করতে হবে:

  • স্বয়ংচালিত অ্যাপ হোস্ট ব্যবহারযোগ্যতা এবং নিরাপত্তার মতো ক্ষমতা সহ যানবাহনের জন্য অপ্টিমাইজ করা UI টেমপ্লেট এবং উপাদানগুলির একটি সেট সহ 3P অ্যাপ সরবরাহ করে।
  • OEM গুলি এই UI টেমপ্লেট এবং উপাদানগুলিকে স্টাইল করতে পারে৷
  • ফলাফল? 3P অ্যাপগুলি OEM-এর ইনফোটেইনমেন্ট সিস্টেমে দৃশ্যত ভালভাবে একত্রিত।

এই পৃষ্ঠাটি ব্যাখ্যা করে যে কীভাবে ub-automotive শাখায় গ্রেডল প্রকল্প থেকে AOSP অটোমোটিভ অ্যাপ হোস্ট তৈরি করা যায় এবং তারপরে কীভাবে AOSP অটোমোটিভ অ্যাপ হোস্টকে গাড়ির লক্ষ্যে সংহত করা যায়।

কোড চেক আউট

আনবান্ডেড কোড চেক করতে:

  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 অধীনে গ্রেডল প্রকল্পটি খুলুন।
  2. Android SDK দিয়ে প্রজেক্ট কনফিগার করতে, আপনার প্রোজেক্টের local.properties ফাইল কনফিগার করুন। আপনি Android স্টুডিওতে Android SDK সেটিংসের অধীনে পথটি খুঁজে পেতে পারেন।
    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. PRODUCT_PACKAGES হিসাবে আপনার লক্ষ্যগুলিতে CarAOSPHost মডিউল যুক্ত করুন :
    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
      …

ইন্টিগ্রেশন পরীক্ষা করুন

নমুনা তৈরি এবং ইনস্টল করতে, এই GitHub প্রকল্প, car-samples/car_app_library দেখুন।