Wskazówki dotyczące jakości aplikacji na Androida XR

Definicje poziomów zgodności

Aby mieć pewność, że Twoja aplikacja zapewnia użytkownikom wygodę korzystania z urządzeń z Androidem XR, sprawdź te listy kontrolne i testy zgodności.

Listy kontrolne i testy określają kompleksowy zestaw wymagań dotyczących jakości w przypadku większości typów aplikacji na Androida.

Aplikacja mobilna zgodna z Androidem XR

Zgodna z Androidem XR aplikacja mobilna to istniejąca aplikacja mobilna, która nie została zmodyfikowana w celu dostosowania do dużego ekranu lub innego formatu. Ten typ aplikacji jest automatycznie zgodny z Androidem XR, o ile nie wymaga funkcji, które nie są obsługiwane, takich jak telefonia. Użytkownicy mogą wykonywać kluczowe czynności, ale wrażenia z korzystania z aplikacji są mniej płynne niż w przypadku różnicowanej aplikacji na Androida XR.

Ten typ aplikacji działa w trybie pełnoekranowym na panelu w środowisku użytkownika, ale jego układ może nie być idealny w przypadku większych rozmiarów. Aplikacje, które w manifeście podają rozmiary kompaktowe, będą się odpowiednio wyświetlać. Aplikacja nie działa w trybie zgodności, dlatego nie jest wyświetlana w ramce. Aplikacja obsługuje podstawowe metody wprowadzania danych dostępne w Androidzie XR (śledzenie oczu + gesty lub rzut dłonią) oraz zapewnia podstawową obsługę zewnętrznych urządzeń wejściowych, w tym klawiatury, myszy, trackpada i kontrolerów gier. Może, ale nie musi być możliwe do zmiany rozmiaru.

Aplikacje mobilne zgodne z Androidem XR są automatycznie włączone i dostępne w Sklepie Google Play. Aplikacji, która nie jest zgodna z wymaganiami dotyczącymi funkcji, nie można zainstalować ze Sklepu Play.

Aplikacja na duży ekran zgodna z Androidem XR

Zgodna z Androidem XR aplikacja na duży ekran to aplikacja na duży ekran poziomu 1 lub poziomu 2, która zawiera optymalizacje układu dla wszystkich rozmiarów ekranów i konfiguracji urządzenia (np. dużych ekranów oprócz urządzeń mobilnych) oraz rozszerzoną obsługę zewnętrznych urządzeń wejściowych i wielozadaniowość. Aplikacje na duże ekrany zgodne z Androidem XR są automatycznie włączane i dostępne w Sklepie Play.

Aplikacja na duży ekran zgodna z Androidem XR działa na pełnym ekranie na panelu przestrzennym w środowisku użytkownika w rozdzielczości 1024 × 720 dp. Użytkownicy będą mogli naturalnie wchodzić w interakcję z aplikacją za pomocą oczu i rąk, ale poza tym aplikacja będzie bardzo podobna do aplikacji na duży ekran.

Aplikacja z Androidem XR

Aplikacja na Androida XR oferuje użytkownikom wrażenia wyraźnie zaprojektowane z myślą o XR i wdraża funkcje dostępne tylko w XR. Możesz w pełni wykorzystać możliwości Androida XR i różnicować wrażenia w aplikacji, dodając do niej funkcje XR (np. panele przestrzenne) lub treści XR (np. filmy 3D), a także tworząc aplikacje z użyciem pakietu Android Jetpack XR SDK, Unity lub OpenXR.

Pakiet Jetpack XR SDK umożliwia udostępnianie funkcji związanych z XR, takich jak panele przestrzenne, środowiska, modele 3D, dźwięk przestrzenny, filmy 3D/przestrzenne, zdjęcia, lokalizatory i inne elementy interfejsu przestrzennego, np. orbitery.

Aby aplikacja na Androida mogła być uznana za zróżnicowaną aplikację XR, musi zawierać co najmniej 1 specyficzną funkcję lub element treści XR. W przypadku niektórych przypadków może być wymagane więcej funkcji i zawartości. Więcej informacji na ten temat znajdziesz poniżej.

Wszystkie aplikacje utworzone za pomocą Unity lub OpenXR są uznawane za zróżnicowane. Aplikacje utworzone w Unity lub OpenXR muszą spełniać wskaźniki jakości i minimalne wymagania, aby mogły być uznane za aplikacje z Androida XR. Na przykład aplikacja z niską częstotliwością klatek, awariami lub innymi negatywnymi wrażeniami użytkownika nie kwalifikuje się do tej kategorii.

Lista kontrolna zgodności z Androidem XR

Te listy kontrolne zgodności określają kryteria, które pomogą Ci ocenić poziom obsługi XR przez Twoją aplikację. Poziomy pomocy:

Aplikacja mobilna zgodna z Androidem XR

Aplikacja musi spełniać wymagania dotyczące podstawowej jakości aplikacji.

