Wskazówki dotyczące ogólnej jakości aplikacji

Aby stworzyć aplikację o wysokiej jakości, postępuj zgodnie z wytycznymi dotyczącymi ogólnej jakości aplikacji.

Wytyczne określają minimalną jakość, jaką powinny spełniać wszystkie aplikacje.

Jakość aplikacji adaptacyjnych

Aplikacje na Androida działają na wielu różnych urządzeniach – od kompaktowych telefonów po tablety, urządzenia składane, komputery, wyświetlacze połączone, systemy infotainment w samochodach, telewizory i urządzenia XR. Tryby okienkowania, takie jak podzielony ekran i tryb okien na pulpicie, umożliwiają uruchamianie aplikacji w częściach ekranu o zmienianym rozmiarze.

Postępuj zgodnie z wskazówkami dotyczącymi jakości aplikacji adaptacyjnych (w połączeniu z wskazówkami dotyczącymi ogólnej jakości aplikacji), aby:

  • Tworzenie aplikacji zoptymalizowanych pod kątem wszystkich formatów i rozmiarów wyświetlaczy
  • Zwiększanie pozycji aplikacji w informacjach o aplikacji i w wynikach wyszukiwania w Google Play
  • Pozyskiwanie większej liczby użytkowników i zwiększanie utrzymania użytkowników

Wskazówki

Te podstawowe wytyczne pomogą Ci stworzyć podstawową aplikację wysokiej jakości.

Interfejs użytkownika

Standardowy wygląd i wzorce interakcji Androida zapewniają spójne i intuicyjne wrażenia użytkownika.

Do tworzenia interfejsu aplikacji używaj komponentów Material Design zamiast komponentów platformy Android, jeśli to możliwe. Material Design zapewnia nowoczesny wygląd i sposób obsługi Androida oraz spójność interfejsu użytkownika w różnych wersjach Androida.

Łatwość obsługi

ID Testy Opis
Consistent_UX T-Consistent_UX,
T-SD_Card
Aplikacja zapewnia spójne wrażenia użytkownika we wszystkich przypadkach użycia na wszystkich urządzeniach.
App_Switcher T-App_Switcher,
T-SD_Card
Aplikacja przechodzi w tło, gdy fokus przełącza się na inną aplikację. Aplikacja wraca na pierwszy plan, gdy zostanie ponownie aktywowana w przełączniku aplikacji Ostatnie.
Sleep_Resume T-Sleep_Resume,
T-SD_Card
Gdy aplikacja jest na pierwszym planie, wstrzymuje się, gdy urządzenie przechodzi w tryb uśpienia, i wznawia działanie, gdy urządzenie się wybudza.
Lock_Resume T-Lock_Resume,
T-SD_Card
Gdy aplikacja jest na pierwszym planie, wstrzymuje się po zablokowaniu urządzenia i wznawia działanie po jego odblokowaniu.

Interfejs użytkownika

ID Testy Opis
Display_State_Parity T-Orientation_Transitions

Orientacje wyświetlania i stany złożenia oferują zasadniczo te same funkcje i działania oraz zachowują równoważność funkcjonalną.

Fullscreen_Display T-Orientation_Transitions

Aplikacja wypełnia okno w obu orientacjach i nie ma czarnych pasków z powodu zmian konfiguracji, w tym składania i rozkładania urządzenia.

Niewielkie letterboxingi, które kompensują niewielkie różnice w geometrii ekranu, są dopuszczalne.

Orientation_Transitions T-Orientation_Transitions Aplikacja obsługuje szybkie przejścia między orientacjami wyświetlacza oraz składanie i rozkładanie urządzenia bez problemów z renderowaniem i bez utraty stanu.

Jakość obrazu

ID Testy Opis
Graphic_Quality T-Graphic_Quality

Aplikacja wyświetla grafikę, tekst, obrazy i inne elementy interfejsu bez zauważalnych zniekształceń, rozmycia lub pikselizacji.

  • Aplikacja w miarę możliwości używa rysunków wektorowych.
  • Aplikacja używa grafiki wysokiej jakości na wszystkich docelowych ekranach i urządzeniach.
  • Brak wygładzania krawędzi menu, przycisków i innych elementów interfejsu
Line_Length T-Line_Length Aplikacja zapewnia czytelność tekstu i bloków tekstowych, ograniczając długość wiersza do 45–75 znaków (w tym spacji) w każdym z obsługiwanych języków.
Theme_Support T-Theme_Support Treści aplikacji i wszystkie treści internetowe, do których aplikacja ma dostęp, obsługują zarówno jasny, jak i ciemny motyw.
ID Testy Opis
Back_Button_Nav T-Back_Nav Aplikacja obsługuje standardową nawigację za pomocą przycisku Wstecz i nie korzysta z żadnych niestandardowych komunikatów przycisku Wstecz na ekranie.
Back_Gesture_Nav T-Back_Nav Aplikacja obsługuje nawigację przy użyciu gestów, która umożliwia przechodzenie wstecz i powrót na ekran główny.
State_Preservation T-State_Preservation,
T-Back_Nav

Aplikacja zachowuje dane użytkownika lub stan aplikacji po wyjściu z pierwszego planu i zapobiega przypadkowej utracie danych z powodu przechodzenia wstecz oraz innych zmian stanu.

Po powrocie na pierwszy plan aplikacja przywraca zachowany stan i wszystkie oczekujące transakcje stanowe. Dotyczy to m.in. zmian w polach edytowalnych, postępów w grze, menu, filmów i innych sekcji aplikacji.

  • Gdy aplikacja jest wznawiana z poziomu selektora aplikacji Ostatnie, użytkownik wraca do stanu, w którym aplikacja była ostatnio używana.
  • Gdy aplikacja zostanie wznowiona po wybudzeniu urządzenia ze stanu uśpienia (zablokowania), użytkownik wróci do stanu, w którym aplikacja była ostatnio używana.
  • Gdy aplikacja zostanie ponownie uruchomiona z ekranu głównego lub menu wszystkich aplikacji, powinna wykonać jedną z tych czynności w zależności od tego, ile czasu minęło od ostatniego użycia:
    • Jeśli aplikacja była ostatnio używana niedawno (kilka minut temu), przywróć jej stan jak najbardziej zbliżony do poprzedniego.
    • Jeśli od ostatniego użycia aplikacji minęło więcej czasu, spróbuj przywrócić ją do stanu jak najbardziej zbliżonego do poprzedniego lub uruchomić ją z poziomu ekranu głównego lub innego stanu domyślnego.

