Integracja aplikacji z poza pakietem

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:

  1. W Android Studio zaimportuj ten plik kompilacji:

    packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
    
  2. Upewnij się, że 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 poziomu wiersza poleceń:

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

      lub

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

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