Obiekt interfejsu dostawcy

W tym dokumencie opisano projekt obiektu interfejsu dostawcy (obiekt VINTF), który agreguje istotne informacje o urządzeniu i udostępnia te informacje za pośrednictwem interfejsu API umożliwiającego zapytania .

Projektowanie obiektów Vint

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

Rysunek 1. Manifesty, macierze zgodności i zbierane informacje w czasie wykonywania

Projektowanie obiektów VinTF zapewnia następujące elementy dla komponentów urządzenia i frameworka:

Dla urządzenia Dla ram
  • Definiuje schemat składnika statycznego ( plik manifestu urządzenia ).
  • Dodaje obsługę czasu kompilacji w celu zdefiniowania pliku manifestu urządzenia dla danego urządzenia.
  • Definiuje interfejs API , na który można przesyłać zapytania, w czasie wykonywania, który pobiera plik manifestu urządzenia (wraz z innymi informacjami zbieranymi w czasie wykonywania) i umieszcza je w wyniku zapytania.
  • Definiuje schemat składnika statycznego ( plik manifestu struktury ).
  • Definiuje interfejs API , którego można użyć do zapytań w czasie wykonywania, który pobiera plik manifestu struktury i pakuje go w wynik zapytania.

Obiekt VINTF musi być niezawodny i zapewniać takie same pełne informacje niezależnie od tego, kiedy obiekt jest żądany (zobacz Zastrzeżenia ).

Manifesty i matryce

Począwszy od systemu Android 8.0 interfejs API środowiska uruchomieniowego wysyła zapytanie o zawartość urządzenia i wysyła te informacje do serwera aktualizacji Over-the-Air (OTA) i innych zainteresowanych stron (takich jak CTS DeviceInfo ). Niektóre informacje są pobierane w czasie wykonywania, a niektóre są zdefiniowane statycznie.

  • Manifest urządzenia opisuje statyczny składnik tego, co urządzenie może dostarczyć do struktury.
  • Macierz zgodności frameworka opisuje, czego platforma Android oczekuje od danego urządzenia. Macierz jest statyczną jednostką, której skład jest ustalany ręcznie podczas tworzenia kolejnej wersji frameworka Android.
  • Manifest struktury opisuje usługi wysokiego poziomu, które platforma może zapewnić urządzeniu.
  • Macierz zgodności urządzeń opisuje usługi, jakich wymaga obraz dostawcy w ramach struktury. Jego skład jest ustalany ręcznie podczas opracowywania urządzenia.

Te dwie pary manifestów i macierzy muszą zostać uzgodnione w czasie OTA, aby upewnić się, że urządzenie może otrzymywać aktualizacje struktury zgodne z możliwościami urządzenia. Ogólnie rzecz biorąc, manifest opisuje, co jest dostarczane, a macierz zgodności opisuje, co jest wymagane.

Ta sekcja zawiera następujące szczegóły dotyczące manifestów i macierzy:

  • Manifesty definiują manifest urządzenia, manifest struktury i schemat pliku manifestu.
  • Macierze zgodności definiuje schemat macierzy zgodności.
  • Cykl życia FCM zawiera szczegółowe informacje o tym, jak warstwy HAL HIDL są przestarzałe i usuwane oraz jak pliki FCM są modyfikowane w celu odzwierciedlenia stanu wersji warstwy HAL.
  • DM Development opisuje, w jaki sposób dostawcy mogą definiować i deklarować docelową wersję FCM w manifeście urządzenia dla nowych urządzeń lub wdrażać nowe wersje HAL i zwiększać docelową wersję FCM podczas uaktualniania obrazu dostawcy dla starych urządzeń.
  • Reguły dopasowania określają zasady udanego dopasowania między macierzą zgodności a manifestem.