Interfejs i treści dla miliardów użytkowników
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Zadbaj o to, aby aplikacja miała interaktywny interfejs, który szybko reaguje na działania użytkownika, a w razie potrzeby kompensuje powolne uruchamianie.
Zadbaj o to, aby aplikacja była łatwa do zlokalizowania, uwzględniając różnice między językami: pozostaw miejsce na odstępy, gęstość, kolejność, akcenty i różnice w słowach. Sprawdź też, czy data, godzina i inne jednostki są dostosowane do ustawień telefonu i wyświetlane zgodnie z nimi.
Szybki i sprawny interfejs
Postrzeganie wydajności aplikacji przez użytkownika zależy w dużej mierze od jej szybkości reakcji. Na przykład interakcja z użytkownikiem i wyraźny wyświetlacz to 2 ważne cechy wydajnej aplikacji. Tutaj znajdziesz wskazówki, jak zoptymalizować te i inne aspekty szybkości i reaktywności aplikacji.
Reakcje na dotyk wszystkich elementów, których można dotknąć
- Odpowiedź dotykowa sprawia, że interfejs użytkownika jest bardziej wyczuwalny. Zadbaj o to, aby aplikacja zapewniała reakcję na dotyk w przypadku wszystkich elementów, których można dotknąć, aby jak najbardziej ograniczyć odczuwalne opóźnienie.
-
Interakcja z reakcją zachęca do dokładniejszego poznania aplikacji, ponieważ tworzy odpowiednie, logiczne i przyjemne reakcje ekranu na działania użytkownika.
Interaktywność sprawia, że aplikacja przestaje być tylko usługą dostarczającą informacje, a staje się platformą, która komunikuje się z użytkownikiem za pomocą różnych reakcji wizualnych i dotykowych.
- Więcej informacji znajdziesz w szkoleniu na temat Androida Dostosowywanie reakcji na dotyk.
Interfejs użytkownika powinien być zawsze interaktywny
- Aplikacje, które nie reagują podczas wykonywania działań w tle, działają wolno i obniżają zadowolenie użytkowników. Zadbaj o to, aby interfejs aplikacji zawsze reagował na działania użytkownika, niezależnie od aktywności w tle. Możesz to osiągnąć, wykonując operacje sieciowe lub inne wymagające operacje w wątku w tle. Wątek interfejsu użytkownika powinien być jak najmniej obciążony.
- Aplikacje Material Design używają minimalnych zmian wizualnych podczas wczytywania treści, przedstawiając każdą operację za pomocą jednego wskaźnika aktywności.
Unikaj blokowania okien za pomocą
wskaźników wczytywania.
- Puste stany występują, gdy widok nie ma treści do wyświetlenia. Może to być lista, która nie zawiera żadnych elementów, lub wyszukiwanie, które nie zwraca żadnych wyników. Unikaj pustych stanów, korzystając z treści wprowadzających, edukacyjnych lub najlepiej dopasowanych.
Jeśli te opcje nie mają zastosowania, wyświetl nieinteraktywny obraz i tekstowy slogan, który informuje użytkownika, co zobaczy, gdy będzie coś do wyświetlenia.
- Więcej informacji znajdziesz w szkoleniu na temat Androida Utrzymywanie responsywności aplikacji.
Docelowa liczba klatek na sekundę na tanich urządzeniach to 60.
- Zadbaj o to, aby aplikacja zawsze działała szybko i płynnie, nawet na tanich urządzeniach.
- Nadmierne rysowanie może znacznie spowolnić działanie aplikacji. Występuje ono, gdy piksele są rysowane więcej niż raz w jednym przebiegu. Przykładem może być obraz z przyciskiem umieszczonym na wierzchu. Chociaż pewne przekroczenie limitu jest nieuniknione, należy je zminimalizować, aby zapewnić płynną liczbę klatek na sekundę. Przeprowadź debugowanie przerysowań GPU w aplikacji, aby je zminimalizować.
- Urządzenia z Androidem odświeżają ekran z częstotliwością 60 klatek na sekundę, co oznacza, że aplikacja musi aktualizować ekran w ciągu około 16 milisekund. Profiluj aplikację za pomocą narzędzi na urządzeniu, aby sprawdzić, czy i kiedy nie spełnia ona średniej 16 ms.
- ograniczyć lub usunąć animacje na tanich urządzeniach, aby zmniejszyć obciążenie procesora i karty graficznej urządzenia; Więcej informacji znajdziesz w artykule Poprawianie skuteczności układu.
- Efektywna hierarchia widoków może przyspieszyć działanie aplikacji bez zwiększania jej zużycia pamięci. Więcej informacji znajdziesz w sekcjach Skuteczność i Wyświetlanie hierarchii.
Używanie ekranu uruchamiania w przypadku aplikacji, które wolno się uruchamiają
- Ekran uruchamiania to pierwszy kontakt użytkownika z aplikacją.
Wyświetlanie pustego obszaru podczas uruchamiania aplikacji zwiększa postrzeganie czasu wczytywania, dlatego warto użyć zastępczego interfejsu lub ekranu uruchamiania z logo, aby skrócić postrzegany czas wczytywania.
-
Interfejs zastępczy to najbardziej płynne przejście podczas uruchamiania, odpowiednie zarówno w przypadku uruchamiania aplikacji, jak i przejść między aktywnościami w aplikacji.
-
Ekrany startowe z elementami marki zapewniają chwilową ekspozycję marki, dzięki czemu interfejs może skupić się na treści.
- Najlepszym sposobem na radzenie sobie z wolnym uruchamianiem jest jego unikanie. Wydajność podczas uruchamiania zawiera informacje, które mogą pomóc w skróceniu czasu uruchamiania aplikacji.
Sprawdzone metody dotyczące interfejsu
-
Material Design to język wizualny, który łączy klasyczne zasady dobrego projektu z innowacjami oraz możliwościami zapewnianymi przez technologię i naukę. Material Design to pojedynczy spójny system, który zapewnia jednorodny wygląd na różnych platformach i rozmiarach urządzeń. Używaj kluczowych komponentów Material Design, aby użytkownicy intuicyjnie wiedzieli, jak korzystać z aplikacji.
- Gotowe komponenty Material Design są dostępne w bibliotece pomocy Material Design. Te komponenty są obsługiwane na Androidzie 2.1 (poziom interfejsu API 7) i nowszych wersjach.
Lokalizacja
- Twoi użytkownicy mogą pochodzić z dowolnego miejsca na świecie, a ich język ojczysty może być inny niż Twój. Jeśli nie zaprezentujesz aplikacji w języku, który Twoi użytkownicy mogą przeczytać, stracisz szansę na ich pozyskanie. Dlatego warto zlokalizować aplikację na najważniejsze języki regionalne.
- Więcej informacji znajdziesz w szkoleniu na temat Androida Obsługa różnych języków oraz na liście kontrolnej lokalizacji.
- Od Androida 7.0 (interfejs API na poziomie 24) platforma Android udostępnia podzbiór interfejsów API ICU4J, które mogą pomóc w lokalizowaniu aplikacji na wiele języków. Więcej informacji znajdziesz w artykule
ICU4J Android Framework APIs.
Dodatkowe materiały
Więcej informacji na ten temat znajdziesz w tych materiałach:
Dalsze tematy
Posty na blogu
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[null,null,["Ostatnia aktualizacja: 2025-07-27 UTC."],[],[],null,["# UI and content for billions\n\nMake sure that your app offers an interactive UI that responds quickly to user input and, if necessary, compensates for a slow launch.\nEnsure that your app is designed to be easily localized by\naccommodating the variations between languages: allow for spacing, density,\norder, emphasis, and wording variations. Also make sure that date, time, and\nother units are internationalized and displayed according to the phone's\nsettings.\n\nFast and responsive user interface\n----------------------------------\n\n\u003cbr /\u003e\n\n\nThe user's perception of app performance is formed in large part by the app's\nresponsiveness. For example, interaction with the user and a crisp display are two important\ncharacteristics of a performant app. Here you can find tips on how to optimize these and\nother aspects of an app's speed and responsiveness.\n\n### Touch feedback on all touchable items\n\n- Touch feedback adds a tactile feeling to the user interface. You should ensure your app provides touch feedback on all touchable elements to reduce the perceived app latency as much as possible.\n- [Responsive interaction](https://material.io/guidelines/motion/material-motion.html) encourages deeper exploration of an app by creating timely, logical, and delightful screen reactions to user input. Responsive interaction elevates an app from an information-delivery service to an experience that communicates using multiple visual and tactile responses.\n- For more information, see the Android training on [Customizing Touch\n Feedback](/training/material/animations#Touch).\n\n### UI should always be interactive\n\n- Apps that are unresponsive when performing background activity feel slow and reduce user satisfaction. Ensure your app always has a responsive UI regardless of any background activity. Achieve this by performing network operations or any heavy-duty operations in a background thread---keep the UI thread as idle as you can.\n- Material Design apps use minimal visual changes when loading content by representing each operation with a single activity indicator. Avoid blocking dialogs with [loading indicators](https://material.io/guidelines/components/progress-activity.html).\n- [Empty\n states](https://material.io/guidelines/patterns/empty-states.html) occur when a view has no content to show. It might be a list that has no items or a search that returns no results. Avoid empty states using starter, educational, or best match content. When these options aren't applicable display a non-interactive image and a text tagline that tell the user what they'll see when there is something to display.\n- For more information, see the Android training on [Keeping Your App\n Responsive](/training/articles/perf-anr).\n\n### Target 60 frames per second on low-cost devices\n\n- Ensure that your app always runs fast and smoothly, even on low-cost devices.\n- Overdraw can significantly slow down your app---it occurs when the pixels are being drawn more than once per pass. An example of this is when you have an image with a button placed on top of it. While some overdraw is unavoidable, it should be minimized to ensure a smooth frame rate. Perform [Debug\n GPU overdraw](/tools/performance/debug-gpu-overdraw) on your app to ensure it's minimized.\n- Android devices refresh the screen at 60 frames per second (fps), meaning your app has to update the screen within roughly 16 milliseconds. [Profile\n your app](/studio/profile/dev-options-rendering) using on-device tools to see if and when your app is not meeting this 16 ms average.\n- Reduce or remove animations on low-cost devices to lessen the burden on the device's CPU and GPU. For more information, see [Improve\n layout performance](/develop/ui/views/layout/improving-layouts).\n- An efficient view hierarchy can speed up your app without increasing the app's memory footprint. For more information, see [Performance\n and View Hierarchies.](/topic/performance/optimizing-view-hierarchies)\n\n### Use a launch screen on slow to start apps\n\n- The launch screen is a user's first experience of your application. Displaying a blank canvas while launching your app increases the perception of its loading time, so consider using a placeholder UI or a branded launch screen to reduce the perceived loading time.\n- A[placeholder UI](https://material.io/design/communication/launch-screen.html#placeholder-ui) is the most seamless launch transition, appropriate for both app launches and in-app activity transitions.\n- [Branded launch screens](/guide/topics/ui/splash-screen) provide momentary brand exposure, freeing the UI to focus on content.\n- The best way to deal with slow start speeds is not to have them. [Launch-Time Performance](/topic/performance/launch-time) provides information that may help you speed up your app's launch time.\n\nUser interface best practices\n-----------------------------\n\n- [Material Design](https://material.io/guidelines/material-design/introduction.html) is a visual language that synthesizes the classic principles of good design with the innovation and possibility of technology and science. Material Design provides a single underlying system that allows for a unified experience across platforms and device sizes. Consider using key Material Design components so that users intuitively know how to use your app.\n- Ready-to-use Material Design components are available in the [Material Design Support\n library](/topic/libraries/support-library/features#material-design). These components are supported in Android 2.1 (API level 7) and above.\n\nLocalization\n------------\n\n- Your users could be from any part of the world and their first language may not be yours. If you don't present your app in a language that your users can read, it is a missed opportunity. You should therefore localize your app for key regional languages.\n- To learn more, visit the Android training on [Supporting\n Different Languages](/training/basics/supporting-devices/languages) and see the [localization checklist](/distribute/tools/localization-checklist).\n- Starting from Android 7.0 (API level 24), the Android framework makes available a subset of the [ICU4J APIs](http://userguide.icu-project.org/), which can help you localize your app into multiple languages. For more information, see [ICU4J Android Framework APIs.](/guide/topics/resources/icu4j-framework)\n\n\u003cbr /\u003e\n\nAdditional resources\n--------------------\n\nTo learn more about this topic, view the following additional resources:\n\n### Further topics\n\n- [Keeping your app responsive](/training/articles/perf-anr)\n- [Improving layout performance](/training/improving-layouts)\n- [Introduction to animations](/training/animation/overview)\n\n### Blog posts\n\n- [Writing for global audiences](https://medium.com/google-design/writing-for-global-audiences-d339d23e9612)"]]