На этой странице описано, как интегрировать отдельные приложения. Приложения, включающие Dialer, Media, Car UI Library и SMS, считаются отдельными приложениями. Эти приложения отделены от платформы Android и включают в себя логику получения данных из приложения-компаньона телефона и пользовательский интерфейс на стороне автомобиля, включая настройки для связи и регистрации функций.
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:
Рисунок 1. Версия 11. - Создайте нужные 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/aaos-apps-gradle-project
. - Выполните следующую команду:
./gradlew assemble
Минимально необходимые уровни API
Каждое отдельное приложение работает на платформах Android с версией, равной или большей, чем его minSdkVersion
. В следующей таблице указана минимальная версия API, поддерживаемая каждым приложением:
Приложение | Минимальный уровень API |
---|---|
Календарь | 29 |
Библиотека пользовательского интерфейса автомобиля | 29 |
Сопутствующее устройство | 29 |
номеронабиратель | 31 |
СМИ | 30 |
SMS | 30 |
AOSP-хост | 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"], }
Android 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, }
Приложения перечислены по несвязанному типу
Приложение | Привилегированный без пакетов | Разделенный (Не обязательно в системном разделе) | |
---|---|---|---|
Система подписана | Несистемная подпись | ||
Календарь | Х | ||
КомпаньонУстройство | Х | ||
номеронабиратель | Х | ||
AOSP-хост | Х | ||
СМИ | Х | ||
SMS | Х | ||
Раздача обновлений | ОТА | ОТА или Google Play | ОТА или Google Play |