В этой статье описывается, как интегрировать несвязанные приложения. Приложения, включающие Dialer, Media, Car UI Library и SMS, считаются отдельными приложениями. Эти приложения отделены от платформы Android и включают в себя логику для получения данных из приложения Companion на телефоне и UX на стороне автомобиля, включая настройки для ассоциации и регистрации функций.
APK-файлы, созданные из разрозненного кода, работают с несколькими версиями платформы.
Проверить код
Чтобы проверить несвязанный код:
- Запустите следующее:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master repo sync -cq -j4
- Дополнительные сведения о работе с исходным кодом AOSP см. в разделе Инициализация клиента репозитория .
Создайте код
Android-студия
Чтобы собрать код в Android Studio:
- В Android Studio импортируйте этот файл сборки:
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
- Обязательно установите Gradle JDK в Android Studio как минимум версии 11:
- Создайте нужный APK (или APK).
Командная строка
Чтобы построить код из командной строки:
- Задайте местоположение Android SDK одним из следующих двух способов:
- Создайте
packages/apps/Car/libs/aaos-apps-gradle-project/local.properties
а затем установите содержащееся в нем свойствоsdk.dir
. Android Studio может делать это автоматически при открытии проекта. Например, используйтеsdk.dir=/Users/MY-USERNAME/Library/Android/sdk
или же, - Задайте для переменной среды
ANDROID_SDK_ROOT
путь к Android SDK.
- Создайте
- Откройте командную строку или окно оболочки.
- Перейдите в
packages/apps/Car/libs/unbundled-apps-gradle-project
- Выполните следующую команду:
./gradlew assemble
Минимальные требуемые уровни API
Каждое отдельное приложение работает на платформах Android с версией, равной или превышающей его minSdkVersion
. В следующей таблице перечислены минимальные версии API, поддерживаемые каждым приложением:
Приложение | Минимальный уровень API |
---|---|
Календарь | 29 |
Библиотека пользовательского интерфейса автомобиля | 29 |
CompanionDevice | 29 |
номеронабиратель | 31 |
СМИ | 30 |
смс | 30 |
Хост автомобильных приложений Google | 29 |
Интеграция предварительной сборки в образ системы
Изображения Android 13 и более поздних версий
Несвязанный код удален с платформы Android 13. Таким образом, добавление готовых APK-файлов в сборки платформы может потребоваться для:
- Тестирование на соответствие CDD
- Предоставление привилегированных приложений
Это достигается с помощью правила 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"], }
Андроид 12 и ниже
Если версия платформы Android поддерживается приложением (см. таблицу выше), APK можно добавить в этот образ системы. Однако у большинства отдельных приложений есть предыдущие версии исходного кода, включенные в платформы старше Android 13. По умолчанию Soong отдает приоритет исходному коду над предварительно созданным. Поэтому необходимо установить для флага prefer
значение true
внутри правила android_app_import
:
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, }
Приложения, перечисленные в соответствии с разрозненным типом
Приложение | Привилегированный разделенный | Разделенный (Не обязательно на системном разделе) | |
---|---|---|---|
Система подписана | Не подписанный системой | ||
Календарь | Икс | ||
CompanionDevice | Икс | ||
номеронабиратель | Икс | ||
Хост автомобильных приложений Google | Икс | ||
СМИ | Икс | ||
смс | Икс | ||
Раздача обновлений | ОТА | OTA или Play Маркет | OTA или Play Маркет |