Integracja aplikacji z poza pakietem

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-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 w wierszu poleceń.

Android Studio

Aby skompilować kod w Android Studio:

  1. W Android Studio zaimportuj ten plik kompilacji:

    packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
    
  2. Sprawdź, czy Gradle JDK jest ustawiony na wersję 11 lub nowszą:

    Wersja 11

    Rysunek 1. Ustawienie Gradle JDK na wersję 11 w Android Studio.

Wiersz poleceń

Aby skompilować kod w wierszu poleceń:

  1. 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żyj sdk.dir=/Users/MY-USERNAME/Library/Android/sdk.

      lub

    • Ustaw zmienną środowiskową ANDROID_SDK_ROOT na ścieżkę do Android SDK.

  2. Otwórz wiersz poleceń lub okno powłoki.

  3. Przejdź do packages/apps/Car/libs/aaos-apps-gradle-project.

  4. 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