Aplikacje zawierające dialer, multimedia, bibliotekę interfejsu użytkownika samochodu i SMS-y są uważane za aplikacje odłączone (czyli odłączone od platformy Android). Takie aplikacje zawierają logikę odbierania danych z aplikacji towarzyszącej na telefonie oraz interfejs użytkownika w samochodzie, w tym ustawienia powiązania i rejestracji funkcji. Pliki APK utworzone z niepowiązanego kodu działają w kilku wersjach platformy.
Sprawdź kod
Aby sprawdzić rozdzielony 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.
Tworzenie kodu
Kod możesz utworzyć za pomocą Androida Studio lub 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.gradleSprawdź, czy pakiet 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 wiersza poleceń:
Ustaw lokalizację pakietu Android SDK, korzystając z jednej z tych metod:
Utwórz
packages/apps/Car/libs/aaos-apps-gradle-project/local.properties, a następnie ustaw właściwośćsdk.dir, którą zawiera. Android Studio może to zrobić automatycznie podczas otwierania projektu. Użyj na przykład elementusdk.dir=/Users/MY-USERNAME/Library/Android/sdk.lub
Ustaw zmienną środowiskową
ANDROID_SDK_ROOTz ścieżką do pakietu SDK Androida.
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 działa na platformach Androida w wersji równej lub wyższej niż jej 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 |
Integrowanie gotowego obrazu z obrazem systemu
Jeśli wersja platformy Android jest obsługiwana przez aplikację (patrz tabela w poprzedniej sekcji), możesz dodać plik APK do obrazu systemu. Kroki integracji różnią się jednak w zależności od wersji platformy Android.
Android 13 lub nowszy
Android 13 i nowsze wersje nie zawierają kodu źródłowego aplikacji niepowiązanych, ale możesz dołączyć wstępnie skompilowany plik APK do kompilacji platformy na potrzeby przypadków użycia, takich jak testy 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 wersje zawierają kod źródłowy aplikacji niepowiązanych, ale nadal możesz określić wstępnie skompilowany plik APK do uwzględnienia. Domyślnie Soong nadaje priorytet kodowi źródłowemu przed wstępnie skompilowanym, dlatego w regule android_app_import musisz ustawić flagę prefer na true, jak pokazano w przykładzie poniżej:
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 niepowiązanej
| Aplikacja | Uprzywilejowane, niepowiązane systemowe, podpisane |
Uprzywilejowane, niepowiązane nie systemowe, podpisane |
Aplikacje nie muszą znajdować się na partycji systemowej |
|---|---|---|---|
| Zaktualizuj dystrybucję | OTA | OTA lub Google Play | OTA lub Google Play |
| Host AOSP | X | ||
| Kalendarz | X | ||
| CompanionDeviceSupport | X | ||
| Centrum sterowania (wielomonitorowe) | X | ||
| Dialer | X | ||
| Media | X | ||
| Messenger (SMS) | X | ||
| Blokada aplikacji zawierających treści o charakterze kontrowersyjnym | X |