Ostrzeżenie: aplikacja błyskawiczna w Google Play nie będzie już dostępna. Od grudnia 2025 r. nie będzie można publikować aplikacji błyskawicznych w Google Play, a wszystkie interfejsy Instant API Usług Google Play przestaną działać. Użytkownicy nie będą już otrzymywać aplikacji błyskawicznych z Google Play za pomocą żadnego mechanizmu.
Wprowadzamy tę zmianę na podstawie opinii deweloperów i naszych ciągłych inwestycji w ulepszanie ekosystemu od czasu wprowadzenia aplikacji błyskawicznych w Google Play.
Aby nadal optymalizować wzrost liczby użytkowników, zachęcamy deweloperów do kierowania użytkowników do standardowej aplikacji lub gry za pomocą precyzyjnych linków, które w razie potrzeby przekierowują ich do określonych ścieżek lub funkcji.
Aplikacje błyskawiczne w Google Play zapewniają bogate, natywne funkcje po kliknięciu linku w internecie. Użytkownicy mogą korzystać z aplikacji bez konieczności jej instalowania, co zwiększa poziom i jakość zaangażowania. Aby aplikacja błyskawiczna wczytywała się tak szybko jak typowa strona mobilna, musisz utworzyć dobrze skonstruowaną i wydajną aplikację błyskawiczną. Im mniejszy jest plik binarny aplikacji błyskawicznej, tym szybciej się ona wczytuje i tym lepsze są wrażenia użytkownika.
W tym dokumencie znajdziesz sprawdzone metody zarządzania strukturą aplikacji i rozmiarem plików binarnych, które zapewnią płynne działanie aplikacji błyskawicznej. Te same praktyki możesz zastosować również w przypadku aplikacji do zainstalowania.
Refaktoryzacja do wielu modułów funkcji
Największą poprawę rozmiaru pliku binarnego aplikacji można uzyskać, dzieląc ją na kilka modułów funkcji. Zacznij od modułu funkcji podstawowych, a potem wyodrębnij powiązane tematycznie przepływy pracy do własnych modułów funkcji. Przypisz każdemu modułowi funkcji aktywność początkową i unikalny adres URL, aby użytkownicy mogli pomyślnie ukończyć proces modułu.
Podczas tworzenia modułów funkcji staraj się, aby moduł funkcji podstawowych był jak najmniejszy. Zwróć szczególną uwagę na części aplikacji, które wymagają dostępu do bibliotek zależnych. Jeśli tylko jeden moduł funkcji używa danej biblioteki, zaimportuj ją w tym module, a nie w podstawowym module funkcji. Pamiętaj, że aby opublikować aplikację natychmiastową dla danego modułu funkcji, łączny rozmiar tego modułu funkcji i podstawowego modułu funkcji musi być mniejszy niż 15 MB.
Sprawdzone metody
Podczas refaktoryzacji aplikacji pamiętaj o tych sprawdzonych metodach:
- Używanie tej samej bazy kodu w przypadku obu typów aplikacji
- Możesz uprościć proces zarządzania projektem aplikacji, używając tego samego modułowego kodu do tworzenia zarówno aplikacji instalowanej, jak i aplikacji natychmiastowych.
- Projektowanie wielu modułów funkcji
- Nawet jeśli aplikacja ma tylko 1 przepływ pracy i na razie wymaga tylko 1 modułu funkcji, warto zaprojektować ją tak, aby obsługiwała wiele modułów funkcji. Dzięki temu możesz dodawać do aplikacji istniejące moduły bez wpływu na rozmiar oryginalnego modułu funkcji.
- Na początku nie skupiaj się na limicie rozmiaru modułu funkcji
- Limity rozmiaru modułu funkcji nie dotyczą plików binarnych utworzonych lokalnie. Aplikację błyskawiczną możesz też opublikować na ścieżce testu wewnętrznego, która nakłada limit 15 MB na rozmiar modułów funkcji. Tylko ścieżki alfa i produkcyjna mają limit 15 MB.
Aktualizowanie zasobów aplikacji
Niektóre aplikacje, zwłaszcza te z dłuższą historią kodu, zawierają zasoby, których pliki binarne aplikacji nie używają. Szukając sposobów na zmniejszenie modułów aplikacji, zwróć uwagę na te typowe źródła niepotrzebnego kodu.
Zmniejszanie rozmiaru plików obrazów
Możesz znacznie zmniejszyć łączny rozmiar zasobów rysowalnych aplikacji, używając formatu pliku WebP zamiast PNG. Google Play Instant w pełni obsługuje format WebP, w tym przezroczystość i kompresję bezstratną, dzięki czemu jakość obrazu pozostaje niezmieniona.
Jeśli to możliwe, usuń wszystkie wymagania dotyczące zgodności wstecznej w przypadku używania innych obrazów PNG. Jeśli musisz używać obrazów PNG, umieść je w module, który służy do tworzenia i instalowania aplikacji.
Usuwanie nieużywanych języków
Jeśli Twoja aplikacja obsługuje wiele języków, zredukuj liczbę zlokalizowanych zasobów. Ten krok jest szczególnie przydatny, jeśli używasz biblioteki „appcompat”, np. android.support.v7.appcompat
.
Ta biblioteka zawiera wiadomości w wielu językach, z których niektóre mogą nie być obsługiwane przez Twoją aplikację.
Więcej informacji znajdziesz w artykule o tym, jak usuwać nieużywane zasoby alternatywne, zwłaszcza nieużywane języki.
Usuwanie dodatkowych plików
Twoja aplikacja może już nie korzystać z niektórych zasobów zaimportowanych do projektu. Aby pomóc w usuwaniu tych zasobów, Android Studio ma kontrolę Lint, która sprawdza, czy występuje ta konkretna sytuacja. Aby korzystać z narzędzia, wykonaj te czynności:
- Naciśnij Control+Alt+Shift+I (Command+Alt+Shift+I w systemie Mac OS).
- W wyświetlonym oknie wpisz
"unused resources"
. - Aby rozpocząć proces sprawdzania wykorzystania zasobów, wybierz opcję Nieużywane zasoby.
Jeśli w aplikacji nadal znajdują się duże zasoby, zastanów się, czy można je wyodrębnić z aplikacji i pobrać jako osobne pliki po tym, jak użytkownik zacznie z niej korzystać. Takie odroczenie ładowania obrazów zwykle wymaga zmiany kodu, ale może znacznie zmniejszyć rozmiar pliku aplikacji natychmiastowej, ponieważ pobierane są tylko zasoby, o które użytkownik wyraźnie poprosi.
Usuwanie nieużywanych bibliotek
Wraz z rozwojem aplikacji może ona mieć zaskakująco wiele zależności, zwłaszcza jednego z tych typów:
- Biblioteki natywne: biblioteki zawierające kod natywny, który nigdy nie jest uruchamiany przez aplikację natychmiastową.
- Zależności przechodnie: biblioteki, od których zależą zaimportowane biblioteki aplikacji.
Android Studio ma kilka przydatnych narzędzi do identyfikowania zbędnych zależności w projekcie aplikacji:
- Biblioteki zewnętrzne
Widok Projekt w Android Studio zawiera sekcję Biblioteki zewnętrzne.
Ta sekcja zawiera wszystkie biblioteki używane przez aplikację, w tym kod natywny i wszystkie zależności przechodnie. W tym widoku poszukaj nieużywanych lub zduplikowanych bibliotek, których Twoja aplikacja nie potrzebuje.
- APK Analyzer
Za pomocą narzędzia Analizator APK możesz porównywać różne wersje, w tym wersje aplikacji błyskawicznych.
Gdy ustalisz, których bibliotek Twoja aplikacja nie potrzebuje, wyklucz je, dodając do pliku kompilacji Gradle wiersze podobne do tych:
<feature_module>/build.gradle
Groovy
dependencies { implementation('some-important-but-large-library') { exclude group: 'com.example.imgtools', module: 'native' } }
Kotlin
dependencies { implementation('some-important-but-large-library') { exclude(group = "com.example.imgtools", module = "native") } }
Więcej informacji o zmniejszaniu całkowitego rozmiaru importu zależności aplikacji znajdziesz w przewodniku Gradle dotyczącym zarządzania zależnościami.
Wdrażanie dostarczania zasobów w chmurze
Jeśli chcesz jeszcze bardziej zmniejszyć rozmiar, możesz skorzystać z dostarczania zasobów w chmurze.