Powiadomienia

ID Testy Opis
Notification_Quality T-Notification_Quality

Powiadomienia zawierają istotne informacje dotyczące Twojej aplikacji.

  • Nie używaj powiadomień do promocji krzyżowej ani reklamowania innego produktu, ponieważ jest to surowo zabronione w Sklepie Play.
  • Kanały powiadomień są definiowane zgodnie z najlepszymi praktykami, a nie w taki sposób, aby wszystkie powiadomienia były wysyłane z jednego kanału.
  • Wybierz odpowiedni priorytet powiadomienia.
  • W miarę możliwości grupuj wiele powiadomień w jedną grupę powiadomień.
  • W odpowiednich przypadkach ustaw limity czasu powiadomień.
  • Powiadomienia są trwałe tylko wtedy, gdy dotyczą bieżących wydarzeń, takich jak odtwarzanie muzyki lub rozmowa telefoniczna. Więcej informacji znajdziesz w sekcji Funkcje.
Conversation_Quality T-Notification_Quality

W przypadku aplikacji do przesyłania wiadomości, aplikacji społecznościowych i rozmów:

Ułatwienia dostępu

ID Testy Opis
Touch_Target_Size T-Touch_Target_Size Docelowe elementy dotykowe mają co najmniej 48 dp. Zapoznaj się z wytycznymi Material Design dotyczącymi układu i typografii.
Visual_Contrast T-Visual_Contrast

Tekst aplikacji i treści na pierwszym planie zachowują te współczynniki kontrastu z tłem aplikacji:

  • 3:1 w przypadku dużego tekstu i grafiki
  • 4,5:1 w przypadku małego tekstu (poniżej 18 punktów lub poniżej 14 punktów, jeśli tekst jest pogrubiony);

Dowiedz się więcej o kolorach i kontraście.

Content_Description T-Content_Description Opisz każdy element interfejsu, z wyjątkiem TextView, używając contentDescription.

funkcje.

Aplikacja powinna działać w ten sposób:

Audio

ID Testy Opis
Audio_Playback_Start T-Audio_Playback_Start

Gdy użytkownik rozpocznie odtwarzanie dźwięku, aplikacja powinna w ciągu sekundy wykonać jedną z tych czynności:

  • Rozpocznij odtwarzanie dźwięku
  • wyświetlać wizualny wskaźnik, że dane audio są przygotowywane;
Audio_Focus_Request T-Audio_Focus_Request Aplikacja powinna żądać aktywności audio, gdy rozpoczyna się odtwarzanie dźwięku, i rezygnować z niej, gdy odtwarzanie się zatrzymuje.
Audio_Focus_Change T-Audio_Focus_Change Aplikacja powinna obsługiwać żądania innych aplikacji dotyczące aktywności audio. Na przykład aplikacja może zmniejszyć głośność odtwarzania, gdy inna aplikacja odtwarza mowę.
Audio_Playback_Background T-Audio_Playback_Background

Aplikacja powinna obsługiwać odtwarzanie w tle.

Aplikacja musi używać usługi na pierwszym planie, aby zapobiec zamknięciu procesu aplikacji przez system, gdy aplikacja nie jest już widoczna. Aplikacja musi też wyświetlać na pasku stanu lub ekranie blokady stałe powiadomienie, którego użytkownik nie może zamknąć, informujące o tym, że aplikacja jest uruchomiona.

Użytkownicy powinni mieć możliwość sterowania odtwarzaniem za pomocą powiadomień, elementów sterujących na ekranie blokady lub elementów sterujących na podłączonym akcesorium.

Audio_Notification_Style T-Audio_Notification_Style Gdy aplikacja odtwarza dźwięk w tle, musi utworzyć powiadomienie w stylu MediaStyle.
Audio_Playback_Resume T-Audio_Playback_Resume Jeśli aplikacja działa w tle, a dźwięk jest wstrzymany, dźwięk zostanie wznowiony, gdy aplikacja wróci na pierwszy plan. Aplikacja musi też informować użytkownika, że odtwarzanie jest wstrzymane.

Wideo

ID Testy Opis
Video_PiP T-Video_PiP Jeśli aplikacja odtwarza filmy, powinna obsługiwać odtwarzanie w trybie obraz w obrazie.
Video_Encoding T-Video_Encoding Jeśli aplikacja koduje wideo, powinna to robić przy użyciu standardu kompresji wideo HEVC.
Video_Playback_Background T-Video_Playback_Background

Aplikacja obsługuje odtwarzanie wideo w tle, gdy nie jest aplikacją na pierwszym planie, w tym gdy okno aplikacji jest:

  • Zminimalizowana
  • za innymi oknami lub interfejsem systemu (np. za obszarem powiadomień albo ekranem głównym lub ekranem blokady);
  • poza widocznym ekranem komputera,

Udostępnianie

ID Testy Opis
System_Sharesheet T-System_Sharesheet Podczas udostępniania treści aplikacja powinna korzystać z arkusza udostępniania w Androidzie. Aplikacja może sugerować cele, które są niedostępne w przypadku rozwiązań niestandardowych.

Usługi w tle

ID Testy Opis
Background_Service_Optimization T-Background_Service_Optimization

Aplikacja unika niepotrzebnie długiego działania usług w tle, aby zapewnić płynne działanie urządzenia użytkownika.

Uwaga: system stosuje różne ograniczenia dotyczące usług działających w tle.

Oto przykłady niewłaściwego wykorzystania usług działających w tle:

  • Utrzymywanie połączenia sieciowego na potrzeby powiadomień
  • Utrzymywanie połączenia Bluetooth
  • Utrzymywanie włączonego GPS-u

