Zmniejszanie rozmiaru aplikacji

Niewielki rozmiar aplikacji jest bezpośrednio związany z pobieraniem, zwłaszcza rynki wschodzące ze słabą jakość połączenia sieciowego lub małą siecią Szybkość działania. Może to prowadzić do obniżenia częstotliwości korzystania z aplikacji, co z kolei obniża i zasięg odbiorców. Istnieje jednak wiele sposobów, aby Ci w tym pomóc. i zmniejszyć rozmiar aplikacji.

Sprawdzone metody

Prześlij aplikację jako pakiet Android App Bundle

Najprostszy sposób na natychmiastowe zmniejszenie rozmiaru aplikacji podczas publikowania w Google Prześlij aplikację jako pakiet Android App Bundle, czyli nowego formatu publikowania, który obejmuje cały skompilowany kod aplikacji zasobów, a tym samym opóźnia wygenerowanie pliku APK i podpisanie go w Google Play.

Zmniejsz rozmiar kodu środowiska wykonawczego

Poszukaj kodu, którego aplikacja nie używa w czasie działania, np. kodu za pomocą klas lub automatycznie wygenerowanego kodu. Optymalizatory kodu, takie jak R8 pomaga zoptymalizować i zmniejszyć rozmiar kodu, ale ale nie potrafią obsługiwać kodu chronionego przez stałe czasy działania. Zastąp sprawdzenie ze stałymi czasu kompilacji, co pozwala jak najlepiej wykorzystać różne narzędzi. Możesz włączyć zmniejszanie kodu i zasobów w pliku konfiguracji Gradle:

android {
    buildTypes {
        getByName("release") {
            isMinifyEnabled = true
            isShrinkResources = true
        }
    }
}

Usuń niepotrzebne układy

Scal nieużywane układy z niewielkimi zmianami w interfejsie i usuń wszystkie niepotrzebne układy scalone, aby zmniejszyć ogólny rozmiar kodu aplikacji. Dodatkowo możesz dynamicznie gdy tylko jest to możliwe, renderuj układy i widoki. Pozwala to uniknąć rysowania statycznego i stosować alternatywne układy bez dodatkowych nakładów technicznych.

Oceń ponownie rzadko używane funkcje

Optymalizację pod kątem Androida (wersja Go) przez wyłączenie funkcji, które mają niską liczbę aktywnych użytkowników dziennie. Przykładami są usuwanie złożonych animacji, dużych plików GIF i żadnych innych elementów estetycznych. niezbędna do powodzenia aplikacji.

Wykorzystaj dynamiczne dostarczanie

Play Feature Delivery używa zaawansowanych funkcji możliwości pakietów aplikacji, dzięki czemu pewne funkcje dostarczane warunkowo lub pobierane na żądanie. Możesz używać modułów funkcji z dostawą niestandardową. Wyjątkową zaletą modułów funkcji jest możliwość dostosować sposób i czas pobierania różnych funkcji aplikacji urządzeniach z Androidem 5.0 (poziom interfejsu API 21) lub nowszym.

Zmniejsz rozmiar tekstu do tłumaczenia

Do usunięcia możesz użyć właściwości resConfigs w systemie Android Gradle alternatywnych plików zasobów, których aplikacja nie potrzebuje. Jeśli używasz tagu biblioteka zawierająca zasoby językowe (takie jak AppCompat czy Google Play) usług), aplikacja będzie zawierać wszystkie przetłumaczone ciągi tekstowe w bibliotece. niezależnie od tłumaczenia aplikacji. Jeśli chcesz zachować tylko plik cookie języków oficjalnie obsługiwanych przez Twoją aplikację, możesz wybrać te języki za pomocą właściwości resConfig. Wszystkie zasoby dla nieokreślonych języków są usunięto.

Aby ograniczyć zasoby językowe tylko do angielskiego i francuskiego, możesz edytować defaultConfig jak pokazano poniżej:


android {
    defaultConfig {
        ...
        resConfigs "en", "fr"
    }
}

Użyj tłumaczenia selektywnego

Jeśli danego ciągu znaków nie widać w interfejsie aplikacji, nie musisz tego robić przetłumaczyć. ciągi tekstowe do debugowania, komunikaty o wyjątkach, lub adresy URL powinny być literałami łańcuchowymi w kodzie, a nie zasobach.

Nie musisz na przykład tłumaczyć adresów URL.

<string name="car_frx_device_incompatible_sol_message">
  This device doesn\'t support Android Auto.\n
  &lt;a href="https://support.google.com/androidauto/answer/6395843"&gt;Learn more&lt;/a&gt;
</string>

Możesz rozpoznać &lt; i &gt, ponieważ to są znaki zmiany znaczenia dla < i >. Są one potrzebne, ponieważ trzeba dodać do nich tag <a> <string>, kompilator zasobów Androida usuwa je, ponieważ nie rozpoznaje tagu. Oznacza to jednak, że tłumaczysz kod HTML tagi i adres URL w 78 językach. Zamiast tego możesz usunąć kod HTML:

<string name="car_frx_device_incompatible_sol_message">
         This device doesn\'t support Android Auto.
</string>

Łączenie natywnych plików binarnych z wspólnymi zależnościami

Jeśli aplikacja ma różne implementacje natywnego interfejsu Java (JNI) ze wspólnymi zależnościami, rośnie liczba różnych plików binarnych plik APK nie może zawierać zbędnych komponentów. Możesz połączyć kilka plików binarnych JNI w jeden plik binarny JNI, oddzielając pliki Java i JNI. Może to znacznie zmniejszyć rozmiar pliku APK.