Aplikacja powinna też być zgodna ze wszystkimi obowiązującymi wytycznymi dotyczącymi dostępności w przypadku innych formatów, np. telefonów i tabletów (np. kontrast kolorów).

Aplikacja na duży ekran zgodna z Androidem XR

Każda aplikacja na duży ekran poziomu 1 lub poziomu 2 jest uznawana za aplikację na duży ekran zgodną z Androidem XR. Wskazówki dotyczące jakości aplikacji na duży ekran zawierają uporządkowane wskazówki dotyczące zapewnienia doskonałych wrażeń na Androidzie XR, ale nie uwzględniają takich kwestii jak obracanie czy składanie/rozkładanie urządzenia. Podobnie Android XR nie obsługuje rysika.

Aplikacja z Androida XR

Aplikacje z Androidem XR są bardzo zróżnicowane, dlatego niektóre z wymienionych funkcji są dostępne tylko w przypadku określonych typów aplikacji. Wybierz funkcje odpowiednie dla Twojej aplikacji. Aplikacje na Androida muszą też być zgodne ze wskazówkami dotyczącymi dużych ekranów i urządzeń mobilnych z Androidem. Zapoznaj się z wymaganiami odpowiednimi dla Twojej aplikacji (niektóre z nich mogą stać się potencjalnymi aktualizacjami zasad).

Typ aplikacji lub przypadek użycia

Kategoria

Obszar

Wskazówki

Ogólne wymagania podstawowe (Android i OpenXR)

Prywatność i bezpieczeństwo

Logowanie na konto (UX podczas pierwszego logowania)

Jeśli Twoja aplikacja korzysta z systemu logowania, po pomyślnym uwierzytelnieniu wyraźnie wyświetl dane logowania użytkownika (np. nazwę użytkownika). W ten sposób budujesz zaufanie, potwierdzając aktywne konto. Uwzględnij też łatwo dostępne menu lub stronę ustawień, która umożliwia użytkownikom w dowolnym momencie wyświetlanie informacji o koncie i zarządzanie nimi.

Bezpieczeństwo i wygoda

Strobing

Aby zapewnić bezpieczeństwo i dobre samopoczucie wszystkich użytkowników, musisz zminimalizować ryzyko wystąpienia efektów stroboskopowych w swojej aplikacji.

Unikaj celowego stosowania elementów, które mogą powodować migotanie.

1. Jeśli efekt stroboskopowy jest absolutnie niezbędny, upewnij się, że częstotliwość migotania jest bardzo niska (poniżej 3 mrugnięć na sekundę), a migająca część jest mała i subtelna.

2. Rozważ udostępnienie możliwości wyłączenia tej funkcji w ustawieniach lub ustawieniach preferencji.

3. Wyświetl wyraźne ostrzeżenie przed rozpoczęciem stroboskopowego efektu.

Unikanie choroby lokomocyjnej

Aby uniknąć wywoływania choroby lokomocyjnej u użytkowników:

  • Postaw na komfort oglądania, unikając gwałtownych ruchów kamery. Zachowaj spójny punkt odniesienia, aby nie dezorientować użytkownika.
  • Nie obracaj kamery w czasie. Jeśli kierunek kamery się zmieni, kamera przełączy się na nową orientację.

Wejście

Rozmiar docelowych obszarów interakcji

Docelowe elementy interaktywne mają minimalny i zalecany rozmiar, który zależy od zamierzonej odległości interakcji:

  • Minimalny rozmiar: odległość w metrach x 0,868 x 48 = M
  • Zalecany rozmiar: odległość w metrach × 0,868 × 56 = M lub większy.

Jeśli używasz pakietu Jetpack XR SDK, zalecamy minimalny rozmiar 48 x 48 dp, a zalecany rozmiar obszaru dotykowego to 56 x 56 dp lub większy.

Funkcjonalność techniczna XR

Ręka

Aplikacja obsługuje naturalne wprowadzanie danych za pomocą dłoni jako podstawową metodę interakcji w Androidzie XR, w tym wymagania dotyczące rzutowania promieniowego dłoni i obsługę gestów dla prymitywów wejściowych.

Aplikacja jest grywalna lub w inny sposób użyteczna bez kontrolerów, ale można ją wzbogacić, używając ich.

Boundary (dawniej Guardian)

Jeśli aplikacja wymaga, aby użytkownicy przemieszczali się z punktu początkowego (po uruchomieniu aplikacji) w przestrzeni fizycznej, prosi o przejście przez aplikację lub deklaruje PROPERTY_ACTIVITY_XR_BOUNDARY_TYPE_RECOMMENDED = XR_BOUNDARY_TYPE_LARGE w pliku manifestu.

Jeśli Twoja aplikacja korzysta z funkcji XR_BOUNDARY_TYPE_LARGE, można ją w pełni uruchomić bez wyświetlania granicy (w promieniu 2 m; pamiętaj, że przepuszczanie granicy zaczyna się w promieniu 1,5 m).

