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

Aby zapewnić solidne podstawy dla wysokiej jakości aplikacji, postępuj zgodnie ze wskazówkami dotyczącymi ogólnej jakości aplikacji.

Wytyczne określają minimalną jakość, którą 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, połączone wyświetlacze, systemy multimedialne w samochodach, telewizory i urządzenia XR. Tryby okien, takie jak podzielony ekran i tryb okien na pulpicie, umożliwiają uruchamianie aplikacji w obszarach ekranu o zmiennym rozmiarze.

Postępuj zgodnie ze wskazówkami dotyczącymi jakości aplikacji adaptacyjnych oraz ogólnymi wskazówkami dotyczącymi jakości aplikacji, aby:

  • Tworzenie aplikacji zoptymalizowanych pod kątem wszystkich formatów i rozmiarów wyświetlaczy
  • Wyższe pozycje aplikacji na listach 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ć prostą aplikację wysokiej jakości.

Interfejs użytkownika

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

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

Łatwość obsługi

Identyfikator 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 rodzajach urządzeń.
App_Switcher T-App_Switcher,
T-SD_Card
Aplikacja przechodzi w tło, gdy przełączysz 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 działa na pierwszym planie, jest wstrzymywana, gdy urządzenie przechodzi w tryb uśpienia, i wznawiana, gdy urządzenie się wybudza.
Lock_Resume T-Lock_Resume,
T-SD_Card
Gdy aplikacja działa na pierwszym planie, jest wstrzymywana po zablokowaniu urządzenia i wznawiana po jego odblokowaniu.

Interfejs użytkownika

Identyfikator Testy Opis
Display_State_Parity T-Orientation_Transitions

Orientacje wyświetlacza i stany złożenia udostępniają 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 jest wyświetlana w formacie letterbox z powodu zmian konfiguracji, w tym składania i rozkładania urządzenia.

Dopuszczalne jest niewielkie dodanie czarnych pasów, aby skompensować niewielkie różnice w geometrii ekranu.

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

Jakość obrazu

Identyfikator Testy Opis
Graphic_Quality T-Graphic_Quality

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

  • Aplikacja używa obiektów rysowalnych wektorowo, gdy jest to możliwe.
  • Aplikacja używa grafiki wysokiej jakości na ekranach o wszystkich docelowych rozmiarach i formatach.
  • Brak aliasingu na krawędziach menu, przycisków i innych elementów interfejsu.
Line_Length T-Line_Length Aplikacja zapewnia czytelność tekstu i bloków tekstu, ograniczając długość wiersza do 45–75 znaków (ze spacjami) w każdym obsługiwanym języku.
Theme_Support T-Theme_Support Treści aplikacji i wszystkie treści z internetu, do których aplikacja ma dostęp, obsługują zarówno jasny, jak i ciemny motyw.
Identyfikator Testy Opis
Back_Button_Nav T-Back_Nav Aplikacja obsługuje standardową nawigację przy użyciu przycisku Wstecz i nie korzysta z żadnych niestandardowych przycisków Wstecz na ekranie.
Back_Gesture_Nav T-Back_Nav Aplikacja obsługuje nawigację przy użyciu gestów, aby można było wrócić i przejść do ekranu głównego.
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. Przykłady obejmują zmiany w polach edytowalnych, postępach w grze, menu, filmach i innych sekcjach aplikacji.

  • Gdy aplikacja jest wznawiana z poziomu przełącznika aplikacji Ostatnie, użytkownik wraca do stanu, w którym aplikacja była ostatnio używana.
  • Gdy aplikacja jest wznawiana po wybudzeniu urządzenia ze stanu uśpienia (zablokowania), przywraca użytkownika do stanu, w którym była ostatnio używana.
  • Gdy aplikacja zostanie ponownie uruchomiona z ekranu głównego lub ekranu Wszystkie aplikacje, powinna wykonać jedną z tych czynności, w zależności od tego, ile czasu minęło od ostatniego użycia aplikacji:
    • 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ć jej stan jak najbardziej zbliżony do poprzedniego lub uruchom ją z ekranu głównego albo innego stanu domyślnego.

Powiadomienia

