Создание среды сборки

В этом разделе описывается, как настроить локальную рабочую среду для создания исходных файлов Android. Вы должны использовать Linux; сборка под MacOS или Windows не поддерживается. Имейте в виду важные изменения в /usr/bin/python двоичном , а также.

Для обзора всего процесса кода проверки и коды обновления см Жизнь пластыря .

Выбираем филиал

Некоторые требования к среде сборки определяются версией исходного кода, который вы планируете компилировать. Полный список доступных ветках см номер сборки . Вы также можете загрузить и построить последний исходный код ( так называемый master ), в этом случае вы просто опускаете спецификацию филиальной при инициализации хранилища.

После выбора ветки следуйте соответствующим инструкциям ниже, чтобы настроить среду сборки.

Настройка среды сборки Linux

Эти инструкции применимы ко всем отраслям, в том числе master .

Сборка Android регулярно тестируется внутри компании на Ubuntu LTS (14.04) и Debian. В большинстве других дистрибутивов должны быть доступны необходимые инструменты сборки.

Для Gingerbread (2.3.x) и более поздние версий, в том числе master ветви, требуется 64-разрядная среда. Более старые версии могут быть скомпилированы на 32-битных системах.

Установка необходимых пакетов (Ubuntu 18.04)

Вам нужна 64-битная версия Ubuntu.

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

Установка необходимых пакетов (Ubuntu 14.04)

Вам нужна 64-битная версия Ubuntu (рекомендуется 14.04).

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip

Установка необходимых пакетов (Ubuntu 12.04)

Вы можете использовать Ubuntu 12.04 для сборки более старых версий Android. Версия 12,04 не поддерживается master или последних версии.

sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

Установка необходимых пакетов (Ubuntu 10.04-11.10)

Сборка на Ubuntu 10.04-11.10 больше не поддерживается, но может быть полезна для сборки более старых выпусков AOSP.

sudo apt-get install git gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc

В Ubuntu 10.10:

sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so

В Ubuntu 11.10:

sudo apt-get install libx11-dev:i386

Настройка доступа по USB

Установка общины поддерживается набор по умолчанию udev правил для всех Android устройств, следуя инструкции в настройки устройства для развития .

Использование отдельного каталога вывода

По умолчанию, выход каждой сборки хранится в out/ подкаталоге исходного дерева согласования.

На некоторых машинах с несколькими устройствами хранения сборки выполняются быстрее при хранении исходных файлов и вывода на отдельных томах. Для дополнительной производительности вывод может быть сохранен в файловой системе, оптимизированной по скорости, а не по устойчивости к сбоям, потому что все файлы могут быть восстановлены, если файловая система повреждена.

Чтобы установить это, экспортировать OUT_DIR_COMMON_BASE переменную точку в место , где будут храниться ваши выходные каталоги.

export OUT_DIR_COMMON_BASE=<path-to-your-out-directory>

Выходной каталог для каждого отдельного исходного дерева назван в честь каталога, содержащего исходное дерево. Например, если у вас есть исходные деревья /source/master1 и /source/master2 и если OUT_DIR_COMMON_BASE установлен в /output , выход каталоги /output/master1 и /output/master2 .

Избегайте хранения нескольких исходных деревьев в каталогах с одинаковыми именами, поскольку исходные деревья в конечном итоге будут использовать общий выходной каталог с непредсказуемыми результатами. Это поддерживается только на Jelly Bean (4.1) и выше, в том числе master - отрасли.

Далее: Загрузите исходный код

Ваша среда сборки в порядке! Приступить к загрузке источника .