- Rozpoczęcie
- Włącz separację architektur
- Bezstratna kompresja obrazu
- Uwzględniamy pełne połączenie bibliotek
- Wynik
Ostatnio przeczytałem artykuł o Apptractor na temat wpływu wielkości aplikacji na jej pobranie; odniesienie . Znam kilka sposobów na zmniejszenie rozmiaru aplikacji APK, ale ile one pomogą, to było ciekawe pytanie. W przypadku eksperymentów konieczne było znalezienie działającej dużej aplikacji, w której jest coś do zoptymalizowania.
Pomogło mi w tym Xamarin Studio, które daje różne przykłady aplikacji podczas uruchamiania. Wybrałem aplikację Acquaint do przygotowania, kod źródłowy jest dostępny na GitHub przez odniesienie .
Zgodnie z opisem w aplikacji dostępna jest następująca funkcjonalność:
- Wyświetl kontakty
- Wyświetlanie mapy
- Wiadomości tekstowe
- Budowanie tras
- Połączenia i poczta
Zaimplementowano na Xamarin.Forms, Xamarin.Android, Xamarin.iOS, oczywiście jestem zainteresowany natywną implementacją Androida.
Rozpoczęcie
Wydaje mi się, że jestem kapitanem, ale dam najbardziej oczywistą radę, że aplikacja zajmuje mniej miejsca i musi zostać złożona w konfiguracji Release. Tak, dla profesjonalnych programistów jest to powszechna sprawa, ale myślę, że nowi użytkownicy, którzy dopiero co weszli do świata Xamarin, powinni zostać powiadomieni.
Przekonajmy się, jak bardzo nasza aplikacja zajmuje początkowo miejsce.
Przy budowaniu źródeł z repozytorium 29,8 MB - przyzwoity rozmiar. Przejdź do optymalizacji.
Włącz separację architektur
Ponieważ Android jest popularnym systemem, obsługuje wiele architektur, w szczególności ARM, co z kolei obejmuje ARMv8, ARMv7, a także x86, który jest podzielony na 32 i 64 bity. Im więcej architektur zostanie wybranych w projekcie, tym więcej urządzeń uruchomi aplikację. To z kolei dodaje dodatkowe megabajty do APK, podczas gdy twoje urządzenie ARMv8 nigdy nie użyje kodu dla x86, więc logiczne byłoby skompilowanie APK dla każdej architektury, aby zmniejszyć jej rozmiar.
Przejdź do ustawień projektu i sprawdź, które architektury są ustawione dla aplikacji Acquaint.
Jak widać, wszystkie pola wyboru są ustawione, więc opcja „Generuj własny APK dla każdej architektury” będzie przydatna w tej sytuacji.
Ponowne włożenie aplikacji i spojrzenie na rozmiar.
Teraz mamy 5 utworzonych APK, których rozmiar wynosi od 23,9 MB do 24,1 MB, nieźle, udało nam się wygrać 5 MB. Przechodzimy do następnej metody.
Bezstratna kompresja obrazu
Obrazki i różne grafiki są zawsze obecne w aplikacji w postaci ikon, ekranów powitalnych i innych plików png i jpg. Ta grafika zajmuje znaczną część aplikacji i nie zawsze jest zoptymalizowana, meta-informacje mogą być chronione wewnątrz pliku lub mogą być używane metadane lub wysoka głębia kolorów, co po prostu nie jest potrzebne w bieżącym obrazie.
W systemie MacOS używam wielu różnych optymalizatorów obrazu ImageOptim Moim zdaniem jest to najlepsze rozwiązanie, które łączy wiele różnych optymalizatorów, dzięki czemu obraz jest skompresowany do minimalnej wielkości.
Najwygodniejszą rzeczą jest przeciągnięcie folderu i rozpocznie przetwarzanie wszystkich znalezionych plików graficznych w folderze i podfolderach. Po kompresji obraz jest zastępowany przez zoptymalizowaną wersję, co jest bardzo wygodne. Wyobraź sobie, że wszystkie obrazy były przechowywane w osobnym folderze, a następnie musiałbyś przeglądać wszystkie podfoldery i ręcznie układać pliki, co jest bardzo czasochłonne.
Niestety, w systemie Windows nie udało mi się znaleźć dobrego rozwiązania kompresji, pojawiają się dwa problemy, albo zły i niewygodny interfejs, albo kompresja jest bardzo słaba.
Jako bezpłatna usługa kompresji mogę doradzić TinyPNG
I tak, wrzucamy folder projektu do programu, proces kompresji jest długi, szczególnie w przypadku PNG, zależy także od wybranego stopnia kompresji. Po pewnym czasie widzimy wynik:
ImageOptim zaoszczędziliśmy nam dodatkowe 860 KB, zbieramy projekt ponownie i sprawdzamy, czy to pomogło.
Rezultat jest na twarzy, teraz aplikacja zajmuje od 23 MB do 23,3 MB. Poruszam się.
Uwzględniamy pełne połączenie bibliotek
Musisz być ostrożny z tą metodą, ponieważ może to oznaczać, że Twój kod nie będzie używany i wycięty podczas montażu. Użyłem tej metody w jednym z moich projektów, a następnie aplikacja uległa awarii podczas uruchamiania, musiałem majsterkować, aby dowiedzieć się, co poszło nie tak, więc jeśli czas jest ci drogi, albo nie używaj tej metody, albo używaj jej ostatnio, gdy istnieją inne opcje zmniejszenia rozmiar nie pomaga.
Przejdź do ustawień projektu, a następnie wybierz opcję na poniższym zrzucie ekranu.
Jeśli aplikacja po tej opcji spadnie na urządzenie, musisz określić kompilację jako zignorowaną. Jeśli to nie pomogło, to jest to kwestia zespołów systemowych, konieczne jest również dodanie ich do ignorowanych.
Miałem szczęście, po pełnym połączeniu aplikacja uruchomiła i pomyślnie załadowała kontakty.
Zobaczmy, ile to teraz zajmie.
Nowy rozmiar aplikacji od 17,4 MB do 17,6 MB, pełne łączenie działa cuda.
Wynik
Po zastosowaniu wszystkich metod udało mi się skompresować aplikację z 29,8 MB do 17,6 MB, co stanowi nieco ponad 40%! Liczba ta jest ogromna, dzięki tej optymalizacji liczba pobrań aplikacji powinna wzrosnąć.
Niektóre z tych metod dotyczą aplikacji iOS.
I wreszcie kilka przydatnych wskazówek:
- Wyjmij dodatkowe grafiki z zaplecza, po pierwszym uruchomieniu można je pobrać do aplikacji.
- Jeśli aplikacja korzysta z dźwięku, możesz grać z szybkością transmisji, aby zmniejszyć rozmiar
- Podobnie jak w przypadku wideo, ustawienie szybkości transmisji zapewni zwiększenie rozmiaru
Sukcesy w redukcji aplikacji!