Postępuj zgodnie z instrukcjami na tej stronie, aby utworzyć Androida.
Konfigurowanie środowiska kompilacji
Ze swojego katalogu roboczego pobierz skrypt envsetup.sh
do ustawienia
do tworzenia środowiska kompilacji.
source build/envsetup.sh
Ten skrypt importuje kilka poleceń, które umożliwiają pracę z Androidem
kodu źródłowego, w tym poleceń użytych na tej stronie. Aby wyświetlić źródło
skryptu, patrz
platform/build/envsetup.sh
Aby wyświetlić wbudowaną pomoc, wpisz hmm
.
Wybierz cel
Zanim zaczniesz tworzyć Androida, musisz określić cel do stworzenia. Cel
odzwierciedla platformę docelową, na którą tworzysz. Aby zidentyfikować
środowiska docelowego, użyj polecenia lunch
, a po nim ciąg znaków reprezentujący
wartość docelową. Na przykład:
lunch aosp_cf_x86_64_phone-trunk_staging-userdebug
Wyświetl bieżącą wartość docelową
Aby zobaczyć bieżące ustawienia lunchu, uruchom polecenie:
echo "$TARGET_PRODUCT-$TARGET_RELEASE-$TARGET_BUILD_VARIANT"
Ciąg znaków reprezentujący obiekt docelowy ma ten format:
lunch product_name-release-build_variant
Komponenty tego ciągu znaków to:
product_name to nazwa produktu, którego chcesz użyć kompilacja, na przykład
aosp_cf_x86_64_phone
lubaosp_husky
. Twój konkretny product_name może korzystać z własnego formatu na urządzeniu, ale format, z którego korzysta Google w przypadku swoich urządzeń, składa się z tych elementów:aosp
odnosi się do platformy open source Androida.- (opcjonalnie) Parametr
cf
jest uwzględniany, gdy środowisko docelowe ma być uruchamiane w Emulator mątwy. - Architektura i sprzęt (kryptonim), np.
x86_64_phone
lubhusky
. czyli kryptonim Pixela 8 Pro. Lista kryptonimów Google urządzeń, zobacz Kryptonimy urządzeń.
release ma wartość
trunk_staging
.Część build_variant ciągu znaków może być jedną z tych wartości: 3 wartości w tej tabeli:
build_variant Opis user
Ten wariant kompilacji zapewnia ograniczony dostęp do zabezpieczeń i jest odpowiedni do zastosowań produkcyjnych. userdebug
Ten wariant kompilacji pomaga deweloperom urządzeń poznać wydajność i moc wersji, które są w fazie opracowywania. Podczas programowania za pomocą kompilacji userdebug
postępuj zgodnie ze wskazówkami dotyczącymi debugowania użytkowników.eng
Ten wariant kompilacji ma krótszy czas kompilacji i najlepiej nadaje się do codziennego programowania, jeśli nie zależy Ci na wydajności i mocy.
Jeśli uruchomisz lunch
bez argumentów, zobaczysz listę typowych wartości docelowych.
Możesz też utworzyć własne docelowe ciągi znaków, składając elementy argumentu
docelowy ciąg znaków, korzystając z informacji na tej stronie oraz kryptonimów
które reprezentują określony sprzęt Google
Kryptonimy urządzeń.
Kompilowanie kodu
Aby utworzyć środowisko docelowe, uruchom to polecenie. W zależności od specyfikacji Twojej stacji roboczej pierwsza kompilacja może zająć od godziny za kilka godzin. Kolejne kompilacje zajmują znacznie mniej czasu.
$ m
Zobaczysz najpierw podsumowanie środowiska docelowego i kompilacji środowisko:
============================================
PLATFORM_VERSION_CODENAME=VanillaIceCream
PLATFORM_VERSION=VanillaIceCream
PRODUCT_INCLUDE_TAGS=com.android.mainline
TARGET_PRODUCT=aosp_arm
TARGET_BUILD_VARIANT=eng
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=generic
HOST_OS=linux
HOST_OS_EXTRA=Linux-6.5.13-1rodete2-amd64-x86_64-Debian-GNU/Linux-rodete
HOST_CROSS_OS=windows
BUILD_ID=AOSP.MAIN
OUT_DIR=out
============================================
Dane wyjściowe kompilacji pojawią się w $OUT_DIR
. Jeśli
na potrzeby tworzenia różnych celów, każda kompilacja docelowa pojawia się
$OUT_DIR
Polecenie m
tworzy się na górze drzewa, więc możesz uruchomić m
z poziomu drzewa
podkatalogi. Jeśli masz ustawioną zmienną środowiskową TOP
, polecenie m
z niego korzysta. Jeśli TOP
nie jest skonfigurowany, polecenie m
wyszukuje drzewo
w bieżącym katalogu, próbując znaleźć początek drzewa.
Polecenie m
może obsługiwać zadania równoległe z argumentem -jN
. Jeśli nie chcesz
podasz argument -j
, system kompilacji automatycznie wybierze zadanie równoległe
które uważa za optymalne dla Twojego systemu.
Zamiast całego obrazu urządzenia możesz utworzyć określone moduły według listy
nazwy modułów w wierszu poleceń m
. Oprócz tego polecenie m
udostępnia
kilka pseudocelów, nazywanych celami. Na przykład m nothing
nie tworzy
a także analizuje i zweryfikuje strukturę kompilacji. Aby uzyskać listę prawidłowych
cele, wpisz m help
.
Rozwiązywanie problemów z błędami kompilacji (8.0 lub starsze)
Jeśli tworzysz wersję AOSP 8 lub starszą, m
może się przerwać, gdy napotka
z Twoją wersją środowiska Java. Na przykład może pojawić się taki komunikat:
************************************************************
You are attempting to build with the incorrect version
of java.
Your version is: WRONG_VERSION.
The correct version is: RIGHT_VERSION.
Please follow the machine setup instructions at
https://source.android.com/source/initializing.html
************************************************************
Oto prawdopodobne przyczyny i rozwiązania:
- Nie udało się zainstalować prawidłowego pakietu JDK określonego w Sekcje JDK Przygotowanie do programowania AOSP (2.3–8.0) .
- W ścieżce pojawia się inny zainstalowany wcześniej pakiet JDK. Dołącz na początku ustaw pakiet JDK na początku ścieżki lub usuń problematyczny plik JDK.