Optymalizacja wydajności Androida

Postępuj zgodnie z instrukcjami w tej sekcji, aby urządzenia z Androidem minimalizowały zużycie zasobów i optymalizowały wydajność. Skorzystaj też z wielu testów i narzędzi opisanych w sekcji Ocena wydajności, aby w pełni wykorzystać możliwości Androida.

Pamięć podręczna APK

W tym dokumencie opisujemy projekt rozwiązania do buforowania plików APK, które umożliwia szybkie instalowanie wstępnie załadowanych aplikacji na urządzeniu obsługującym partycje A/B. Producenci OEM mogą umieszczać wstępnie załadowane i popularne aplikacje w pamięci podręcznej APK przechowywanej w głównie pustej partycji B na nowych urządzeniach z partycjami A/B bez wpływu na przestrzeń danych widoczną dla użytkownika.

Czas uruchamiania

Android 8.0 umożliwia skrócenie czasu rozruchu dzięki wprowadzeniu kilku ulepszeń w różnych komponentach. W tym dokumencie znajdziesz wskazówki dla partnerów dotyczące skracania czasu uruchamiania na określonych urządzeniach z Androidem.

Zdrowie

Android 9 zawiera android.hardware.health HAL 2.0, czyli uaktualnienie do wersji głównej z HAL health@1.0. Ta nowa warstwa HAL zapewnia lepsze rozdzielenie kodu platformy i kodu dostawcy, większą swobodę dostosowywania przez dostawcę raportów o informacjach o stanie urządzenia oraz więcej informacji o stanie urządzenia niż tylko dane o baterii.

Low memory killer

Proces lmkd w przestrzeni użytkownika ma te same funkcje, ale korzysta z istniejących już mechanizmów jądra do wykrywania i szacowania obciążenia pamięci. Korzysta ze zdarzeń vmpressure generowanych przez jądro, aby otrzymywać powiadomienia o poziomach obciążenia pamięci.

Optymalizacja na podstawie profilu

System kompilacji Androida obsługuje optymalizację opartą na profilu (PGO) Clang w przypadku natywnych modułów Androida, które mają reguły kompilacji blueprint.

Optymalizacja kodu i zasobów R8

System kompilacji Androida używa kompilatora R8 do zmniejszania, optymalizowania i usuwania nieużywanego kodu oraz zasobów z obiektów DEX (android_app, android_test i modułów java_library, które można zainstalować). W przypadku bibliotek statycznych (android_library i statycznych java_library) Soong używa bloku optimize do dołączania i eksportowania reguł zachowywania konsumentów.

Więcej informacji o konfigurowaniu optymalizacji R8 i reguł zachowywania znajdziesz w artykule Optymalizowanie kodu i zasobów platformy za pomocą R8.

Zrzuty zadań

Zrzuty zadań to infrastruktura wprowadzona w Androidzie 8.0, która łączy zrzuty ekranu dla miniatur w aplikacji Ostatnie oraz zapisane powierzchnie z Menedżera okien. Miniatury w sekcji Ostatnie przedstawiają ostatni stan zadania w widoku Ostatnie.

Zapisywanie logów z wyprzedzeniem

Android 9 wprowadza specjalny tryb SQLiteDatabase o nazwie Compatibility WAL (write-ahead logging), który umożliwia bazie danych korzystanie z journal_mode=WAL przy jednoczesnym zachowaniu maksymalnie jednego połączenia na bazę danych.

Menedżer NPU

Android 17 i nowsze wersje obsługują Menedżera jednostki przetwarzania neuronowego (NPU), który koordynuje przydzielanie zasobów, ustala priorytety obciążeń i śledzi stan wykonania, aby zachować stabilność systemu i zoptymalizować wydajność urządzenia.