Integracja aplikacji z poza pakietem

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-master
repo 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:

  1. W Android Studio zaimportuj ten plik kompilacji:

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

    Wersja 11

    Rysunek 1. W Android Studio ustaw Gradle JDK na wersję 11.

Wiersz poleceń

Aby skompilować kod z wiersza poleceń:

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

      lub

    • Ustaw zmienną środowiskową ANDROID_SDK_ROOT z ścieżką do pakietu SDK Androida.

  2. Otwórz wiersz polecenia lub okno powłoki.

  3. Otwórz: packages/apps/Car/libs/aaos-apps-gradle-project.

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