Więcej informacji znajdziesz w artykule Omówienie zadań w tle.

Wydajność i stabilność

Aplikacja powinna zapewniać optymalną wydajność, stabilność, zgodność i responsywność.

Wydajność

ID Testy Opis
App_Startup_Time T-App_Startup_Time Aplikacja wczytuje się szybko lub wyświetla użytkownikowi informacje na ekranie (wskaźnik postępu lub podobny komunikat), jeśli wczytywanie trwa dłużej niż 2 sekundy.
Rendering_Performance T-Rendering_Performance Aplikacja renderuje klatki co 16 milisekund (lub rzadziej), aby wyświetlać co najmniej 60 klatek na sekundę. Jeśli masz problemy z renderowaniem, zapoznaj się z artykułem Powolne renderowanie.
StrictMode_Compliance T-StrictMode_Compliance Gdy opcja StrictMode jest włączona (patrz sekcja testowania StrictMode), podczas testowania aplikacji nie widać czerwonych błysków (ostrzeżeń o wydajności z StrictMode).

Stabilność

ID Testy Opis
Stability_ANR T-Stability_ANR Aplikacja nie ulega awarii ani nie blokuje wątku UI, co powoduje błędy ANR (Android Not Responding). Używaj raportu przed opublikowaniem w Google Play, aby wykrywać potencjalne problemy ze stabilnością. Po wdrożeniu monitoruj stronę Android Vitals w Konsoli Play.

Pakiet SDK

ID Testy Opis
Android_Platform_Compatibility T-Android_Platform_Compatibility Aplikacja działa w najnowszej publicznej wersji platformy Android bez awarii i bez poważnego wpływu na główną funkcjonalność.
Target_SDK_Version T-Target_SDK_Version Aplikacja jest kierowana na najnowszy pakiet SDK Androida, który jest wymagany do spełnienia wymagań Google Play. W tym celu w pliku build.gradle modułu aplikacji ustaw wartość targetSdk.
Compile_SDK_Version T-Target_SDK_Version Aplikacja jest tworzona przy użyciu najnowszego pakietu Android SDK przez ustawienie wartości compileSdk w pliku modułu build.gradle aplikacji.
SDK_Maintenance T-SDK_Maintenance,
T-Non_SDK_Interfaces

Używane pakiety SDK Google i innych firm są aktualne. Wszelkie ulepszenia tych pakietów SDK związane ze stabilnością, zgodnością lub bezpieczeństwem powinny być udostępniane użytkownikom w odpowiednim czasie.

W przypadku pakietów SDK Google używaj pakietów SDK opartych na Usługach Google Play, jeśli są dostępne. Te pakiety SDK są zgodne wstecznie, otrzymują automatyczne aktualizacje, zmniejszają rozmiar pakietu aplikacji i efektywnie wykorzystują zasoby na urządzeniu.

Non_SDK_Interfaces T-Non_SDK_Interfaces Aplikacja nie używa interfejsów innych niż SDK.
Production_Build_Quality T-Production_Build_Quality Aplikacja produkcyjna nie zawiera bibliotek debugowania. Biblioteki debugowania w aplikacji mogą powodować problemy z wydajnością i bezpieczeństwem.

Bateria

ID Testy Opis
Power_Management T-Power_Management

Aplikacja prawidłowo obsługuje funkcje zarządzania energią Uśpienie i Czuwanie aplikacji.

Aplikacje mogą poprosić o zwolnienie z wymogu dotyczącego utrzymania zasilania. Więcej informacji znajdziesz w sekcji Obsługa innych przypadków użycia w artykule Optymalizacja pod kątem uśpienia i czuwania aplikacji.

Prywatność i bezpieczeństwo

Aplikacja przetwarza dane użytkownika i dane osobowe w bezpieczny sposób oraz zapewnia odpowiednie poziomy uprawnień.

Aplikacje publikowane w Sklepie Google Play muszą też być zgodne z zasadami Google Play dotyczącymi danych użytkownika, aby chronić prywatność użytkowników.

Uprawnienia

ID Testy Opis
Minimize_Permissions T-Minimize_Permissions Aplikacja prosi tylko o minimalne uprawnienia niezbędne do obsługi bieżącego przypadku użycia. W przypadku niektórych uprawnień, np. lokalizacji, aplikacja używa specyfikacji przybliżonej zamiast dokładnej, jeśli jest to możliwe. Zobacz Ograniczanie liczby próśb o uprawnienia.
Sensitive_Permissions T-Sensitive_Permissions

Aplikacja prosi o uprawnienia dostępu do danych wrażliwych (np. grup uprawnień do SMS-ów lub rejestru połączeń albo lokalizacji) lub usług, które wiążą się z opłatami (np. dialera lub SMS-ów), tylko wtedy, gdy jest to bezpośrednio związane z głównymi przypadkami użycia aplikacji. Użytkownik musi być wyraźnie poinformowany o konsekwencjach związanych z tymi uprawnieniami.

W zależności od tego, jak Twoja aplikacja korzysta z uprawnień, może istnieć alternatywny sposób realizacji jej funkcji bez konieczności uzyskiwania dostępu do informacji poufnych. Na przykład zamiast prosić o uprawnienia związane z kontaktami użytkownika, użyj intencji ogólnej, aby poprosić o dostęp.

Runtime_Permissions T-Runtime_Permissions Aplikacja prosi o uprawnienia w czasie działania, gdy użytkownik chce skorzystać z danej funkcji, a nie podczas uruchamiania aplikacji.
Permission_Rationale T-Permission_Rationale Aplikacja jasno wyjaśnia, dlaczego potrzebuje uprawnień.
Graceful_Degradation T-Graceful_Degradation Aplikacja łagodnie się degraduje, gdy użytkownicy odmawiają przyznania uprawnień lub wycofują udzieloną zgodę. Aplikacja nie powinna całkowicie uniemożliwiać użytkownikowi dostępu.

Dane i pliki

