W niektórych krajach pakiety danych mogą kosztować ponad 10% miesięcznych dochodów typowego użytkownika. Oznacza to, że zmniejszenie rozmiaru pobierania aplikacji i umożliwienie użytkownikowi kontrolowania sposobu, w jaki aplikacja korzysta z danych, może przynieść wielu użytkownikom duże, wymierne korzyści. Minimalizowanie rozmiaru pobierania pomaga też oszczędzać miejsce w pamięci wewnętrznej, która na niektórych urządzeniach jest ograniczona.
Znajdziesz tu strategie, które pomogą Ci zoptymalizować ilość danych wykorzystywanych przez aplikację zarówno w sieci, jak i w pamięci wewnętrznej.
Zmniejszanie rozmiaru aplikacji
Zmniejszenie rozmiaru aplikacji to jeden z podstawowych sposobów na ograniczenie zużycia danych przez użytkownika, zarówno w przypadku danych sieciowych, jak i pamięci wewnętrznej. W tej sekcji opisujemy kilka sposobów na zmniejszenie rozmiaru aplikacji.
Zmniejszanie rozmiaru komponentów graficznych w pliku APK
- Zasoby graficzne często mają największy wpływ na rozmiar pliku APK. Optymalizacja tych elementów może zmniejszyć rozmiar pobieranych plików, a tym samym skrócić czas instalacji dla użytkowników.
- W przypadku zasobów graficznych, takich jak ikony, używaj formatu SVG. Obrazy SVG są niewielkie w porównaniu z grafiką bitmapową i mogą być renderowane w dowolnej rozdzielczości w czasie działania. Biblioteka pomocy Androida zapewnia wstecznie zgodną implementację zasobów wektorowych dla Androida 2.1 (poziom API 7). Pierwsze kroki z wektorami znajdziesz w tym artykule na Medium.
- W przypadku obrazów innych niż wektorowe, np. zdjęć, używaj formatu WebP, aby skrócić czas wczytywania obrazów i zaoszczędzić przepustowość sieci. Udowodniono, że format WebP zapewnia mniejsze rozmiary plików niż PNG i JPG przy co najmniej takiej samej jakości obrazu. Nawet przy ustawieniach stratnych format WebP może generować obraz niemal identyczny z oryginałem. Android obsługuje stratną kompresję WebP od wersji 4.0 (API na poziomie 14: Ice Cream Sandwich), a bezstratną i przezroczystą kompresję WebP od wersji 4.2 (API na poziomie 17: Jelly Bean).
- Jeśli masz wiele dużych obrazów o różnej gęstości, rozważ użycie obsługi wielu pakietów APK, aby podzielić pakiet APK według gęstości. Dzięki temu powstają wersje przeznaczone dla konkretnych gęstości, co oznacza, że użytkownicy urządzeń o niskiej gęstości nie będą musieli pobierać nieużywanych zasobów o wysokiej gęstości.
- Więcej informacji o zmniejszaniu rozmiaru pliku APK znajdziesz w artykułach Zmniejszanie rozmiaru pliku APK i Zmniejszanie rozmiaru kodu i zasobów. Szczegółowy przewodnik po zmniejszaniu rozmiaru pliku APK znajdziesz w tej serii postów na platformie Medium.
Zmniejszanie rozmiaru kodu
- Każda biblioteka w projekcie na Androida dodaje do pliku APK potencjalnie nieużywany kod. Zachowaj szczególną ostrożność podczas korzystania z bibliotek zewnętrznych, ponieważ nie wszystkie biblioteki są przeznaczone do używania w aplikacjach mobilnych. Upewnij się, że biblioteki używane przez aplikację są zoptymalizowane pod kątem urządzeń mobilnych.
- Rozważ optymalizację skompilowanego kodu za pomocą narzędzia takiego jak ProGuard. ProGuard identyfikuje nieużywany kod i usuwa go z pliku APK. Podczas kompilacji
włącz też zmniejszanie zasobów, ustawiając
minifyEnabled=true
,shrinkResources=true
wbuild.gradle
. Spowoduje to automatyczne usunięcie nieużywanych zasobów z pliku APK. - Podczas korzystania z Usług Google Play wybieraj tylko niezbędne interfejsy API do uwzględnienia w pliku APK.
- Więcej informacji o zmniejszaniu rozmiaru kodu w pliku APK znajdziesz w szkoleniu na temat Androida, w którym wyjaśniamy, jak unikać frameworków wstrzykiwania zależności.
Zezwalaj na przenoszenie aplikacji do pamięci zewnętrznej (karty SD)
- Tanie urządzenia często mają mało pamięci. Użytkownicy mogą rozszerzyć tę pamięć za pomocą kart SD, ale zanim będą mogli przenieść aplikacje, muszą one wyraźnie zadeklarować, że obsługują instalację na pamięci zewnętrznej.
- Zezwól na instalowanie aplikacji w pamięci zewnętrznej za pomocą flagi
android:installLocation
w pliku AndroidManifest.xml. Więcej informacji o tym, jak umożliwić przenoszenie aplikacji na pamięć zewnętrzną, znajdziesz w przewodniku po Androidzie w sekcji Lokalizacja instalacji aplikacji.
Zmniejszanie wykorzystania dysku przez aplikację po instalacji
- Niewielkie zużycie miejsca na dysku przez aplikację oznacza, że użytkownicy rzadziej będą ją odinstalowywać, gdy na urządzeniu zabraknie wolnego miejsca. Ważne jest, aby ograniczyć rozmiar pamięci podręcznych, co zapobiega nieograniczonemu wzrostowi wykorzystania dysku przez aplikację. Pamiętaj, aby umieścić dane w pamięci podręcznej w folderze
getCacheDir()
– system może w razie potrzeby usuwać stamtąd pliki, więc nie będą one widoczne jako miejsce na dane przypisane do aplikacji.
Oferowanie konfigurowalnego korzystania z sieci
Platforma Android udostępnia kilka sposobów, dzięki którym możesz dać użytkownikowi kontrolę nad wykorzystaniem sieci przez aplikację i zoptymalizować ją pod kątem jego potrzeb. Na przykład podczas pierwszego użycia aplikacja może przeprowadzić użytkownika przez różne ustawienia związane z siecią. Możesz też udostępnić ekran ustawień sieci spoza aplikacji.
Udostępnianie użytkownikom informacji o wyborach dotyczących sieci
- Aplikacje, które pozwalają użytkownikom zmniejszyć zużycie danych, są dobrze odbierane, nawet jeśli mają duże wymagania dotyczące danych. Jeśli Twoja aplikacja zużywa znaczną ilość przepustowości (np. aplikacje do strumieniowego przesyłania wideo), możesz zapewnić użytkownikom wprowadzenie, które pozwoli im skonfigurować wykorzystanie sieci. Możesz na przykład zezwolić użytkownikowi na wymuszanie strumieni wideo o niższej przepływności w sieciach komórkowych.
- Dodatkowe ustawienia, które pozwalają użytkownikom kontrolować synchronizację danych, wstępne pobieranie i zachowanie związane z korzystaniem z sieci (np. wstępne pobieranie wszystkich oznaczonych gwiazdką kategorii wiadomości tylko w sieci Wi-Fi), pomagają też dostosować działanie aplikacji do ich potrzeb.
- Więcej informacji o zarządzaniu wykorzystaniem sieci znajdziesz w szkoleniu na temat Androida Zarządzanie wykorzystaniem sieci.
Wyświetlanie ekranu ustawień sieci
- Ustawienia sieci aplikacji możesz otworzyć z poziomu ekranu ustawień sieci poza aplikacją. Ten ekran możesz otworzyć w ustawieniach systemu lub na ekranie wykorzystania danych systemowych.
- Aby udostępnić ekran ustawień sieci, do którego użytkownicy mogą uzyskać dostęp z poziomu aplikacji oraz ustawień systemu, w aplikacji umieść aktywność obsługującą działanie
ACTION_MANAGE_NETWORK_USAGE
. - Więcej informacji o dodawaniu ekranu ustawień sieci znajdziesz w szkoleniu na temat Androida Wdrażanie aktywności związanej z ustawieniami.
Dodatkowe materiały
Więcej informacji na ten temat znajdziesz w tych materiałach: