Android P Optimization

- 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

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%.

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.