Establecimiento de un entorno de construcción

Esta sección describe cómo configurar su entorno de trabajo local para compilar los archivos fuente de Android. Debe usar Linux; no se admite la compilación en MacOS o Windows. Tenga en cuenta también el cambio importante en el binario /usr/bin/python .

Para obtener una descripción general de todo el proceso de revisión y actualización del código, consulte Vida útil de un parche .

Elegir una sucursal

Algunos requisitos para el entorno de compilación están determinados por la versión del código fuente que planea compilar. Para obtener una lista completa de las sucursales disponibles, consulte Números de compilación . También puede optar por descargar y compilar el código fuente más reciente (llamado master ), en cuyo caso simplemente omite la especificación de la rama cuando inicializa el repositorio.

Después de seleccionar una rama, siga las instrucciones correspondientes a continuación para configurar su entorno de compilación.

Configuración de un entorno de compilación de Linux

Estas instrucciones se aplican a todas las sucursales, incluida la master .

La compilación de Android se prueba de forma rutinaria internamente en Ubuntu LTS (14.04) y pruebas de Debian. La mayoría de las demás distribuciones deberían tener disponibles las herramientas de compilación necesarias.

Para Gingerbread (2.3.x) y versiones superiores, incluida la rama master , se requiere un entorno de 64 bits. Las versiones anteriores se pueden compilar en sistemas de 32 bits.

Instalación de paquetes necesarios (Ubuntu 18.04)

Necesita una versión de Ubuntu de 64 bits.

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

Instalación de paquetes necesarios (Ubuntu 14.04)

Necesita una versión de Ubuntu de 64 bits (se recomienda 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

Instalación de paquetes necesarios (Ubuntu 12.04)

Puede usar Ubuntu 12.04 para compilar versiones anteriores de Android. La versión 12.04 no es compatible con versiones master o recientes.

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

Instalación de paquetes necesarios (Ubuntu 10.04-11.10)

Ya no se admite la compilación en Ubuntu 10.04-11.10, pero puede ser útil para compilar versiones anteriores de 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

En Ubuntu 10.10:

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

En Ubuntu 11.10:

sudo apt-get install libx11-dev:i386

Configuración del acceso USB

Instale un conjunto predeterminado de reglas udev mantenido por la comunidad para todos los dispositivos Android siguiendo las instrucciones para configurar un dispositivo para el desarrollo .

Usando un directorio de salida separado

De forma predeterminada, la salida de cada compilación se almacena en el subdirectorio out/ del árbol de origen coincidente. Puede anular esto exportando la variable de entorno OUT_DIR . Por ejemplo:

export OUT_DIR=out_mytarget

Esto hará que la salida de la compilación se almacene en el subdirectorio out_mytarget/ del árbol de fuentes. Cuando se utiliza el mismo árbol de origen para compilar para varios destinos, se recomienda utilizar un OUT_DIR independiente para cada destino.

En algunas máquinas con varios dispositivos de almacenamiento, las compilaciones son más rápidas cuando se almacenan los archivos de origen y la salida en volúmenes separados. Para obtener un rendimiento adicional, la salida se puede almacenar en un sistema de archivos optimizado para la velocidad en lugar de la robustez frente a fallas, ya que todos los archivos se pueden regenerar si el sistema de archivos está dañado.

Para configurar esto, exporte la variable OUT_DIR_COMMON_BASE para que apunte a la ubicación donde se almacenarán sus directorios de salida.

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

El directorio de salida para cada árbol de origen independiente lleva el nombre del directorio que contiene el árbol de origen. Por ejemplo, si tiene árboles /source/master1 y /source/master2 y si OUT_DIR_COMMON_BASE está configurado en /output , los directorios de salida son /output/master1 y /output/master2 .

Evite tener varios árboles de origen almacenados en directorios que tengan el mismo nombre, ya que los árboles de origen terminarían compartiendo un directorio de salida, con resultados impredecibles. Esto solo es compatible con Jelly Bean (4.1) y versiones posteriores, incluida la rama master .

Siguiente: Descarga la fuente

¡Tu entorno de compilación está listo! Continúe con la descarga de la fuente .