AOSP używa systemu kompilacji Soong do kompilowania Androida. Soong używa klonu narzędzia GNU Make o nazwie kati i komponentu Ninja systemu kompilacji, aby przyspieszyć kompilacje Androida.
Pliki kompilacji Soong nazywane są plikami projektu i mają nazwę Android.bp. Te pliki są podobne pod względem składni i semantyki do plików BUILD Bazela.
Więcej informacji o formacie pliku Android.bp znajdziesz w artykule Format pliku Android.bp.
Więcej informacji o konwertowaniu plików Make na pliki Android.bp znajdziesz w artykule Porównanie Make i Soong.
Flagi uruchamiania funkcji i flagi kompilacji
Flagi wprowadzania funkcji to flagi binarne używane do odseparowania nieprzetestowanego kodu od kodu przetestowanego. Jeśli utrzymujesz własną kopię gałęzi zewnętrznego rozwoju AOSP, możesz użyć tych flag, aby zachować stabilność skopiowanego kodu. Jeśli przesyłasz kod do publicznej zewnętrznej gałęzi deweloperskiej, osoba sprawdzająca może poprosić Cię o wdrożenie flagi w kodzie.
Flagi kompilacji to stałe ciągi znaków czasu kompilacji, które służą do modyfikowania kompilacji, np. do opcjonalnego uwzględniania biblioteki kodu.
Więcej informacji o różnych gałęziach kodu znajdziesz w artykule Cykl życia wersji.
Flagi uruchamiania funkcji i flagi kompilacji wymagają zmian w plikach kompilacji. Więcej informacji o tych flagach i sposobie ich używania w kompilacji znajdziesz w omówieniu flag wprowadzania funkcji.
Zmniejszanie kodu i zasobów za pomocą R8
Soong używa kompilatora R8 do zmniejszania i optymalizowania elementów docelowych Java i Kotlin, które kompilują kod bajtowy DEX, takich jak android_app, android_test i moduły instalacyjne java_library. W przypadku bibliotek statycznych, takich jak android_library i statyczna java_library, blok optimize dołącza i eksportuje reguły zachowywania konsumenta.
Więcej informacji o konfigurowaniu optymalizacji R8 i reguł zachowywania znajdziesz w artykule Optymalizowanie kodu i zasobów platformy za pomocą R8.