Wydajność

Renderowanie

Aplikacja renderuje każdą klatkę w czasie od 11,1 ms (90 Hz) do 13,8 ms (72 Hz).

Rozdzielczość

Aplikacja ma rozdzielczość co najmniej 2364 x 2880 na oko.

Czas uruchomienia aplikacji

Użytkownicy chcą jak najszybciej wchodzić w interakcje z Twoją aplikacją lub grą. Definicja dobrego czasu uruchamiania lub wczytywania zależy od kategorii, ale ogólnie zalecamy minimalizowanie czasu między uruchomieniem a pierwszą interakcją.

Poniżej znajdziesz docelową długość:

  • Średni czas uruchomienia „na zimno”: poniżej 2 sekund
  • Średni czas uruchomienia „na ciepło”: poniżej 1 sekundy.

Więcej informacji znajdziesz w artykule Czas uruchamiania aplikacji.

Błędy ANR

Aplikacja nie ulega awarii ani nie blokuje wątku interfejsu, powodując błędy ANR („Android nie odpowiada”).

Aplikacja ma mniej niż 1 błąd ANR w 99,5% sesji dziennych.

Twoja aplikacja korzysta z raportu Google Play przed opublikowaniem, aby wykrywać potencjalne problemy ze stabilnością. Po wdrożeniu sprawdź stronę Android Vitals w Konsoli Play.

Częstotliwość awarii

Nie zużywaj nadmiernych zasobów systemowych, które wpływają na działanie reszty systemu i innych aplikacji. Utrzymaj częstotliwość awarii na poziomie około 1%.

Podstawowe wymagania dotyczące aplikacji na Androida (zróżnicowane w przypadku XR)

Wizualizacja i wrażenia użytkownika

Podstawowe XR

Twoja aplikacja implementuje co najmniej 1 funkcję lub element treści związanych z XR, aby zwiększyć komfort użytkownika. Może to być orbiter, co najmniej 1 panel przestrzenny, środowisko lub obiekt 3D.

Panele przestrzenne

Podczas wielozadaniowości (czyli wykonywania 2 lub więcej zadań jednocześnie) za pomocą paneli twórz osobne panele przestrzenne. Możesz na przykład utworzyć osobne panele przestrzenne dla okien czatu i list.

Środowiska

Jasność może rozpraszać i męczyć podczas wyświetlania środowiska wirtualnego. Aplikacja ma bezpieczny zakres tonalny bez skoków jasności, które mogłyby kolidować z interfejsem lub powodować zmęczenie użytkownika. Interfejs jest czytelny we wszystkich kierunkach, zwłaszcza w środkowym pasie poziomym, na który użytkownik kieruje wzrok. (szczegółowe wytyczne zostaną podane w przyszłości)

Przechodzenie między obszarem domowym (HSM) a pełnym obszarem (FSM)

Gdy przenosisz użytkowników do pełnego ekranu, Twoja aplikacja ma punkt wejścia, który umożliwia im szybkie przełączanie się między ekranem głównym a pełnym ekranem. Użyj ikony lub etykiety i umieść przycisk w łatwo dostępnym miejscu.

Panele przestrzenne

Umieść menu, komponenty i elementy sterujące w dedykowanym panelu lub oknie. Nie uwzględniaj tych komponentów w panelu głównym.

Menu / przewijanie listy

Aplikacja aktualizuje interakcje związane z przewijaniem (zwłaszcza w karuzeli lub listach pionowych), aby nadać im dynamikę lub płynność. Na przykład przewijanie obejmuje dynamikę, co powoduje, że treści w karuzeli i listach przez chwilę poruszają się po interakcji z użytkownikiem, zanim stopniowo się zatrzymają (zamiast zatrzymywania się dokładnie w momencie, gdy użytkownik przestanie wprowadzać dane).

Funkcje dotyczące filmów i multimediów

Wizualizacja i wrażenia użytkownika

Spatial Player (tylko Android)

Aplikacja umożliwia użytkownikom oglądanie treści w trybie Full Space.

Usuń elementy sterujące odtwarzaniem z nakładki na treści i umieść je w dedykowanym panelu lub oknie.

W przypadku paneli z odtwarzaniem filmów ustaw format obrazu, aby usunąć efekt letterbox.

Dźwięk przestrzenny

Zastanów się nad obsługą dźwięku przestrzennego, w tym dźwięku ograniczonego do panelu lub dźwięku przestrzennego.

Jednoczesne oglądanie filmów

Jeśli aplikacja obsługuje kilka strumieni wideo jednocześnie, w interfejsie wyświetlane są te informacje:

  • które strumienie wideo zapewniają wyjście audio;
  • Jakie elementy sterujące odtwarzaniem wpływają na które strumienie wideo

Środowisko

Podczas odtwarzania treści w trybie Full Space użytkownicy mogą przyciemnić przepuszczany obraz lub wybrać wirtualne środowisko.