Identyfikator Testy Opis
Notification_Quality T-Notification_Quality

Powiadomienia zawierają istotne informacje dotyczące aplikacji.

  • Nie używaj powiadomień do wzajemnej promocji ani reklamowania innego produktu, ponieważ jest to surowo zabronione w Sklepie Play.
  • Kanały powiadomień są definiowane zgodnie ze sprawdzonymi metodami, a nie przez wyświetlanie wszystkich powiadomień z jednego kanału.
  • Wybierz odpowiedni priorytet powiadomienia.
  • Jeśli to możliwe, grupuj wiele powiadomień w jedną grupę powiadomień.
  • W razie potrzeby ustaw limity czasu dla powiadomień.
  • Powiadomienia są trwałe tylko wtedy, gdy są związane z trwającymi zdarzeniami, takimi jak odtwarzanie muzyki lub rozmowa telefoniczna. Więcej informacji znajdziesz w sekcji Funkcje.
Conversation_Quality T-Notification_Quality

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

Ułatwienia dostępu

Identyfikator Testy Opis
Touch_Target_Size T-Touch_Target_Size Docelowe elementy dotykowe mają co najmniej 48 dp. Zapoznaj się ze wskazówkami dotyczącymi rozmiarów elementów docelowych w Material Design.
Visual_Contrast T-Visual_Contrast

