Konfigurowanie środowiska do tworzenia aplikacji na AOSP (wersja 9.0 lub nowsza)

Zanim pobierzesz i skompilujesz najnowszą gałąź wersji Androida (android17-release) z kodu źródłowego Androida, upewnij się, że Twój sprzęt spełnia niezbędne wymagania i że wymagane oprogramowanie jest prawidłowo zainstalowane. Powinny być Ci też znane te pojęcia:

Git
Git to bezpłatny, rozproszony system kontroli wersji typu open source. Android używa Gita do operacji lokalnych, takich jak rozgałęzianie, zatwierdzanie, porównywanie i edytowanie. Jeśli potrzebujesz pomocy w nauce Gita, zapoznaj się z dokumentacją Gita.
Repo
Repo to nakładka Pythona na Gita, która upraszcza wykonywanie złożonych operacji w wielu repozytoriach Git. Repo nie zastępuje Gita we wszystkich operacjach kontroli wersji, ale ułatwia wykonywanie złożonych operacji Gita. Repo używa plików manifestu do agregowania projektów Git w superprojekcie Androida.
Plik manifestu
Plik manifestu to plik XML, który określa, gdzie w drzewie źródłowym AOSP znajdują się różne projekty Git w źródle Androida.

Wymagania dotyczące urządzenia Google Meet

Stacja robocza programisty powinna spełniać te wymagania sprzętowe:

  • 64-bitowy system x86.

  • co najmniej 400 GB wolnego miejsca na dysku na pobranie i skompilowanie kodu (250 GB na pobranie i 150 GB na skompilowanie);

  • Co najmniej 64 GB pamięci RAM. Do kompilowania Androida Google używa maszyn z 72 rdzeniami i 64 GB pamięci RAM. Przy tej konfiguracji sprzętowej pełna kompilacja Androida zajmuje około 40 minut, a kompilacja przyrostowa – tylko kilka minut. Dla porównania, pełna kompilacja na maszynie z 6 rdzeniami i 64 GB pamięci RAM zajmuje około 6 godzin.

Spełnianie wymagań dotyczących systemu operacyjnego

Na stacji roboczej programisty musi być zainstalowana dowolna 64-bitowa dystrybucja Linuksa z biblioteką GNU C (glibc) w wersji 2.17 lub nowszej.

Instalowanie wymaganych pakietów

Aby utworzyć Androida 11 lub nowszego, musisz używać Ubuntu 18.04 lub nowszego. Aby zainstalować wymagane pakiety dla Ubuntu 18.04 lub nowszego, uruchom to polecenie:

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

To polecenie instaluje m.in. Gita, który służy do pobierania kodu źródłowego AOSP.

Instalowanie wymaganego oprogramowania

Zanim zaczniesz pracować z AOSP, musisz zainstalować OpenJDK, Make, Pythona 3 i Repo. Najnowsza gałąź wersji Androida zawiera gotowe wersje OpenJDK, Make i Pythona 3, więc nie trzeba wykonywać dodatkowych czynności instalacyjnych. W sekcji poniżej znajdziesz instrukcje instalowania Repo.

Repozytorium instalacji

Aby zainstalować Repo, wykonaj te czynności:

  1. Pobierz informacje o bieżącym pakiecie:

    sudo apt-get update
  2. Aby zainstalować program uruchamiający Repo, uruchom to polecenie:

    sudo apt-get install repo

    Program uruchamiający Repo udostępnia skrypt w Pythonie, który inicjuje proces pobierania i pobiera całe narzędzie Repo.

    Jeśli się uda, przejdź do kroku 4.

  3. Opcjonalnie: zainstaluj Repo ręcznie, używając tej serii poleceń:

    export REPO=$(mktemp /tmp/repo.XXXXXXXXX)
    curl -o ${REPO} https://storage.googleapis.com/git-repo-downloads/repo
    gpg --recv-keys 8BB9AD793E8E6153AF0F9A4416530D5E920F5C65
    curl -s https://storage.googleapis.com/git-repo-downloads/repo.asc | gpg --verify - ${REPO} && install -m 755 ${REPO} ~/bin/repo

    Pierwsze 3 polecenia konfigurują plik tymczasowy, pobierają do niego Repo i sprawdzają, czy podany klucz jest zgodny z wymaganym. Jeśli te polecenia zostaną wykonane pomyślnie, ostatnie polecenie zainstaluje program uruchamiający Repo.

  4. Sprawdź wersję programu uruchamiającego Repo:

    repo version

    Dane wyjściowe powinny wskazywać wersję 2.4 lub nowszą, na przykład:

    repo launcher version 2.45
    

Ustawianie alternatywnego katalogu wyjściowego

Domyślnie dane wyjściowe każdej kompilacji są przechowywane w podkatalogu out/ pasującego drzewa źródłowego. Możesz zastąpić ten katalog, eksportując zmienną środowiskową OUT_DIR. Jeśli na przykład chcesz przechowywać dane wyjściowe na innym dysku, możesz wskazać ten dysk w zmiennej OUT_DIR:

export OUT_DIR=my_other_drive

Co dalej?