Aplikacje, które obejmują Dialer, Multimedia, bibliotekę Car UI i SMS-y, są uważane za aplikacje niezależne (czyli nie są powiązane z platformą Android). Takie aplikacje zawierają logikę odbierania danych z aplikacji towarzyszącej na telefonie oraz interfejs użytkownika w samochodzie, w tym ustawienia dotyczące powiązania i rejestracji funkcji. Pliki APK utworzone na podstawie niezależnego kodu działają w kilku wersjach platformy.
Sprawdzanie kodu
Aby sprawdzić niezależny kod, uruchom to polecenie:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-masterrepo 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 w wierszu 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.gradleSprawdź, czy Gradle JDK jest ustawiony na wersję 11 lub nowszą:
Rysunek 1. Ustawienie Gradle JDK na wersję 11 w Android Studio.
Wiersz poleceń
Aby skompilować kod w wierszu poleceń:
Ustaw lokalizację Android SDK, korzystając z jednej z tych metod:
Utwórz plik
packages/apps/Car/libs/aaos-apps-gradle-project/local.properties, a następnie ustaw w nim właściwośćsdk.dir. Android Studio może to zrobić automatycznie podczas otwierania projektu. Na przykład użyjsdk.dir=/Users/MY-USERNAME/Library/Android/sdk.lub
Ustaw zmienną środowiskową
ANDROID_SDK_ROOTna ścieżkę do Android SDK.
Otwórz wiersz poleceń lub okno powłoki.
Przejdź do
packages/apps/Car/libs/aaos-apps-gradle-project.Uruchom to polecenie:
./gradlew assemble
Minimalne wymagane poziomy interfejsu API
Każda niezależna aplikacja działa na platformach Androida w wersji równej lub nowszej
niż jej
minSdkVersion. W tabeli poniżej znajdziesz minimalną wersję interfejsu API obsługiwaną przez każdą aplikację:
| Aplikacja | Minimalny poziom interfejsu API |
|---|---|
| Kalendarz | 29 |
| Biblioteka Car UI | 29 |
| CompanionDevice | 29 |
| Dialer | 31 |
| Multimedia | 30 |
| Messenger (SMS) | 30 |
| AOSP Host | 29 |
| Blokada aplikacji | 34 |
Integrowanie gotowej aplikacji z obrazem systemu
Jeśli wersja platformy Androida jest obsługiwana przez aplikację (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 Androida.
Android 13 i nowsze
Android 13 i nowsze nie zawierają kodu źródłowego niezależnych aplikacji, ale możesz dołączyć gotowy plik APK do kompilacji platformy na potrzeby takich przypadków użycia jak testowanie zgodności z CDD czy udostępnianie aplikacji z uprawnieniami. Aby określić plik APK, użyj reguły Soong
android_app_import, jak pokazano 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 zawierają kod źródłowy niezależnych aplikacji, ale nadal możesz określić gotowy plik APK do dołączenia. Domyślnie Soong przyznaje pierwszeństwo kodowi źródłowemu przed gotowym plikiem, dlatego musisz ustawić flagę prefer na true w regule android_app_import, jak pokazano 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 niezależnej aplikacji
| Aplikacja | Niezależna aplikacja z uprawnieniami system podpisana |
Niezależna aplikacja z uprawnieniami niepodpisana przez system |
Niezależna aplikacja nie musi znajdować się na partycji systemowej |
|---|---|---|---|
| Dystrybucja aktualizacji | OTA | OTA lub Google Play | OTA lub Google Play |
| AOSP Host | X | ||
| Kalendarz | X | ||
| CompanionDeviceSupport | X | ||
| Centrum sterowania (wielu wyświetlaczy) | X | ||
| Dialer | X | ||
| Multimedia | X | ||
| Messenger (SMS) | X | ||
| Blokada aplikacji wrażliwych | X |