ID Testy Opis
Sensitive_Data_Storage T-Sensitive_Data_Storage,
T-Sensitive_Data_Handling
Wszystkie dane wrażliwe są przechowywane w pamięci wewnętrznej aplikacji.
Sensitive_Data_Logging T-Sensitive_Data_Logging W logu systemowym ani w logu aplikacji nie są rejestrowane żadne dane osobowe ani poufne użytkowników.
Hardware_IDs T-Hardware_IDs Aplikacja nie używa do identyfikacji niezerowalnych identyfikatorów sprzętowych, takich jak IMEI.

Tożsamość

ID Testy Opis
Wskazówki_autouzupełniania T-Autofill_Hints Aplikacja podpowiada dane do autouzupełniania danych logowania do konta i innych informacji poufnych, takich jak dane karty kredytowej, adres i numer telefonu.
Credential_Manager T-Credential_Manager Aplikacja integruje Menedżera danych logowania na Androida, aby zapewnić bezproblemowe logowanie, które ujednolica obsługę kluczy dostępu, tożsamości sfederowanej i haseł.
Biometric_Authentication T-Biometric_Authentication Aplikacja obsługuje uwierzytelnianie biometryczne w celu ochrony transakcji finansowych lub informacji poufnych, takich jak ważne dokumenty użytkownika.

Komponenty aplikacji

ID Testy Opis
Component_Export T-Component_Export

Aplikacja ustawia atrybut android:exported jawnie dla wszystkich aktywności, usług, odbiorników transmisji,a zwłaszcza dostawców treści.

Eksportowane są tylko te komponenty aplikacji, które udostępniają dane innym aplikacjom lub powinny być wywoływane przez inne aplikacje.

Component_Permissions T-Component_Permissions

Wszystkie intencje i transmisje są zgodne ze sprawdzonymi metodami:

Component_Protection T-Component_Protection

Wszystkie komponenty, które udostępniają treści między aplikacjami, używają android:protectionLevel="signature" w przypadku niestandardowych uprawnień. Obejmuje to aktywności, usługi, odbiorniki transmisji, a zwłaszcza dostawców treści.

Aplikacje nie powinny polegać na dostępie do listy zainstalowanych pakietów.

Sieć

ID Testy Opis
Network_Security_Traffic T-Network_Security_Traffic Cały ruch w sieci jest przesyłany przez SSL.
Network_Security_Configuration T-Network_Security_Configuration Aplikacja deklaruje konfigurację zabezpieczeń sieci.
Security_Provider_Initialization T-Security_Provider_Initialization Jeśli aplikacja korzysta z Usług Google Play, dostawca zabezpieczeń jest inicjowany przy uruchamianiu aplikacji.

Komponenty WebView

ID Testy Opis
WebView_Asset_Loader T-WebView_Asset_Loader,
T-WebView_Navigation
Nie używaj setAllowUniversalAccessFromFileURLs() do uzyskiwania dostępu do treści lokalnych. Zamiast tego użyj polecenia WebViewAssetLoader.
WebView_JavaScript T-WebView_JavaScript,
T-WebView_Navigation

Widoki internetowe nie używają addJavaScriptInterface() z niezaufanymi treściami.

Na Androidzie 6.0 (poziom interfejsu API 23 i nowszy) używaj kanałów wiadomości HTML.

Realizacja

ID Testy Opis
App_Bundles T-App_Bundles

Aplikacja nie ładuje dynamicznie kodu spoza pliku APK. Używaj pakietów aplikacji na Androida, które obejmują Play Feature DeliveryPlay Asset Delivery.

Od sierpnia 2021 r. używanie pakietów Android App Bundle jest obowiązkowe w przypadku wszystkich nowych aplikacji w Sklepie Google Play.

Kryptografia

ID Testy Opis
Cryptographic_Algorithms T-Cryptographic_Algorithms Aplikacja korzysta z silnych algorytmów kryptograficznych i generatora liczb losowych udostępnianych przez platformę. Aplikacja nie implementuje też algorytmów niestandardowych.

Google Play

Umożliwia publikowanie aplikacji w Google Play.

Zasady

ID Testy Opis
Play_Content_Policies T-Play_Content_Policies Aplikacja ściśle przestrzega warunków zasad Google Play dotyczących treści dla deweloperów, nie zawiera nieodpowiednich treści i nie wykorzystuje własności intelektualnej ani marki innych osób.
Play_Content_Rating T-Play_Content_Policies Klasyfikacja wiekowa aplikacji jest odpowiednio ustawiona zgodnie z wytycznymi dotyczącymi oceny treści.

Strona z informacjami o aplikacji

ID Testy Opis
Play_Feature_Graphic T-Play_Feature_Graphic,
T-Play_Graphic_Assets

Grafika funkcji aplikacji jest zgodna z wytycznymi podanymi w tym artykule pomocy. Upewnij się, że:

  • Informacje o aplikacji zawierają grafikę promocyjną wysokiej jakości
  • Grafika funkcji nie zawiera obrazów urządzeń, zrzutów ekranu ani małego tekstu, który jest nieczytelny po zmniejszeniu i wyświetleniu na najmniejszym ekranie, na który jest kierowana aplikacja.
  • Grafika nie przypomina reklamy.
Play_Device_References T-Play_Graphic_Assets Zrzuty ekranu i filmy z aplikacji nie przedstawiają urządzeń innych niż Android ani nie odwołują się do nich.
Play_Misleading_Content T-Play_Graphic_Assets Zrzuty ekranu lub filmy z aplikacji nie wprowadzają użytkowników w błąd co do treści i działania aplikacji.

Pomoc dla użytkowników

ID Testy Opis
Play_User_Reviews T-Play_Content_Policies Typowe błędy zgłaszane przez użytkowników na karcie Opinie na stronie Google Play są rozwiązywane, jeśli można je odtworzyć i występują na wielu różnych urządzeniach. Jeśli błąd występuje tylko na kilku urządzeniach, nadal należy go rozwiązać, jeśli są one szczególnie popularne lub nowe.

Środowisko testowe

