میزبان برنامه Automotive Project متن باز Android (AOSP) بخشی از کتابخانه برنامه خودرو است که توسط توسعه دهندگان شخص ثالث (3P) برای فعال کردن برنامه ها برای Android Automotive استفاده می شود. App Host یک برنامه سیستمی است که به برنامه های خودروی 3P اجازه می دهد تا اجزای رابط کاربری (UI) به سبک OEM را از طرف خود ارائه دهند.
برای اجرای برنامه های 3P، هم برنامه 3P و هم AOSP Automotive App Host باید نصب شوند:
- Automotive App Host برنامه های 3P را با مجموعه ای از الگوهای رابط کاربری و اجزای بهینه سازی شده برای وسایل نقلیه، از جمله قابلیت هایی مانند قابلیت استفاده و ایمنی، ارائه می دهد.
- OEM ها می توانند به این قالب ها و مؤلفه های رابط کاربری استایل دهی کنند.
- نتیجه؟ برنامه های 3P از نظر بصری به خوبی در سیستم اطلاعات سرگرمی OEM ادغام شده اند.
این صفحه نحوه تولید AOSP Automotive App Host از پروژه Gradle در شاخه ub-automotive
و سپس نحوه ادغام AOSP Automotive App Host در اهداف خودرو را توضیح می دهد.
کد را بررسی کنید
برای بررسی کد جدا شده:
- دستور زیر را اجرا کنید:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master repo sync -j4
برای کسب اطلاعات بیشتر در مورد کار با کد منبع AOSP، به Initialize a Repo Client مراجعه کنید.
- اندروید استودیو را نصب کنید.
AOSP میزبان APK ایجاد کنید
-
ub-automotive
را بررسی کنید و سپس پروژه Gradle را در قسمتpackages/apps/Car/Templates/Host
باز کنید. - برای پیکربندی پروژه با Android SDK، فایل
local.properties
پروژه خود را پیکربندی کنید. میتوانید مسیر را در تنظیمات Android SDK در Android Studio پیدا کنید.sdk.dir=${path_to_android_sdk_location}
- APK میزبان را به عنوان یک پروژه معمولی Gradle ایجاد کنید. برای مثال دستور
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 …
ادغام را تست کنید
برای ساخت و نصب نمونه ها، به این پروژه GitHub، car-samples/car_app_library مراجعه کنید.