- Kolejna świetna wydajność w Google I / O, dedykowana optymalizacji w środowisku wykonawczym Androida P. Prezentacja obejmuje trzy punkty:
- Kotlin;
- pamięć;
- profile chmur.
Z Kotlinem wszystko okazało się dość proste, mówcy mówili o wprowadzeniu kontroli zerowych do funkcji wywołujących, optymalizacji pętli i kilku innych rzeczy.
Pozostałe dwie części raportu są o wiele bardziej interesujące. Po pierwsze, CompactDex jest specjalnym kompaktowym formatem pliku wykonywalnego Dex (przechowuje kod aplikacji Android). W systemie Android P format CompactDex służy do przechowywania kodu aplikacji wyodrębnionego z APK, a także do przechowywania kodu aplikacji w pamięci RAM.
Średnio CompactDex zmniejszył rozmiar kodu aplikacji zapisanego w pamięci urządzenia o 11,6%. Dotyczy to zarówno pamięci stałej, jak i operacyjnej, ale nie dotyczy samych aplikacji dystrybuowanych za pośrednictwem rynków.
Również w systemie Android P ulepszono kompilator JIT, a raczej jego część, która jest odpowiedzialna za optymalizację lokalizacji danych w pamięci RAM, gdy metody najczęściej używane i potrzebne podczas ładowania aplikacji są umieszczane bliżej początku pamięci RAM procesu. Przypomnę, że od siódmej wersji Androida korzysta się z hybrydowego kompilatora JIT / AOT, który najpierw uruchamia aplikację przy użyciu maszyny wirtualnej, a następnie tłumaczy aplikację na instrukcje maszynowe.
![- Kolejna świetna wydajność w Google I / O, dedykowana optymalizacji w środowisku wykonawczym Androida P](/wp-content/uploads/2019/12/pl-android-p-optimization-1.png)
Jak przetwarzane jest zainstalowane APK w Android O i Android P
Wreszcie profile chmur. To jest prostszy, ale skuteczny pomysł. Podczas wykonywania dowolnej aplikacji Android buduje profil swojej wydajności. W przyszłości taki profil pozwala środowisku wykonawczemu „dostroić się” do aplikacji i uruchomić ją szybciej.
Ideą Cloud Profiles jest zbieranie danych profilujących z różnych urządzeń, ich agregacja i dołączanie do aplikacji w Google Play jako pojedynczego pliku profilującego. Gdy użytkownik pobierze aplikację, otrzyma również plik profilowania, a system będzie mógł go użyć do przyspieszenia uruchomienia aplikacji. W przyszłości profil zostanie uzupełniony i rozbudowany przez samo urządzenie.
W swoich własnych aplikacjach Google system profilowania w chmurze przyniósł podstawowy wzrost szybkości uruchamiania o około 20%.
![](/wp-content/uploads/2019/12/pl-android-p-optimization-2.png)
Jak działają profile chmurowe
Podczas testowania systemu autorzy wyciągnęli interesujące wnioski: średnio tylko 14% kodu aplikacji trafiło do danych profilujących, co oznacza, że pozostałe 86% najprawdopodobniej nie jest w ogóle używane. Ale niekoniecznie jest to martwy kod, mogą to być funkcje wyłączone na różnych wersjach Androida lub na przykład kod debugowania wyłączony w wersji wydania.