Tekst i treści na pierwszym planie aplikacji 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 (mniej niż 18 pt lub mniej niż 14 pt, 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, za pomocą contentDescription.

Funkcje

Aplikacja powinna działać w następujący sposób.

Dźwięk

Identyfikator 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 informujący o przygotowywaniu danych audio;
Audio_Focus_Request T-Audio_Focus_Request Aplikacja powinna prosić o aktywność audio, gdy rozpoczyna się odtwarzanie dźwięku, i rezygnować z niej, gdy odtwarzanie się kończy.
Audio_Focus_Change T-Audio_Focus_Change Aplikacja powinna obsługiwać żądania innych aplikacji dotyczące fokusu dźwięku. 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 uniemożliwić systemowi zakończenie procesu aplikacji, gdy nie jest ona już widoczna. Aplikacja musi też wyświetlać na pasku stanu lub na ekranie blokady stałe, nieusuwalne powiadomienie informujące użytkownika, że aplikacja jest uruchomiona.

Użytkownicy powinni mieć możliwość sterowania odtwarzaniem za pomocą elementów sterujących na ekranie powiadomień lub ekranie blokady albo na połą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, odtwarzanie dźwięku jest wznawiane, gdy aplikacja wraca na pierwszy plan, lub aplikacja musi poinformować użytkownika, że odtwarzanie jest wstrzymane.

Wideo

Identyfikator Testy Opis
Video_PiP T-Video_PiP Jeśli aplikacja odtwarza filmy, powinna obsługiwać odtwarzanie w trybie obrazu w obrazie.
Video_Encoding T-Video_Encoding Jeśli aplikacja koduje filmy, 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 na pierwszym planie, w tym gdy okno aplikacji jest:

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

Udostępnianie

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

Usługi w tle

Identyfikator Testy Opis
Background_Service_Optimization T-Background_Service_Optimization

Aplikacja unika niepotrzebnego uruchamiania długich usług w tle, aby zapewnić płynne działanie urządzenia użytkownika.

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

Oto przykłady nieprawidłowego użycia usług 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ść

Identyfikator Testy Opis
App_Startup_Time T-App_Startup_Time Aplikacja szybko się wczytuje lub wyświetla użytkownikowi informacje na ekranie (np. wskaźnik postępu), jeśli wczytywanie trwa dłużej niż 2 sekundy.
Rendering_Performance T-Rendering_Performance Aplikacja renderuje klatki co 16 milisekund (lub częściej), aby wyświetlać co najmniej 60 klatek na sekundę. Pomoc dotyczącą problemów z renderowaniem znajdziesz w artykule Powolne renderowanie.
StrictMode_Compliance T-StrictMode_Compliance Po włączeniu StrictMode (patrz sekcja testowania StrictMode) podczas testowania aplikacji nie są widoczne żadne czerwone błyski (ostrzeżenia dotyczące wydajności z StrictMode).

Stabilność

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

SDK

Identyfikator Testy Opis
Android_Platform_Compatibility T-Android_Platform_Compatibility Aplikacja działa na najnowszej publicznej wersji platformy Androida, nie ulega awariom ani nie wpływa znacząco na główną funkcjonalność.
Target_SDK_Version T-Target_SDK_Version Aplikacja jest kierowana na najnowszy pakiet Android SDK, który jest wymagany do spełnienia wymagań Google Play. Aby to zrobić, ustaw wartość targetSdk w pliku build.gradle modułu aplikacji.
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 aplikacji build.gradle.
SDK_Maintenance T-SDK_Maintenance,
T-Non_SDK_Interfaces

Wszystkie używane pakiety SDK Google lub 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 W aplikacji produkcyjnej nie ma bibliotek debugowania. Biblioteki debugowania zawarte w aplikacji mogą powodować problemy z wydajnością i bezpieczeństwem.

Bateria

Identyfikator Testy Opis
Power_Management T-Power_Management

Aplikacja prawidłowo obsługuje funkcje zarządzania energią Doze i Czuwanie aplikacji.

Aplikacje mogą poprosić o zwolnienie z zarządzania zasilaniem. Zobacz Obsługa innych przypadków użycia w artykule Optymalizacja pod kątem drzemki i czuwania aplikacji.

Prywatność i bezpieczeństwo

Aplikacja bezpiecznie przetwarza dane użytkownika i dane osobowe oraz zapewnia odpowiednie poziomy uprawnień.

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

Uprawnienia

Identyfikator 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 przybliżonej specyfikacji zamiast dokładnej, jeśli jest to możliwe. Zobacz Ograniczanie próśb o uprawnienia.
Sensitive_Permissions T-Sensitive_Permissions

Aplikacja prosi o uprawnienia dostępu do danych wrażliwych (takich jak grupy uprawnień do SMS-ów lub rejestru połączeń lub lokalizacja) lub usług płatnych (takich jak Dialer lub SMS) tylko wtedy, gdy jest to bezpośrednio związane z jej głównymi zastosowaniami. Użytkownik musi zostać wyraźnie poinformowany o konsekwencjach związanych z tymi uprawnieniami.

W zależności od tego, jak aplikacja korzysta z uprawnień, może istnieć alternatywny sposób realizacji jej przypadku użycia 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 niejawnej, aby poprosić o dostęp.

Runtime_Permissions T-Runtime_Permissions Aplikacja prosi o uprawnienia w czasie działania, gdy wymagana jest dana funkcja, a nie podczas uruchamiania aplikacji.
Permission_Rationale T-Permission_Rationale Aplikacja jasno wyjaśnia, dlaczego potrzebuje uprawnień.
Graceful_Degradation T-Graceful_Degradation Aplikacja przeprowadza łagodną degradację, gdy użytkownicy odmawiają uprawnień lub je wycofują. Aplikacja nie powinna całkowicie uniemożliwiać dostępu użytkownikom.

Dane i pliki

Identyfikator 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 Żadne dane osobowe ani wrażliwe dane użytkownika nie są zapisywane w logu systemowym ani w logu aplikacji.
Hardware_IDs T-Hardware_IDs Aplikacja nie używa do celów identyfikacyjnych żadnych identyfikatorów sprzętowych, których nie można zresetować, takich jak IMEI.

Tworzenie i przywracanie kopii zapasowych danych

Identyfikator Testy Opis
App_Data_Backup T-App_Data_Backup

Aplikacja zachowuje dane użytkownika, ustawienia i stan aplikacji w kopiach zapasowych w chmurze i podczas przenoszenia danych między urządzeniami.

Zaimplementuj automatyczną kopię zapasową i skonfiguruj android:dataExtractionRules, aby zapewnić bezproblemowe przywracanie danych podczas konfigurowania nowego urządzenia lub ponownej instalacji aplikacji.

App_Logins_Restoration T-App_Logins_Restoration

Aplikacja automatycznie przywraca konta użytkowników i stan logowania, gdy użytkownik konfiguruje nowe urządzenie.

Zaimplementuj Restore Credentials za pomocą Credential Manager, aby automatycznie ponownie uwierzytelniać użytkowników bez konieczności ręcznego logowania się lub odzyskiwania konta.

Tożsamość

Identyfikator Testy Opis
Autofill_Hints T-Autofill_Hints Aplikacja udostępnia wskazówki dotyczące autouzupełniania danych logowania i innych informacji poufnych, takich jak dane karty kredytowej, adres pocztowy i numer telefonu.
Credential_Manager T-Credential_Manager Aplikacja integruje Credential Manager 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

Identyfikator Testy Opis
Component_Export T-Component_Export

Aplikacja wyraźnie ustawia atrybut android:exported dla wszystkich aktywności, usług, odbiorników komunikatów,a zwłaszcza mechanizmów dostarczania 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 uprawnień niestandardowych. Obejmuje to aktywności, usługi, odbiorniki komunikatów, a zwłaszcza mechanizmy dostarczania treści.

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

Sieć

Identyfikator 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 podczas uruchamiania aplikacji.

Komponenty WebView

Identyfikator 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 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.

Wykonanie

Identyfikator Testy Opis
App_Bundles T-App_Bundles

Aplikacja nie ładuje dynamicznie kodu spoza swojego pliku APK. Używaj pakietów Android App Bundle, które obejmują Play Feature Delivery i Play Asset Delivery.

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

Kryptografia

Identyfikator Testy Opis
Cryptographic_Algorithms T-Cryptographic_Algorithms Aplikacja używa silnych, dostarczanych przez platformę algorytmów kryptograficznych i generatora liczb losowych. Aplikacja nie implementuje też niestandardowych algorytmów.

Google Play

Włącz publikowanie aplikacji w Google Play.

Zasady

Identyfikator Testy Opis
Play_Content_Policies T-Play_Content_Policies Aplikacja ściśle przestrzega warunków Polityki treści dla deweloperów w Google Play, nie oferuje 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 ustawiona odpowiednio na podstawie wytycznych dotyczących oceny treści.

Strona z informacjami o aplikacji

Identyfikator Testy Opis
Play_Feature_Graphic T-Play_Feature_Graphic,
T-Play_Graphic_Assets

Grafika funkcji aplikacji jest zgodna z wytycznymi opisanymi w tym artykule pomocy. Sprawdź, czy:

  • Informacje o aplikacji zawierają wysokiej jakości grafikę.
  • Grafika 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órym aplikacja może być używana.
  • Grafika nie przypomina reklamy.
Play_Device_References T-Play_Graphic_Assets Zrzuty ekranu i filmy z aplikacji nie pokazują urządzeń innych niż z Androidem ani nie zawierają odniesień do nich.
Play_Misleading_Content T-Play_Graphic_Assets Zrzuty ekranu lub filmy nie przedstawiają treści i funkcji aplikacji w sposób wprowadzający w błąd.

Pomoc dla użytkowników

Identyfikator 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 naprawić, jeśli te urządzenia są szczególnie popularne lub nowe.

Środowisko testowe

Skonfiguruj środowisko testowe w ten sposób:

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

    • Urządzenia składane: 7,6 cala, składane do środka, z zewnętrznym wyświetlaczem (na liście telefonów w [narzędziu] AVD Manager).
    • Tablet: Pixel C 9,94" (2560 x 1800 pikseli)
    • Testowanie powiadomień w aplikacji mobilnej: sparuj urządzenie mobilne lub emulator z emulatorem Wear OS: Wear OS Round 1,84"
  • Urządzenia: środowisko testowe powinno obejmować niewielką liczbę rzeczywistych urządzeń, które reprezentują kluczowe formaty i 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ń, używając nawet 1 lub 2 urządzeń na format.

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

  • Testuj na najnowszej wersji Androida: oprócz testowania na reprezentatywnych wersjach Androida dla docelowej bazy użytkowników zawsze przeprowadzaj testy na najnowszej wersji 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, integracyjnych i interfejsu, znajdziesz w artykule Podstawy testowania aplikacji na Androida.

StrictMode

Aby przeprowadzić testy wydajności, włącz w aplikacji StrictMode. Użyj StrictMode, aby wykryć operacje, które mogą wpływać na wydajność, dostęp do sieci oraz odczyt i zapis plików. Poszukaj potencjalnie problematycznych operacji zarówno w wątku głównym, jak i w innych wątkach.

Skonfiguruj zasadę 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 dla ThreadPolicy za pomocą penaltyFlashScreen().

Testy

Testy podstawowej jakości aplikacji pomagają ocenić jej podstawową jakość. Możesz połączyć testy lub zintegrować grupy testów w planie testów.

Interfejs użytkownika

Testowanie pod kątem spójności i intuicyjności obsługi.

Łatwość obsługi

Identyfikator Funkcja Opis
T-Consistent_UX Consistent_UX

Przejdź do wszystkich części aplikacji – wszystkich ekranów, okien, ustawień i wzorców przeglądania.

Wykonaj te czynności:
  • Jeśli aplikacja umożliwia edytowanie lub tworzenie treści, granie lub odtwarzanie multimediów, przetestuj te procesy.
  • Podczas testowania aplikacji wprowadzaj przerwy spowodowane przez inne aplikacje, np. otrzymanie powiadomienia lub połączenia telefonicznego, oraz stosuj tymczasowe zmiany atrybutów urządzenia, takich jak połączenie sieciowe, działanie baterii, dostępność GPS i obciążenie systemu.
  • Wprowadź i przetestuj wszystkie procesy zakupów w aplikacji.
T-App_Switcher App_Switcher Z każdego ekranu aplikacji przełącz się na inną uruchomioną aplikację, a następnie 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 naciśnij ponownie przycisk zasilania, aby wybudzić ekran i odblokować urządzenie.

Karta SD

Identyfikator Funkcja Opis
T-SD_Card Consistent_UX

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

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

Interfejs użytkownika

Identyfikator Funkcja Opis
T-Orientation_Transitions Display_State_Parity,
Fullscreen_Display,
Orientation_Transitions

Na każdym ekranie aplikacji obróć urządzenie co najmniej 3 razy do orientacji poziomej i pionowej oraz do stanu złożonego i rozłożonego.

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świetlacza i stanach złożenia oraz nie jest wyświetlana w formacie letterbox.
  • zachowuje stan i nie ma problemów z renderowaniem podczas szybkich zmian orientacji oraz składania i rozkładania urządzenia;

Jakość obrazu

Identyfikator Funkcja Opis
T-Graphic_Quality Graphic_Quality Użyj 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 jest ograniczona do 45–75 znaków (ze spacjami), aby zapewnić czytelność.

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

Przejdź do wszystkich części aplikacji – wszystkich ekranów, okien, ustawień i wzorców przeglądania.

Na każdym ekranie aplikacji naciśnij przycisk Wstecz lub użyj gestu przesunięcia palcem wstecz. Aplikacja powinna przejść do poprzedniego lub ekranu głównego.

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

Powiadomienia

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

Ułatwienia dostępu

Identyfikator Funkcja Opis
T-Touch_Target_Size Touch_Target_Size Sprawdź, czy docelowe elementy dotykowe zachowują spójny, dostępny rozmiar i położenie we wszystkich rozmiarach i konfiguracjach wyświetlacza. Więcej informacji o ułatwieniach dostępu znajdziesz w artykule o aplikacji 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 opisany poniżej sposób.

Dźwięk

Identyfikator 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 odtworzenia.
T-Audio_Focus_Request Audio_Focus_Request Rozpocznij odtwarzanie dźwięku. Aplikacja powinna poprosić o skupienie na dźwięku. Gdy odtwarzanie dźwięku zostanie zatrzymane, aplikacja powinna zrezygnować z fokusu audio (co dzieje się automatycznie w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego).
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ę fokusu audio i zatrzymać odtwarzanie dźwięku lub zmniejszyć głośność.
T-Audio_Playback_Background Audio_Playback_Background

Rozpocznij odtwarzanie dźwięku. Wejdź w interakcję z inną aplikacją nieodtwarzającą dźwięku jako aplikacją 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. Wejdź w interakcję z inną aplikacją nieodtwarzającą dźwięku jako aplikacją na pierwszym planie. Sprawdź, czy Twoja aplikacja nadal odtwarza dźwięk w tle i czy utworzyła powiadomienie w stylu MediaStyle. Zobacz Współpraca z opcjami sterowania multimediami.
T-Audio_Playback_Resume Audio_Playback_Resume Rozpocznij odtwarzanie dźwięku. Wejdź w interakcję z inną aplikacją, która nie jest aplikacją audio, jako aplikacją na pierwszym planie. Wejdź w interakcję z aplikacją, aby stała się aplikacją na pierwszym planie. Dźwięk powinien zostać wznowiony lub głośność powinna zostać przywrócona. W przeciwnym razie aplikacja powinna poinformować użytkownika, że odtwarzanie zostało wstrzymane.

Wideo

Identyfikator Funkcja Opis
T-Video_PiP Video_PiP Aktywuj odtwarzanie filmów w aplikacji w trybie obrazu w obrazie.
T-Video_Encoding Video_Encoding Sprawdź, czy aplikacja koduje filmy przy użyciu standardu kompresji wideo HEVC.
T-Video_Playback_Background Video_Playback_Background Rozpocznij odtwarzanie filmu. Zminimalizuj okno aplikacji, otwórz inną aplikację, aby przenieść okno aplikacji do tła. Na urządzeniach z obsługą pulpitu przesuń okno aplikacji poza widoczny pulpit. Sprawdź, czy we wszystkich przypadkach odtwarzanie filmu jest kontynuowane bez przerw.

Udostępnianie

Identyfikator Funkcja Opis
T-System_Sharesheet System_Sharesheet Utwórz intencję i rozpocznij aktywność, wywołując 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

Identyfikator Funkcja Opis
T-Background_Service_Optimization Background_Service_Optimization

Użyj wszystkich głównych funkcji aplikacji. Sprawdź, czy nie zostały uruchomione żadne długotrwałe usługi w tle.

Przełącz się na inną aplikację, aby wysłać aplikację w tło. Otwórz Ustawienia i sprawdź, czy aplikacja ma jakieś usługi działające w tle. Na urządzeniach z Androidem 4.0 lub nowszym otwórz ekran Aplikacje i znajdź aplikację na karcie Uruchomione.

Wydajność i stabilność

Sprawdź wydajność, stabilność i jakość obrazu.

Wydajność

Identyfikator Funkcja Opis
T-App_Startup_Time App_Startup_Time Uruchom aplikację. Sprawdź, czy aplikacja szybko się wczytuje lub czy wyświetla wskaźnik postępu albo podobny komunikat, jeśli wczytywanie trwa dłużej niż 2 sekundy.
T-Rendering_Performance Rendering_Performance Użyj wszystkich głównych funkcji aplikacji. Sprawdź, czy aplikacja renderuje co najmniej 60 klatek na sekundę. Aby przetestować aplikację, użyj opcji Profiluj renderowanie HWUI.
T-StrictMode_Compliance StrictMode_Compliance

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

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

Stabilność

Identyfikator Funkcja Opis
T-Stability_ANR Stability_ANR Użyj wszystkich głównych funkcji aplikacji. Sprawdź, czy aplikacja nie ulega awarii ani nie blokuje wątku UI, powodując błędy ANR (Android nie odpowiada). Sprawdź raport przed opublikowaniem w Google Play, aby wykryć potencjalne problemy ze stabilnością.

SDK

Identyfikator Funkcja Opis
T-Android_Platform_Compatibility Android_Platform_Compatibility Uruchom aplikację na najnowszej publicznej wersji platformy Androida. 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 z użyciem najnowszego dostępnego pakietu SDK (targetSdk i compileSdk).
T-SDK_Maintenance SDK_Maintenance Sprawdź, czy w pliku build.gradle aplikacji nie ma nieaktualnych zależności.
T-Non_SDK_Interfaces Non_SDK_Interfaces Aby wykryć użycie interfejsu spoza pakietu SDK, użyj narzędzia lint w Android Studio. Alternatywne metody testowania znajdziesz w artykule 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

Identyfikator Funkcja Opis
T-Power_Management Power_Management

korzystać ze wszystkich głównych funkcji aplikacji w trybach drzemki i czuwania aplikacji; Sprawdź, czy alarmy, minutniki, powiadomienia i synchronizacje działają prawidłowo w oknie konserwacji trybu uśpienia oraz po wyjściu aplikacji z trybu czuwania aplikacji.

Przetestuj działanie funkcji Doze i Czuwanie aplikacji za pomocą poleceń ADB (wymagania i wytyczne znajdziesz w artykule Testowanie z użyciem funkcji Doze i Czuwanie aplikacji).

Aby zdiagnozować nieoczekiwane rozładowywanie baterii, użyj narzędzia Android Studio Power Profiler lub Battery Historian w połączeniu z zaplanowaną pracą w tle.

Prywatność i bezpieczeństwo

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

Uprawnienia

Identyfikator Funkcja Opis
T-Minimize_Permissions Minimize_Permissions Sprawdź wszystkie uprawnienia, których wymaga aplikacja, w pliku manifestu, w czasie działania i w ustawieniach aplikacji na urządzeniu (Ustawienia > Informacje o aplikacji).
T-Sensitive_Permissions Sensitive_Permissions Użyj funkcji aplikacji, które wymagają uprawnień. Sprawdź, czy aplikacja prosi o dostęp do poufnych danych lub usług tylko w przypadku głównych zastosowań. Sprawdź, czy użytkownik został jasno poinformowany o konsekwencjach przyznania uprawnień do danych i usług poufnych.
T-Runtime_Permissions Runtime_Permissions Użyj wszystkich funkcji aplikacji, które wymagają uprawnień. Sprawdź, czy uprawnienia są wymagane tylko wtedy, gdy jest to konieczne, czyli tylko wtedy, gdy użytkownik korzysta z funkcji, a nie podczas uruchamiania aplikacji.
T-Permission_Rationale Permission_Rationale Użyj wszystkich funkcji aplikacji, które wymagają uprawnień. Sprawdź, czy aplikacja wyjaśnia użytkownikowi, dlaczego potrzebuje uprawnień.
T-Graceful_Degradation Graceful_Degradation Użyj wszystkich funkcji aplikacji, które wymagają uprawnień. odmówić lub cofnąć uprawnienia; Sprawdź, czy aplikacja oferuje alternatywny przypadek użycia i nadal działa.

Dane i pliki

Identyfikator Funkcja Opis
T-Sensitive_Data_Storage Sensitive_Data_Storage Sprawdź wszystkie dane przechowywane w pamięci wewnętrznej. Sprawdź, czy dane przechowywane zewnętrznie nie są danymi wrażliwymi.
T-Sensitive_Data_Handling Sensitive_Data_Storage Sprawdź, jak są obsługiwane i przetwarzane dane wczytywane z pamięci zewnętrznej.
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 korzystać ze wszystkich głównych funkcji aplikacji; Sprawdź, czy aplikacja nie używa do identyfikacji żadnych identyfikatorów sprzętowych, takich jak IMEI.

Tworzenie i przywracanie kopii zapasowych danych

Identyfikator Funkcja Opis
T-App_Data_Backup App_Data_Backup

skonfigurować lokalne preferencje, bazy danych i ustawienia aplikacji na urządzeniu głównym; Utwórz kopię zapasową w chmurze lub przenieś dane na nowe urządzenie (D2D).

Po przeniesieniu uruchom aplikację na urządzeniu docelowym i sprawdź, czy lokalne ustawienia, stan bazy danych i ustawienia użytkownika zostały prawidłowo przywrócone zgodnie z regułami automatycznej kopii zapasowej. Szczegółowe procedury testowania znajdziesz w artykule Testowanie tworzenia i przywracania kopii zapasowej.

T-App_Logins_Restoration App_Logins_Restoration

Skonfiguruj sesję zalogowanego użytkownika na urządzeniu głównym za pomocą kluczy dostępu, haseł lub funkcji Logowanie przez Google. Utwórz kopię zapasową w chmurze lub przenieś dane na nowe urządzenie (D2D).

Po przeniesieniu uruchom aplikację na urządzeniu docelowym i sprawdź, czy uwierzytelnianie zostało automatycznie przywrócone za pomocą interfejsu Restore Credentials API bez wyświetlania ekranów logowania i bez konieczności odzyskiwania konta. Szczegółowe procedury testowania znajdziesz w artykule Testowanie przywracania danych logowania.

Tożsamość

Identyfikator Funkcja Opis
T-Autofill_Hints Autofill_Hints Użyj wszystkich funkcji aplikacji, które wymagają danych wejściowych użytkownika. Sprawdź, czy aplikacja wyświetla podpowiedzi dotyczące autouzupełniania pól do wprowadzania danych, takich jak dane logowania i inne informacje poufne.
T-Credential_Manager Credential_Manager Zaloguj się w aplikacji. Sprawdź, czy aplikacja integruje Menedżera danych logowania na Androida, aby zapewnić ujednolicone logowanie obsługujące klucze dostępu, tożsamość sfederowaną i hasła.
T-Biometric_Authentication Biometric_Authentication korzystać ze wszystkich funkcji aplikacji, które wymagają uwierzytelniania; Sprawdź, czy aplikacja chroni transakcje finansowe lub informacje poufne, takie jak ważne dokumenty użytkownika, za pomocą uwierzytelniania biometrycznego.

Komponenty aplikacji

Identyfikator Funkcja Opis
T-Component_Export Component_Export Sprawdź wszystkie komponenty aplikacji zdefiniowane w pliku manifestu Androida pod kątem odpowiedniego stanu eksportu. Właściwość wyeksportowana musi być ustawiona bezpośrednio dla wszystkich komponentów.
T-Component_Permissions Component_Permissions Sprawdź wszystkie uprawnienia, których wymaga aplikacja, w pliku manifestu, w czasie działania i w ustawieniach aplikacji na urządzeniu (Ustawienia > Informacje o aplikacji).
T-Component_Protection Component_Protection Sprawdź wszystkie mechanizmy dostarczania treści zdefiniowane w pliku manifestu Androida. Upewnij się, że każdy dostawca ma odpowiedni protectionLevel.

Sieć

Identyfikator Funkcja Opis
T-Network_Security_Traffic Network_Security_Traffic Zadeklaruj konfigurację zabezpieczeń sieci, która wyłącza ruch w formie tekstu nieszyfrowanego, a następnie przetestuj aplikację.
T-Network_Security_Configuration Network_Security_Configuration Sprawdź konfigurację zabezpieczeń sieci aplikacji. Sprawdź, czy nie występują błędy konfiguracji.
T-Security_Provider_Initialization Security_Provider_Initialization Sprawdź, czy dostawca zabezpieczeń jest inicjowany podczas uruchamiania aplikacji w przypadku usług Google Play.

Komponenty WebView

Identyfikator Funkcja Opis
T-WebView_Asset_Loader WebView_Asset_Loader Sprawdź konfigurację zabezpieczeń sieci aplikacji. Sprawdź, czy nie występują błędy konfiguracji.
T-WebView_JavaScript WebView_JavaScript W przypadku każdego WebView przejdź na stronę, która wymaga JavaScriptu.
T-WebView_Navigation WebView_Asset_Loader,
WebView_JavaScript
W każdym komponencie WebView spróbuj przejść do witryn i treści, które nie są wczytywane bezpośrednio przez aplikację.

Wykonanie

Identyfikator Funkcja Opis
T-App_Bundles App_Bundles Sprawdź, czy aplikacja używa pakietów Android App Bundle i nie wczytuje dynamicznie kodu spoza pliku APK aplikacji.

Kryptografia

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

Google Play

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

Zasady

Identyfikator 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ę, ocenę treści i opinie użytkowników.

Strona z informacjami o aplikacji

Identyfikator Funkcja Opis
T-Play_Feature_Graphic Play_Feature_Graphic Pobierz grafikę i zrzuty ekranu, a następnie przeskaluj je, aby pasowały do rozmiarów wyświetlaczy na urządzeniach i formatów, na które kierujesz reklamy.
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 zawarte w aplikacji lub pliku rozszerzenia.

Archiwizuj

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