Skonfiguruj środowisko testowe w ten sposób:

  • Testowanie na emulatorze: Android Emulator to świetny sposób na testowanie aplikacji w różnych wersjach Androida i rozdzielczościach ekranu. Skonfiguruj emulowane urządzenia (AVD), aby odzwierciedlały najpopularniejsze formaty i kombinacje sprzętu i oprogramowania w przypadku docelowej grupy użytkowników. Przetestuj różne formaty, korzystając z tych emulatorów (co najmniej):

    • Urządzenia składane: 7,6-calowy ekran składany do wewnątrz z wyświetlaczem zewnętrznym (w narzędziu AVD Manager jest to wymienione w sekcji „Telefony”)
    • Tablet: Pixel C 9,94" (2560 x 1800 pikseli)
    • Testowanie powiadomień z aplikacji mobilnej: sparuj urządzenie mobilne lub emulator z emulatorem Wear OS: Wear OS Round 1,84".
  • Urządzenia sprzętowe: środowisko testowe powinno obejmować niewielką liczbę rzeczywistych urządzeń sprzętowych, które reprezentują kluczowe formaty oraz kombinacje sprzętu i oprogramowania dostępne dla konsumentów. Nie musisz testować aplikacji na każdym urządzeniu dostępnym na rynku. Skup się na niewielkiej liczbie reprezentatywnych urządzeń, nawet jeśli używasz 1–2 urządzeń w przypadku każdego rodzaju.

  • Laboratoria testów urządzeń: możesz też korzystać z usług innych firm, takich jak Laboratorium Firebase, aby testować aplikację na wielu różnych urządzeniach.

  • Testuj najnowszą wersję Androida: oprócz testowania reprezentatywnych wersji Androida dla docelowej grupy użytkowników zawsze testuj najnowszą wersję Androida, aby mieć pewność, że najnowsze zmiany w działaniu nie wpłyną negatywnie na wrażenia użytkowników aplikacji.

Więcej informacji o testowaniu, w tym o testach jednostkowych, testach integracyjnych i testach interfejsu, znajdziesz w artykule Podstawy testowania aplikacji na Androida.

StrictMode

Aby przeprowadzić testy wydajności, włącz w aplikacji StrictMode. Użyj StrictMode, aby wykrywać operacje, które mogą wpływać na wydajność, dostęp do sieci oraz odczytywanie i zapisywanie plików. Wyszukaj potencjalnie problematyczne operacje w wątku głównym i w innych wątkach.

Skonfiguruj zasady monitorowania poszczególnych wątków za pomocą StrictMode.ThreadPolicy.Builder i włącz wszystkie obsługiwane funkcje monitorowania w ThreadPolicy za pomocą detectAll().

Włącz powiadomienia wizualne o naruszeniach zasad w przypadku ThreadPolicy za pomocą penaltyFlashScreen().

Testy

Podstawowe testy jakości aplikacji pomagają ocenić jej podstawową jakość. Możesz łączyć testy lub integrować grupy testów w swoim planie testów.

Interfejs użytkownika

Testuj pod kątem spójności i intuicyjności.

Łatwość obsługi

ID Funkcja Opis
T-Consistent_UX Consistent_UX

Przejdź do wszystkich części aplikacji – wszystkich ekranów, okien, ustawień i wszystkich ścieżek użytkownika.

Wykonaj te czynności:
  • Jeśli aplikacja umożliwia edytowanie lub tworzenie treści, granie w gry lub odtwarzanie multimediów, przetestuj te funkcje.
  • Podczas testowania aplikacji wprowadzaj zakłócenia z innych aplikacji, np. odbieraj powiadomienia lub połączenia telefoniczne, i wprowadzaj tymczasowe zmiany w atrybutach urządzenia, takich jak łączność sieciowa, działanie baterii, dostępność GPS-a i obciążenie systemu.
  • Wprowadzanie i testowanie wszystkich ścieżek zakupów w aplikacji
T-App_Switcher App_Switcher Na ekranie każdej aplikacji przełącz się na inną uruchomioną aplikację, a potem wróć do testowanej aplikacji, korzystając z przełącznika aplikacji Ostatnie.
T-Sleep_Resume Sleep_Resume Naciśnij przycisk zasilania, aby uśpić urządzenie, a następnie naciśnij go ponownie, aby wybudzić ekran.
T-Lock_Resume Lock_Resume Skonfiguruj blokadę ekranu na urządzeniu. Naciśnij przycisk zasilania, aby uśpić urządzenie (co spowoduje jego zablokowanie). Następnie ponownie naciśnij przycisk zasilania, aby wybudzić ekran i odblokować urządzenie.

Karta SD

ID Funkcja Opis
T-SD_Card Consistent_UX

Przeprowadź testy głównej funkcjonalności aplikacji zainstalowanej na karcie SD urządzenia (jeśli aplikacja obsługuje tę metodę instalacji).

Aby przenieść aplikację na kartę SD, otwórz jej Ustawienia.

Interfejs użytkownika

ID Funkcja Opis
T-Orientation_Transitions Display_State_Parity,
Fullscreen_Display,
Orientation_Transitions

Na ekranie każdej aplikacji obróć urządzenie co najmniej 3 razy z orientacji poziomej do pionowej i z powrotem oraz z pozycji złożonej do rozłożonej i z powrotem.

Sprawdź, czy aplikacja:
  • Zapewnia równoważność funkcji we wszystkich orientacjach wyświetlacza i stanach złożenia
  • Wypełnia okno aplikacji we wszystkich orientacjach wyświetlania i stanach złożenia oraz nie jest otoczona czarnymi paskami.
  • Zachowuje stan i nie ma problemów z renderowaniem podczas szybkich przejść między orientacjami oraz składania i rozkładania urządzenia.

Jakość obrazu

ID Funkcja Opis
T-Graphic_Quality Graphic_Quality Skorzystaj ze wszystkich funkcji aplikacji. Sprawdź, czy wszystkie elementy wizualne, w tym grafika, tekst, obrazy i inne elementy interfejsu, nie są zniekształcone, rozmyte ani rozpikselowane.
T-Line_Length Line_Length

