Aplikacje zawierające Dialer, Media, Car UI Library i SMS są uważane za nieopakowane aplikacje (czyli nieopakowane z platformy Android). Te aplikacje obejmują logikę odbierania danych z aplikacji towarzyszącej telefonu i UX po stronie samochodu, w tym ustawienia powiązania i rejestracji funkcji. Pliki APK utworzone na podstawie niespakowanego kodu działają z kilkoma wersjami platformy.
Sprawdź kod
Aby sprawdzić kod niespakowany, uruchom to polecenie:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
repo sync -cq -j4
Więcej informacji o pracy z kodem źródłowym AOSP znajdziesz w artykule Inicjowanie klienta repo.
Kompilowanie kodu
Kod możesz skompilować w Android Studio lub z poziomu wiersza poleceń.
Android Studio
Aby skompilować kod w Android Studio:
W Android Studio zaimportuj ten plik kompilacji:
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
Upewnij się, że JDK Gradle jest ustawiony na wersję 11 lub nowszą:
Rysunek 1. W Android Studio ustaw Gradle JDK na wersję 11.
Wiersz poleceń
Aby skompilować kod z poziomu wiersza poleceń:
Ustaw lokalizację pakietu Android SDK, korzystając z jednej z tych metod:
Utwórz usługę
packages/apps/Car/libs/aaos-apps-gradle-project/local.properties
, a następnie ustaw w niej właściwośćsdk.dir
. Android Studio może to zrobić automatycznie podczas otwierania projektu. Użyj na przykład funkcjisdk.dir=/Users/MY-USERNAME/Library/Android/sdk
.lub
Ustaw zmienną środowiskową
ANDROID_SDK_ROOT
na ścieżkę do pakietu Android SDK.
Otwórz wiersz polecenia lub okno powłoki.
Otwórz:
packages/apps/Car/libs/aaos-apps-gradle-project
.Uruchom to polecenie:
./gradlew assemble
Minimalne wymagane poziomy interfejsu API
Każda aplikacja niespakowana działa na platformach Androida w wersji co najmniej równej z wersjąminSdkVersion
. W tabeli poniżej znajdziesz minimalną wersję interfejsu API obsługiwaną przez poszczególne aplikacje:
Aplikacja | Minimalny poziom interfejsu API |
---|---|
Kalendarz | 29 |
Biblioteka Car UI | 29 |
CompanionDevice | 29 |
Dialer | 31 |
Multimedia | 30 |
Messenger (SMS) | 30 |
Host AOSP | 29 |
Integracja gotowego obrazu z obrazem systemu
Jeśli aplikacja obsługuje wersję platformy Android (patrz tabela w poprzedniej sekcji), możesz dodać plik APK do obrazu systemu. Jednak kroki integracji różnią się w zależności od wersji platformy Android.
Android 13 lub nowszy
Android 13 i nowsze nie zawierają kodu źródłowego niespakowanych aplikacji, ale możesz dołączyć do platformy gotowy plik APK na potrzeby takich zastosowań, jak testowanie zgodności z CDD lub udostępnianie uprzywilejowanych aplikacji. Aby określić plik APK, użyj reguły android_app_import
Soong, jak w tym przykładzie:
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 i starsze
Android 12 i starsze wersje zawierają kod źródłowy niespakowanych aplikacji, ale nadal możesz określić dołączony do nich wstępnie utworzony plik APK. Domyślnie Soong preferuje kod źródłowy nad gotowym, dlatego w regułach android_app_import
musisz ustawić flagę prefer
na true
, jak w tym przykładzie:
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
}
Szczegóły aplikacji nieobjętej pakietem
Aplikacja/rozpowszechnianie | Uprawnienia bez pakietu systemu podpisany |
Uprawnienia niewyodrębnione niesystemowe podpisane |
Nieopakowane nie muszą znajdować się na partycji systemowej |
---|---|---|---|
Aplikacja – Kalendarz | X | ||
Aplikacja –CompanionDeviceSupport | X | ||
Aplikacja – Dialer | X | ||
Aplikacja – host AOSP | X | ||
Aplikacja – Media | X | ||
Aplikacja – Messenger (SMS) | X | ||
Aktualizowanie dystrybucji | Aktualizacje OTA | OTA lub Google Play | OTA lub Google Play |