Utwórz Androida

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 lub aosp_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 lub husky. 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.