Sprawdź wszystkie bloki tekstu w aplikacji. Upewnij się, że długość wiersza tekstu i bloku tekstu wynosi od 45 do 75 znaków (w tym spacje), aby zapewnić czytelność.

Sprawdź, czy:
  • Kompozycja jest akceptowalna we wszystkich obsługiwanych formatach.
  • Brak uciętych liter lub słów
  • Brak nieprawidłowego zawijania w przycisku lub ikonie
  • odpowiednie odstępy między tekstem a otaczającymi go elementami;
T-Theme_Support Theme_Support Sprawdź, czy cały tekst jest czytelny w motywie jasnym i ciemnym. Sprawdź, czy wszystkie elementy wizualne są wyraźnie widoczne i estetyczne w motywach jasnym i ciemnym.
ID Funkcja Opis
T-Back_Nav Back_Button_Nav,
Back_Gesture_Nav

Przejdź do wszystkich części aplikacji – wszystkich ekranów, okien, ustawień i wszystkich ścieżek użytkownika.

Na ekranie każdej aplikacji naciśnij przycisk Wstecz lub wykonaj gest przesunięcia wstecz. Aplikacja powinna przejść do poprzedniego ekranu lub ekranu głównego.

T-State_Preservation State_Preservation Na ekranie każdej aplikacji naciśnij przycisk Ekran główny lub przesuń palcem w górę w nawigacji przy użyciu gestów, a następnie ponownie uruchom aplikację na ekranie Wszystkie aplikacje.

Powiadomienia

ID Funkcja Opis
T-Notification_Quality Notification_Quality,
Conversation_Quality
Wywołaj i obserwuj w panelu powiadomień wszystkie typy powiadomień, które aplikacja może wyświetlać. Rozwiń powiadomienia (Android 4.1 i nowszy) i kliknij wszystkie dostępne działania.

Ułatwienia dostępu

ID Funkcja Opis
T-Touch_Target_Size Touch_Target_Size Sprawdź, czy elementy dotykowe mają stały, dostępny rozmiar i położenie we wszystkich rozmiarach i konfiguracjach wyświetlacza. Więcej informacji o ułatwieniach dostępu znajdziesz w sekcji Accessibility Scanner.
T-Visual_Contrast Visual_Contrast Sprawdź kontrast wszystkich elementów wizualnych.
T-Content_Description Content_Description Sprawdź, czy wszystkie elementy interfejsu inne niż TextView mają opisy treści.

funkcje.

Sprawdź, czy aplikacja działa w ten sposób:

Audio

ID Funkcja Opis
T-Audio_Playback_Start Audio_Playback_Start Rozpocznij odtwarzanie dźwięku. Sprawdź, czy w ciągu sekundy aplikacja zaczyna odtwarzać dźwięk lub wyświetla wizualny wskaźnik, że dane audio są przygotowywane do odtwarzania.
T-Audio_Focus_Request Audio_Focus_Request Rozpocznij odtwarzanie dźwięku. Aplikacja powinna poprosić o aktywność audio. Gdy odtwarzanie dźwięku się zatrzyma, aplikacja powinna zwolnić aktywność audio (co dzieje się automatycznie w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) i nowsze wersje).
T-Audio_Focus_Change Audio_Focus_Change Rozpocznij odtwarzanie dźwięku. Rozpocznij odtwarzanie dźwięku w innej aplikacji. Twoja aplikacja powinna zareagować na zmianę aktywności audio i zatrzymać odtwarzanie dźwięku lub zmniejszyć jego głośność.
T-Audio_Playback_Background Audio_Playback_Background

Rozpocznij odtwarzanie dźwięku. Używaj innej aplikacji nieodtwarzającej dźwięku jako aplikacji na pierwszym planie. Aplikacja powinna nadal odtwarzać dźwięk w tle i wyświetlać powiadomienie na pasku stanu. Sprawdź, czy możesz zarządzać odtwarzaniem za pomocą elementów sterujących wyświetlanych w powiadomieniu.

Zablokuj ekran urządzenia. Aplikacja powinna nadal odtwarzać dźwięk w tle i wyświetlać powiadomienie na ekranie blokady. Sprawdź, czy możesz zarządzać odtwarzaniem za pomocą elementów sterujących wyświetlanych w powiadomieniu.

T-Audio_Notification_Style Audio_Notification_Style Rozpocznij odtwarzanie dźwięku. Użyj innej aplikacji nieodtwarzającej dźwięku jako aplikacji na pierwszym planie. Sprawdź, czy Twoja aplikacja nadal odtwarza dźwięk w tle i czy utworzyła powiadomienie ze stylem MediaStyle. Zobacz Współpraca z opcjami sterowania multimediami.
T-Audio_Playback_Resume Audio_Playback_Resume Rozpocznij odtwarzanie dźwięku. Użyj innej aplikacji, która nie odtwarza dźwięku, jako aplikacji (działającej) na pierwszym planie. Użyj swojej aplikacji, aby stała się aplikacją (działającą) na pierwszym planie. Odtwarzanie dźwięku powinno zostać wznowione lub głośność powinna zostać przywrócona. W przeciwnym razie aplikacja powinna poinformować użytkownika, że odtwarzanie zostało wstrzymane.

Wideo

ID Funkcja Opis
T-Video_PiP Video_PiP Włącz odtwarzanie wideo w aplikacji w trybie obrazu w obrazie.
T-Video_Encoding Video_Encoding Sprawdź, czy aplikacja koduje wideo za pomocą standardu kompresji HEVC.
T-Video_Playback_Background Video_Playback_Background Rozpocznij odtwarzanie filmu. Zminimalizuj okno aplikacji i otwórz inną aplikację, aby przenieść okno aplikacji w tle. Na urządzeniach z możliwością korzystania z pulpitu przenieś okno aplikacji poza widoczny pulpit. Sprawdź, czy odtwarzanie wideo jest kontynuowane bez przerw we wszystkich przypadkach.

Udostępnianie

