Android 14 przygotowuje się do jeszcze lepszego doświadczenia użytkowników zewnętrznych sklepów z aplikacjami dzięki nowym interfejsom API.
Google Play jest zdecydowanie najpopularniejszym sklepem z aplikacjami wśród użytkowników Androida, ale niektórzy mogą twierdzić, że nie zdobył on najwyższego miejsca uczciwie. Firma Google została zbadana przez agencje regulacyjne i organy ustawodawcze na całym świecie z powodu jak utrzymuje dominację w sklepie z aplikacjami i nic nie wskazuje na to, by ta presja kiedykolwiek się rozluźniła Wkrótce. Być może dlatego Google podejmuje inicjatywę wprowadzenia nowych funkcji Androida 14 które poprawiają wrażenia użytkowników zewnętrznych sklepów z aplikacjami.
Większość zewnętrznych sklepów z aplikacjami na Androida tak naprawdę nie konkuruje z Google Play i to nie tylko ze względu na wybór aplikacji. Podczas gdy własne, preinstalowane sklepy z aplikacjami zawsze miały możliwość dokonywania automatycznych aktualizacji aplikacji, sklepy z aplikacjami innych firm dopiero niedawno były w stanie przeprowadzać aktualizacje nienadzorowane. Google dodał
API w Androidzie 12 który pozwala sklepom z aplikacjami innych firm aktualizować aplikacje bez konieczności działania użytkownika, zmniejszając tarcie korzystanie z zewnętrznego sklepu z aplikacjami.Jednak to nadal pozostawiało sklepy z aplikacjami innych firm w bardzo niekorzystnej sytuacji, jeśli chodzi o funkcjonalność, ponieważ nie mogły łatwo wiedzieć Kiedy byłoby bezpiecznie przeprowadzić automatyczną aktualizację. Właśnie to Google próbuje rozwiązać w systemie Android 14 za pomocą nowego interfejsu API, który umożliwia sklepom z aplikacjami innych firm przeprowadzanie „delikatnych aktualizacji”.
Delikatne aktualizacje
Android 14 dodał nowy interfejs API, który pozwala zewnętrznym sklepom z aplikacjami sprawdzić, czy spełnione są określone warunki, zanim przystąpią do automatycznej aktualizacji aplikacji. The Instalator pakietów. Interfejs API InstallConstraints „może być używany przez sklepy z aplikacjami do dostarczania automatycznych aktualizacji bez zakłócania doświadczenia użytkownika (określane jako łagodna aktualizacja) - na przykład sklep z aplikacjami może wstrzymać aktualizacje, gdy stwierdzi, że aplikacja do aktualizacji wchodzi w interakcję z użytkownik."
Ten nowy interfejs API umożliwia zewnętrznym sklepom z aplikacjami sprawdzenie, czy aplikacja, którą przygotowują do aktualizacji, ma aktywną usługę pierwszego planu (isRequireAppNotForeground), wchodzi w jakąś interakcję z użytkownikiem (isRequireAppNotInteracting) lub jest na ekranie (isRequireAppNotTopVisible). Zewnętrzne sklepy z aplikacjami mogą również sprawdzić, czy urządzenie jest w trybie drzemki (isRequireDeviceIdle) lub w trakcie rozmowy telefonicznej (isRequireNotInCall).
Podczas gdy API pozwala określić, jakie warunki należy sprawdzić, dokumentacja zaleca użycie wstępnie ustawionych ograniczeń, ponieważ „system wie najlepiej jak to zrobić”. Jest to logiczne, biorąc pod uwagę, że Google miał dużo czasu, aby opracować najlepszy sposób obsługi automatycznych aktualizacji we własnym sklepie z aplikacjami. Korzystanie z ustawienia wstępnego jest również korzystne, jak zauważono w dokumentacji, ponieważ dokładność i wydajność delikatnych aktualizacji może zostać poprawiona w przyszłych wersjach, jeśli Google doda więcej ograniczeń do interfejsu API.
Każdy warunek, który spełnia PackageInstaller. InstallConstaints API umożliwia sprawdzanie, które można już sprawdzić za pomocą istniejących interfejsów API, ale obsługa tych kontroli przez system jest znacznie łatwiejsza i mniej inwazyjna. Na przykład zewnętrzne sklepy z aplikacjami, które chcą sprawdzić, czy aplikacja, którą aktualizują, jest aktywnie używana przez użytkownika musiałby obecnie korzystać z interfejsu API, takiego jak UsageStats lub AccessibilityService, które są wrażliwe uprawnienia. Jeśli jednak użyją tego nowego interfejsu API Androida 14, nie będą potrzebować tych uprawnień do wykonywania swojej pracy.
Zaktualizuj własność
Włączenie „delikatnych aktualizacji” to nie jedyne ulepszenie Androida 14 dla zewnętrznych sklepów z aplikacjami. Dostępny jest również nowy mechanizm „właściciela aktualizacji”, który pozwala zewnętrznym sklepom z aplikacjami stać się wyłącznym źródłem przyszłych automatycznych aktualizacji aplikacji, które po raz pierwszy zainstalowali. Oznacza to, że jeśli korzystasz ze sklepu z aplikacjami innej firmy, ponieważ aplikacje dostępne za jego pośrednictwem są sprawdzane przez społeczności, na przykład niesprawdzona aktualizacja, która jest dostępna w innych sklepach z aplikacjami, nie zostanie automatycznie przekazana Twoje urządzenie.
W tej chwili, gdy instalujesz aplikację za pośrednictwem zewnętrznego sklepu z aplikacjami, nic nie stoi na przeszkodzie, aby własny sklep z aplikacjami aktualizował tę aplikację. Podczas gdy interfejs API nienadzorowanych aktualizacji systemu Android 12 pozwala tylko zewnętrznym sklepom z aplikacjami dyskretnie aktualizować aplikacje, które zostały przez nich zainstalowane jako pierwsze, nie ma to wpływu na własne sklepy z aplikacjami, ponieważ posiadają uprzywilejowane INSTALL_PACKAGES pozwolenie.
Sklepy z aplikacjami innych firm na Androidzie 14 mogą korzystać z nowego setRequestUpdateOwnership metoda w Instalator pakietów. Parametry sesji, aby jednak poinformować system, że rości sobie prawa własności do aktualizacji aplikacji, którą zamierzają zainstalować. Po włączeniu wymuszania własności aktualizacji dla aplikacji wszystkie inne sklepy z aplikacjami — nawet te z uprawnieniem INSTALL_PACKAGES — wymagają działania ze strony użytkownika w celu zaktualizowania aplikacji. Aktualizuj własność można włączyć tylko podczas początkowej instalacji aplikacji, a więc innego sklepu z aplikacjami nie będzie w stanie przejąć aktualizacji, chyba że dana aplikacja zostanie odinstalowana i ponownie zainstalowana sklep. Sklepy z aplikacjami mogą sprawdzić, czy dla aplikacji jest włączona własność aktualizacji, a jeśli tak, która aplikacja jest właścicielem aktualizacji, za pośrednictwem new InstallSourceInfo#getUpdateOwnerPackageName() API.
Sklepy z aplikacjami innych firm muszą posiadać nowe ENFORCE_UPDATE_OWNERSHIP uprawnienia do korzystania z interfejsu API egzekwowania własności aktualizacji, ale ponieważ to uprawnienie ma poziom ochrony „normalny”, zostanie przyznane przez system w czasie instalacji. Jednak dopiero się okaże, czy Google Play przeprowadzi kontrolę wykorzystania tego pozwolenia/API.
Zainstaluj wstępne zatwierdzenie
Ostatnim nowym interfejsem API systemu Android 14, który chciałem podkreślić, jest Instalator pakietów. Session#requestUserWstępne zatwierdzenie. Ten interfejs API umożliwia zewnętrznym sklepom z aplikacjami żądanie zatwierdzenia użytkownika przed zatwierdzeniem sesji instalacji. Wyobrażam sobie, że będzie to przydatne w przypadku sklepów z aplikacjami innych firm, które celowo chcą monitować użytkownika przed aktualizacją aplikacji w tle.
Załóżmy na przykład, że zorientowany na bezpieczeństwo sklep z aplikacjami chce powiadomić swojego użytkownika, kiedy aktualizacja aplikacji dodaje nowe uprawnienia; zamiast automatycznie aktualizować tę aplikację, a tym samym automatycznie udzielać tego pozwolenia, jeśli jej poziom ochrony jest „normalny”, sklep z aplikacjami może monitować użytkownika przed wykonaniem aktualizacji. Obecnie, jeśli użytkownik nie jest obecny podczas automatycznej aktualizacji, zewnętrzny sklep z aplikacjami musiałby śledzić sesję instalacyjną i monitować go później. Ten interfejs API upraszcza ten proces.
Android 14 wprowadzi mnóstwo nowych funkcji i interfejsów API, gdy zostanie udostępniony publicznie jeszcze w tym roku. Chociaż te nowe interfejsy API nie są ukryte, jak niektóre inne zmiany, które zauważyliśmy, nie ma gwarancji, że te interfejsy API będą dostępne dla programistów w wersji stabilnej. To dlatego, że zamrożenie interfejsu API nie nastąpi, dopóki Android 14 nie osiągnie „stabilności platformy” w wersji Beta 3 w czerwcu 2023 r., a obecnie jesteśmy tylko na DP1. Będziemy śledzić przyszłe wydania Androida 14 DP i Beta, aby zobaczyć, czy te interfejsy API będą się utrzymywać lub czy zostaną dodane nowe interfejsy API odpowiednie dla zewnętrznych sklepów z aplikacjami.