Configurar para desenvolvimento AOSP (2.3 - 8.0)

Esta página discute como configurar o desenvolvimento com Android 8.0 ou versões anteriores. Para saber como criar o Android 9.0 e versões posteriores, consulte Configuração para desenvolvimento AOSP .

Configurar para desenvolvimento AOSP (5.0 - 8.0)

Para Android 5.0 a 8.0, considere usar o Dockerfile incluído para facilitar a instalação de todos os pacotes necessários.

Sistemas operacionais

O Android normalmente é construído com um GNU Linux. Também é possível construir o Android em uma máquina virtual em sistemas não suportados, como o Mac OS X.

O Google recomenda construir no GNU Linux. O sistema de compilação Android normalmente executa o ART na máquina de compilação para pré-compilar os arquivos DEX do sistema. O ART só pode ser executado no Linux, portanto, o sistema de compilação ignora essa etapa de pré-compilação em sistemas operacionais não Linux, resultando em uma compilação do Android com desempenho reduzido.

GNU Linux

  • Android 6.0 - Android 8.0: Ubuntu 14.04 (confiável)
  • Android 5.x: Ubuntu 12.0

MacOS X (Intel/x86)

  • Android 6.0 - AOSP 8.0: Mac OS X v10.10 (Yosemite) ou posterior com Xcode 4.5.2 e ferramentas de linha de comando
  • Android 5.x: Mac OS X v10.8 (Mountain Lion) com Xcode 4.5.2 e ferramentas de linha de comando

JDK

Configurar para desenvolvimento AOSP (2.3 - 4.4)

Esta seção fornece algumas orientações sobre como configurar o Android 2.3 até o Android 4.4.

Sistemas operacionais

O Android normalmente é construído com um GNU Linux. Também é possível construir o Android em uma máquina virtual em sistemas não suportados, como o Windows.

O Google recomenda construir no GNU Linux. O sistema de compilação Android normalmente executa o ART na máquina de compilação para pré-compilar os arquivos DEX do sistema. O ART só pode ser executado no Linux, portanto, o sistema de compilação ignora essa etapa de pré-compilação em sistemas operacionais não Linux, resultando em uma compilação do Android com desempenho reduzido.

GNU Linux

  • Android 2.3.x - Android 4.4: Ubuntu 12.04 (preciso)

MacOS X (Intel/x86)

  • Android 4.1.x - Android 4.4.x: Mac OS X v10.6 (Snow Leopard) ou Mac OS X v10.7 (Lion) e Xcode 4.2 (Apple Developer Tools)
  • Android 2.3 - Android 4.0.x: Mac OS X v10.5 (Leopard) ou Mac OS X v10.6 (Snow Leopard) e o SDK do Mac OS X v10.5

Marca GNU

Para Android 4.1.x a 4.4 use GNU make (gmake) 3.82 . Para Android 2.3 a 4.0.x, reverta do gmake 3.82 para evitar erros de compilação.

Xcode e outros pacotes

Para Mac OS X v10.8 ou inferior, instale o Xcode no site do desenvolvedor da Apple . Se você ainda não estiver registrado como desenvolvedor Apple, deverá criar um ID Apple para fazer o download.

Se estiver usando o Mac OS X v10.4, instale também o Bison:

POSIXLY_CORRECT=1 sudo port install bison

Para MacPorts, emita:

POSIXLY_CORRECT=1 sudo port install gmake libsdl git gnupg

Para Homebrew, emita:

brew install gmake libsdl git gnupg2

Reverter do gmake 3.82

No Android 4.0.xe inferior, o gmake 3.82 tem um bug que impede a compilação do Android. Você pode instalar a versão 3.81 usando MacPorts com estas etapas:

  1. Edite /opt/local/etc/macports/sources.conf e adicione file:///Users/Shared/dports acima da linha rsync .

  2. Crie o diretório dports :

    mkdir /Users/Shared/dports
    
  3. No novo diretório dports , execute:

    svn co --revision 50980 http://svn.macports.org/repository/macports/trunk/dports/devel/gmake/ devel/gmake/
    
  4. Crie um índice de porta para seu novo repositório local:

    portindex /Users/Shared/dports
    
  5. Instale a versão inferior do gmake:

    sudo port install gmake @3.81
    

JDK

JDK para Linux

O Android Open Source Project (AOSP) vem com versões pré-construídas do OpenJDK em prebuilts/jdk/ portanto, nenhuma instalação adicional é necessária.

Versões anteriores do Android requerem uma instalação separada do JDK. No Ubuntu, use OpenJDK

Para Ubuntu 15.04 e superior

Execute o seguinte:

sudo apt-get update
sudo apt-get install openjdk-8-jdk

Para Ubuntu LTS 14.04

Não há pacotes OpenJDK 8 suportados disponíveis para Ubuntu 14.04. Os pacotes Ubuntu 15.04 OpenJDK 8 foram usados ​​com sucesso com o Ubuntu 14.04. Versões de pacotes superiores (por exemplo, aquelas para 15.10, 16.04) não funcionam em 14.04 usando as instruções a seguir.

  1. Baixe os pacotes .deb para arquitetura de 64 bits em old-releases.ubuntu.com

    • openjdk-8-jre-headless_8u45-b14-1_amd64.deb com SHA256 0f5aba8db39088283b51e00054813063173a4d8809f70033976f83e214ab56c0
    • openjdk-8-jre_8u45-b14-1_amd64.deb com SHA256 9ef76c4562d39432b69baf6c18f199707c5c56a5b4566847df908b7d74e15849
    • openjdk-8-jdk_8u45-b14-1_amd64.deb com SHA256 6e47215cf6205aa829e6a0a64985075bd29d1f428a4006a80c9db371c2fc3c4c
  2. Opcionalmente, confirme as somas de verificação dos arquivos baixados em relação à string SHA256 listada com cada pacote na etapa 1. Por exemplo, com a ferramenta sha256sum :

    sha256sum {downloaded.deb file}
    
  3. Instale os pacotes:

    sudo apt-get update
    
  4. Execute dpkg para cada um dos arquivos .deb que você baixou. Pode produzir erros devido à falta de dependências:

    sudo dpkg -i {downloaded.deb file}
    
  5. Para corrigir dependências ausentes:

    sudo apt-get -f install
    

(Opcional) Atualize a versão Java padrão

Opcionalmente, para as versões do Ubuntu mencionadas anteriormente, atualize a versão padrão do Java executando:

sudo update-alternatives --config java
sudo update-alternatives --config javac

Instale os pacotes necessários para Ubuntu 14.04

Execute os seguintes comandos para instalar os pacotes necessários para o Ubuntu 14.04:

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

Instale os pacotes necessários para Ubuntu 12.04

Execute os seguintes comandos para instalar os pacotes necessários para o Ubuntu 12.04:

$ 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 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