ID Funkcja Opis
T-System_Sharesheet System_Sharesheet Utwórz intencję i rozpocznij aktywność, wywołując funkcję startActivity() z intencją jako argumentem. Zobacz Korzystanie z arkusza udostępniania w Androidzie. Aplikacja powinna wyświetlić arkusz udostępniania w Androidzie.

Usługi w tle

ID Funkcja Opis
T-Background_Service_Optimization Background_Service_Optimization

Skorzystaj ze wszystkich najważniejszych funkcji aplikacji. Sprawdź, czy nie są uruchamiane żadne długotrwałe usługi działające w tle.

Przełącz się na inną aplikację, aby przenieść ją w tle. Otwórz Ustawienia i sprawdź, czy aplikacja ma jakieś usługi działające w tle. Na Androidzie 4.0 lub nowszym otwórz ekran Aplikacje i znajdź aplikację na karcie Uruchomione.

Wydajność i stabilność

Sprawdź wydajność, stabilność i dokładność obrazu.

Wydajność

ID Funkcja Opis
T-App_Startup_Time App_Startup_Time Uruchom aplikację. Sprawdź, czy wczytuje się szybko lub czy wyświetla wskaźnik postępu lub podobny sygnał, jeśli wczytywanie trwa dłużej niż 2 sekundy.
T-Rendering_Performance Rendering_Performance Używaj wszystkich najważniejszych funkcji aplikacji. Sprawdź, czy aplikacja renderuje co najmniej 60 klatek na sekundę. Aby przetestować aplikację, użyj opcji Profil renderowania HWUI.
T-StrictMode_Compliance StrictMode_Compliance

Włącz StrictMode w aplikacji. Korzystaj ze wszystkich najważniejszych funkcji. Sprawdź, czy aplikacja nie generuje żadnych StrictMode ostrzeżeń dotyczących wydajności, czyli czy podczas testowania aplikacji nie pojawiają się czerwone błyski. Czerwone błyski wskazują na niewłaściwe działanie w zakresie pamięci masowej, dostępu do sieci lub zarządzania pamięcią (np. wycieki pamięci).

Zwróć szczególną uwagę na czyszczenie pamięci i jego wpływ na wygodę użytkownika.

Stabilność

ID Funkcja Opis
T-Stability_ANR Stability_ANR Skorzystaj ze wszystkich najważniejszych funkcji aplikacji. Sprawdź, czy aplikacja nie ulega awarii ani nie blokuje wątku UI, co powoduje błędy ANR (Android Not Responding). Sprawdź raport przed opublikowaniem w Google Play, aby wykryć potencjalne problemy ze stabilnością.

Pakiet SDK

ID Funkcja Opis
T-Android_Platform_Compatibility Android_Platform_Compatibility Uruchamiaj aplikację w najnowszej publicznej wersji platformy Android. korzystać ze wszystkich głównych funkcji; Sprawdź, czy aplikacja nie ulega awarii i działa bez utraty głównej funkcjonalności.
T-Target_SDK_Version Target_SDK_Version,
Compile_SDK_Version
Sprawdź plik manifestu Androida i konfigurację kompilacji, aby upewnić się, że aplikacja jest kompilowana na podstawie najnowszego dostępnego pakietu SDK (targetSdkcompileSdk).
T-SDK_Maintenance SDK_Maintenance Sprawdź plik build.gradle aplikacji pod kątem nieaktualnych zależności.
T-Non_SDK_Interfaces Non_SDK_Interfaces Użyj narzędzia lint w Android Studio, aby wykryć użycie interfejsu innego niż SDK. Alternatywne metody testowania znajdziesz w sekcji Ograniczenia dotyczące interfejsów innych niż SDK.
T-Production_Build_Quality Production_Build_Quality Sprawdź, czy w pliku build.gradle aplikacji nie ma bibliotek debugowania.

Bateria

ID Funkcja Opis
T-Power_Management Power_Management

korzystać ze wszystkich najważniejszych funkcji aplikacji w trybach uśpienia i czuwania aplikacji; Sprawdź, czy alarmy, minutniki, powiadomienia i synchronizacje działają prawidłowo w oknie konserwacji trybu uśpienia i gdy aplikacja wyjdzie z trybu Czuwanie aplikacji.

Przetestuj działanie funkcji Uśpienie i Czuwanie aplikacji za pomocą poleceń ADB (wymagania i wytyczne znajdziesz w artykule Testowanie funkcji Uśpienie i Czuwanie aplikacji).

Aby zdiagnozować nieoczekiwane szybkie zużycie baterii, użyj profilera zasilania w Android Studio lub narzędzia Battery Historian w połączeniu z zaplanowaną pracą w tle.

Prywatność i bezpieczeństwo

Testowanie pod kątem ochrony prywatności i bezpieczeństwa oczekiwanej przez użytkowników.

Uprawnienia

ID Funkcja Opis
T-Minimize_Permissions Minimize_Permissions Sprawdź wszystkie uprawnienia wymagane przez aplikację w pliku manifestu, w czasie działania i w ustawieniach aplikacji na urządzeniu (Ustawienia > Informacje o aplikacji).
T-Sensitive_Permissions Sensitive_Permissions Używaj funkcji aplikacji, które wymagają uprawnień. Sprawdź, czy aplikacja prosi o uprawnienia dostępu do danych wrażliwych lub usług tylko w przypadku podstawowych zastosowań. Sprawdź, czy użytkownik jest jasno informowany o konsekwencjach przyznania uprawnień do danych wrażliwych i usług o charakterze poufnym.
T-Runtime_Permissions Runtime_Permissions korzystać ze wszystkich funkcji aplikacji, które wymagają uprawnień; Sprawdź, czy uprawnienia są wymagane leniwie, czyli tylko wtedy, gdy użytkownik korzysta z funkcji, a nie podczas uruchamiania aplikacji.
T-Permission_Rationale Permission_Rationale korzystać ze wszystkich funkcji aplikacji, które wymagają uprawnień; Sprawdź, czy aplikacja wyjaśnia użytkownikowi, dlaczego potrzebuje uprawnień.
T-Graceful_Degradation Graceful_Degradation korzystać ze wszystkich funkcji aplikacji, które wymagają uprawnień; Odrzuć lub cofnij uprawnienia. Sprawdź, czy aplikacja oferuje alternatywny sposób użycia i czy nadal działa.

