Zmniejszanie rozmiaru aplikacji błyskawicznej

Aplikacja błyskawiczna w Google Play umożliwia działanie multimedialne, za pomocą kliknięcia linku internetowego. Użytkownicy mogą zapoznać się z Twoją aplikacją bez jej instalowania, co zwiększa ich zaangażowanie. Jeśli jednak chcesz, aby aplikacja błyskawiczna wczytywała się tak szybko, jak zwykła strona mobilna, musisz stworzyć skuteczną i dobrze uporządkowaną aplikację błyskawiczną. Im mniejszy plik binarny aplikacji błyskawicznej, tym szybciej się ona wczytuje i tym lepiej działa.

Ten dokument przedstawia sprawdzone metody zarządzania strukturą i rozmiarem plików binarnych aplikacji, aby umożliwić płynne działanie aplikacji błyskawicznych. Te same rozwiązania możesz zastosować także do swojej aplikacji z możliwością zainstalowania.

Refaktoryzacja na kilka modułów funkcji

Największy wzrost rozmiaru plików binarnych aplikacji następuje po refaktoryzacji aplikacji na kilka modułów funkcji. Zacznij od modułu funkcji podstawowych, a następnie wyodrębnij powiązane tematycznie przepływy pracy do osobnych modułów funkcji. Przypisz początkowe działanie i unikalny adres URL do każdego modułu funkcji, aby użytkownicy mogli bez problemu ukończyć przepływ pracy.

Podczas tworzenia modułów funkcji zadbaj o to, aby moduł podstawowy powinien być jak najmniejszy. Zwróć szczególną uwagę na te części aplikacji, które wymagają dostępu do bibliotek zależnych. Jeśli tylko jeden moduł funkcji korzysta z danej biblioteki, zaimportuj ją do samego modułu funkcji, a nie do modułu podstawowego. Pamiętaj, że całkowity rozmiar tego modułu 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 obu typach aplikacji
Możesz uprościć proces zarządzania projektami aplikacji, korzystając z tej samej modułowej bazy kodu, aby utworzyć zarówno aplikację instalowaną, jak i błyskawiczną.
Projektowanie modułów wielu funkcji
Nawet jeśli Twoja aplikacja ma tylko jeden przepływ pracy i na razie wymaga tylko 1 modułu funkcji, warto zaprojektować ją z kilkoma modułami. Dzięki temu możesz dodawać istniejące moduły do aplikacji bez wpływu na rozmiar pierwotnego modułu funkcji.
Nie skupiaj się na limicie rozmiaru modułu funkcji na początku
Limity rozmiaru modułu funkcji nie mają zastosowania do lokalnie utworzonych plików binarnych. Możesz też opublikować aplikację błyskawiczną na ścieżce testu wewnętrznego, co wymusza limit rozmiaru modułów funkcji do 15 MB. Limit 15 MB obowiązuje tylko na ścieżkach alfa i produkcyjnych.

Aktualizowanie zasobów aplikacji

Niektóre aplikacje, zwłaszcza te z dłuższą historią bazy kodu, zawierają zasoby, których nie używają już ich pliki binarne. Szukając sposobów na zmniejszenie modułów aplikacji, weź pod uwagę te typowe źródła zbędnego kodu.

Zmniejszanie rozmiaru pliku z obrazami

Możesz znacznie zmniejszyć całkowity rozmiar elementów graficznych w aplikacji, używając formatu pliku WebP zamiast PNG. Aplikacja błyskawiczna w Google Play zapewnia pełną obsługę technologii WebP, w tym przezroczystość i kompresję bezstratną, więc jakość obrazu pozostaje taka sama.

Jeśli to możliwe, usuń wszystkie wymagania dotyczące zgodności wstecznej związane z używaniem innych obrazów PNG. Jeśli musisz używać obrazów PNG, umieść je w module używanym do skompilowania i zainstalowania aplikacji.

Usuń nieużywane języki

Jeśli Twoja aplikacja obsługuje wiele języków, ogranicz jak najwięcej 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. Niektórych z nich Twoja aplikacja może nie obsługiwać.

Aby dowiedzieć się więcej, sprawdź, jak usunąć nieużywane alternatywne zasoby, w szczególności nieużywane języki.

Usuń dodatkowe pliki

Twoja aplikacja może już nie korzystać z niektórych zasobów zaimportowanych do projektu. Android Studio przeprowadza w tej sytuacji kontrolę nad Lintem, która pomaga usunąć te zasoby. Aby użyć narzędzia, wykonaj następujące czynności:

  1. Naciśnij Control+Alt+Shift+I (Command+Alt+Shift+I w systemie Mac OS).
  2. W wyświetlonym oknie wpisz "unused resources".
  3. Wybierz opcję Nieużywane zasoby, aby rozpocząć proces sprawdzania wykorzystania zasobów.

Jeśli w aplikacji pozostają duże zasoby, zastanów się, czy można rozpakować je z aplikacji i pobrać jako samodzielne pliki, gdy użytkownik zacznie z niej korzystać. Ta metoda odroczenia wczytywania obrazów wymaga zwykle zmiany w kodzie, ale może znacznie zmniejszyć rozmiar pliku aplikacji błyskawicznej, ponieważ pobiera tylko te zasoby, o które użytkownik jednoznacznie zażądał.

Usuń nieużywane biblioteki

W miarę jak aplikacja zyskuje coraz większe wymagania, może pojawić się zaskakująca liczba zależności, w szczególności jednego z tych typów:

  • Biblioteki natywne: biblioteki zawierające kod natywny, którego aplikacja błyskawiczna nie jest uruchamiana.
  • Zależności pośrednie: biblioteki, od których zależą biblioteki zaimportowane z aplikacji.

Android Studio zawiera kilka przydatnych narzędzi do identyfikowania niepotrzebnych zależności w projekcie aplikacji:

Biblioteki zewnętrzne

Widok Projekt w Android Studio zawiera sekcję Zewnętrzne biblioteki.

Ta sekcja zawiera wszystkie biblioteki, których używa Twoja aplikacja, w tym kod natywny i wszystkie zależności pośrednie. W tym widoku poszukaj nieużywanych lub zduplikowanych bibliotek, których Twoja aplikacja nie potrzebuje.

Analizator plików APK

Aby porównać różne kompilacje, w tym kompilacje aplikacji błyskawicznych, możesz użyć narzędzia Analizator plików APK.

Gdy ustalisz, których bibliotek nie potrzebuje Twoja aplikacja, wyklucz je, dodając wiersze podobne do tych poniżej:

<feature_module>/build.gradle

Odlotowy

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.

Wdróż dostarczanie zasobów do chmury

Jeśli musisz jeszcze bardziej zmniejszyć rozmiar, konieczne może być skorzystanie z dostarczania zasobów w chmurze.