Obiekt interfejsu dostawcy

Dokument ten opisuje projekt obiektu interfejsu dostawcy (obiektu VINTF), który agreguje istotne informacje o urządzeniu i udostępnia je za pomocą interfejsu API umożliwiającego wysyłanie zapytań.

Projekt obiektu VINTF

Obiekt VINTF zbiera niektóre potrzebne informacje bezpośrednio z urządzenia. Inne aspekty, takie jak pliki manifestu, są opisywane statycznie w formacie XML.

Rysunek 1. pliki manifestu, tabele zgodności i informacje zbierane w czasie wykonywania;

Projekt obiektu VINTF zapewnia te funkcje dla komponentów urządzenia i ramy:

Urządzenie Platforma
  • Określa schemat komponentu statycznego (plik manifestu urządzenia).
  • Dodaje obsługę definiowania pliku manifestu urządzenia w czasie kompilacji dla danego urządzenia.
  • Określa możliwość zapytań API w czasie wykonywania, która pobiera plik manifestu urządzenia (wraz z innymi informacjami możliwymi do zebrania w czasie wykonywania) i opakowuje je w wynik zapytania.
  • Określa schemat dla komponentu statycznego (plik manifestu frameworka).
  • Definiuje interfejs API, który można zapytać w czasie wykonywania, aby pobrać plik manifestu frameworku i zapakować go do wyniku zapytania.

Obiekt VINTF musi być wiarygodny i zawierać pełne informacje niezależnie od tego, kiedy żąda się obiektu (patrz Zastrzeżenia).

Pliki manifestu i macierz

Od Androida 8.0 interfejs API w czasie działania sprawdza, co znajduje się na urządzeniu, i przesyła te informacje do serwera aktualizacji Over-the-Air (OTA) oraz innych zainteresowanych stron (np. CTSDeviceInfo). Niektóre informacje są pobierane w czasie działania, a niektóre są zdefiniowane statycznie.

  • Plik manifestu urządzenia opisuje statyczny komponent tego, co urządzenie może udostępnić platformie.
  • Matryce zgodności frameworka opisują, czego framework Androida oczekuje od danego urządzenia. Matryca to element statyczny, którego skład jest określany ręcznie podczas tworzenia kolejnej wersji Androida.
  • Plik manifestu frameworku opisuje ogólne usługi, które framework może udostępniać urządzeniu.
  • Macierz zgodności urządzeń opisuje usługi, których wymaga obraz dostawcy w ramach platformy. Jego skład jest określany ręcznie podczas tworzenia urządzenia.

Te 2 pary plików manifestów i macierzy muszą być uzgodnione w czasie aktualizacji OTA, aby urządzenie mogło otrzymywać aktualizacje frameworku zgodne z jego możliwościami. Ogólnie rzecz biorąc, plik manifestu opisuje, co jest dostarczane, a macierz zgodności opisuje, co jest wymagane.

Ta sekcja zawiera te informacje o pliku manifestu i pliku matrycy:

  • Pliki manifestu definiują manifest urządzenia, manifest platformy i schemat pliku manifestu.
  • Zgodność Macierze definiuje schemat macierzy zgodności.
  • Cykl życia FCM zawiera informacje o tym, jak wycofywane i usuwane są interfejsy HAL HIDL oraz jak modyfikowane są pliki FCM, aby odzwierciedlały stan wersji interfejsu HAL.
  • W artykule Tworzenie DM opisano, jak dostawcy mogą definiować i deklarować docelową wersję FCM w pliku manifestu urządzenia na potrzeby nowych urządzeń lub implementować nowe wersje HAL i zwiększać wartość docelowej wersji FCM podczas aktualizowania obrazu dostawcy na potrzeby starszych urządzeń.
  • Reguły dopasowywania określają reguły dopasowywania matrycy zgodności do pliku manifestu.