Dane i pliki

ID Funkcja Opis
T-Sensitive_Data_Storage Sensitive_Data_Storage Sprawdź wszystkie dane przechowywane w pamięci wewnętrznej. Sprawdź, czy dane przechowywane na zewnątrz nie są danymi wrażliwymi.
T-Sensitive_Data_Handling Sensitive_Data_Storage Sprawdź, jak dane wczytywane z pamięci zewnętrznej są obsługiwane i przetwarzane.
T-Sensitive_Data_Logging Sensitive_Data_Logging Korzystaj ze wszystkich głównych funkcji aplikacji, monitorując dziennik urządzenia. Sprawdź, czy nie są rejestrowane żadne prywatne informacje o użytkownikach.
T-Hardware_IDs Hardware_IDs Korzystaj ze wszystkich głównych funkcji aplikacji. Sprawdź, czy aplikacja nie używa do identyfikacji żadnych identyfikatorów sprzętowych, takich jak IMEI.

Tożsamość

ID Funkcja Opis
T-Autofill_Hints Autofill_Hints Korzystaj ze wszystkich funkcji aplikacji, które wymagają danych wejściowych użytkownika. Sprawdź, czy aplikacja wyświetla podpowiedzi do autouzupełniania pól wprowadzania danych, takich jak dane logowania do konta i inne informacje poufne.
T-Credential_Manager Credential_Manager Zaloguj się w aplikacji. Sprawdź, czy jest ona zintegrowana z Credential Managerem na Androida, aby zapewnić logowanie jednokrotne z obsługą kluczy dostępu, tożsamości sfederowanej i haseł.
T-Biometric_Authentication Biometric_Authentication korzystać ze wszystkich funkcji aplikacji, które wymagają uwierzytelniania; Sprawdź, czy aplikacja chroni transakcje finansowe lub informacje wrażliwe, takie jak ważne dokumenty użytkownika, za pomocą uwierzytelniania biometrycznego.

Komponenty aplikacji

ID Funkcja Opis
T-Component_Export Component_Export Sprawdź wszystkie komponenty aplikacji zdefiniowane w pliku manifestu Androida, aby określić odpowiedni stan eksportu. Właściwość eksportowana musi być wyraźnie ustawiona dla wszystkich komponentów.
T-Component_Permissions Component_Permissions Sprawdź wszystkie uprawnienia wymagane przez aplikację w pliku manifestu, w czasie działania i w ustawieniach aplikacji na urządzeniu (Ustawienia > Informacje o aplikacji).
T-Component_Protection Component_Protection Sprawdź wszystkich dostawców treści zdefiniowanych w pliku manifestu Androida. Sprawdź, czy każdy dostawca ma odpowiedni protectionLevel.

Sieć

ID Funkcja Opis
T-Network_Security_Traffic Network_Security_Traffic Zadeklaruj konfigurację zabezpieczeń sieci, która wyłącza ruch nieszyfrowany, a następnie przetestuj aplikację.
T-Network_Security_Configuration Network_Security_Configuration Sprawdź konfigurację zabezpieczeń sieci aplikacji. Sprawdź, czy żadne testy lint w konfiguracji nie zakończyły się niepowodzeniem.
T-Security_Provider_Initialization Security_Provider_Initialization Sprawdź, czy dostawca zabezpieczeń jest inicjowany podczas uruchamiania aplikacji w przypadku usług Google Play.

Komponenty WebView

ID Funkcja Opis
T-WebView_Asset_Loader WebView_Asset_Loader Sprawdź konfigurację zabezpieczeń sieci aplikacji. Sprawdź, czy żadne testy lint w konfiguracji nie zakończyły się niepowodzeniem.
T-WebView_JavaScript WebView_JavaScript W przypadku każdego kodu WebView przejdź na stronę, która wymaga JavaScriptu.
T-WebView_Navigation WebView_Asset_Loader,
WebView_JavaScript
W każdym widoku WebView spróbuj przejść do witryn i treści, które nie są wczytywane bezpośrednio przez aplikację.

Realizacja

ID Funkcja Opis
T-App_Bundles App_Bundles Sprawdź, czy aplikacja korzysta z pakietów Android App Bundle i nie wczytuje dynamicznie kodu spoza pliku APK aplikacji.

Kryptografia

ID Funkcja Opis
T-Cryptographic_Algorithms Cryptographic_Algorithms Sprawdź, czy aplikacja używa silnych algorytmów kryptograficznych i generatora liczb losowych dostarczanych przez platformę. Sprawdź też, czy aplikacja nie implementuje algorytmów niestandardowych.

Google Play

Sprawdź, czy Twoja aplikacja jest gotowa do publikacji w Google Play.

Zasady

ID Funkcja Opis
T-Play_Content_Policies Play_Content_Policies,
Play_Content_Rating,
Play_User_Reviews
Zaloguj się w Konsoli Google Play, aby sprawdzić swój profil dewelopera, opis aplikacji, zrzuty ekranu, grafikę promocyjną, ocenę treści i opinie użytkowników.

Strona z informacjami o aplikacji

ID Funkcja Opis
T-Play_Feature_Graphic Play_Feature_Graphic Pobierz grafikę promocyjną i zrzuty ekranu, a następnie zmniejsz je, aby pasowały do rozmiarów wyświetlaczy na urządzeniach i w formach, na których chcesz wyświetlać aplikację.
T-Play_Graphic_Assets Play_Feature_Graphic,
Play_Device_References,
Play_Misleading_Content
Sprawdź wszystkie zasoby graficzne, multimedia, tekst, biblioteki kodu i inne treści, które są spakowane w aplikacji lub w pliku rozszerzającym do pobrania.

Archiwum

Poprzednie wersje wskazówek dotyczących jakości aplikacji: