На этой странице обсуждается, как настроить разработку для Android 8.0 и более ранних версий. Чтобы узнать, как собрать приложение для Android 9.0 и более поздних версий, см . раздел «Настройка для разработки AOSP» .
Настройка для разработки AOSP (5.0 - 8.0)
Для Android 5.0–8.0 рассмотрите возможность использования прилагаемого Dockerfile , чтобы упростить установку всех необходимых пакетов.
Операционные системы
Android обычно собирается с использованием GNU Linux. Также возможна сборка Android в виртуальной машине на неподдерживаемых системах, таких как Mac OS X.
Google рекомендует сборку в GNU Linux. Система сборки Android обычно запускает ART на сборочной машине для предварительной компиляции системных DEX-файлов. ART работает только в Linux, поэтому система сборки пропускает этот этап предварительной компиляции в операционных системах, отличных от Linux, что приводит к снижению производительности сборки Android.
GNU Linux
- Android 6.0 - Android 8.0: Ubuntu 14.04 (надежный)
- Android 5.x: Ubuntu 12.0
Mac OS X (Intel/x86)
- Android 6.0 - AOSP 8.0: Mac OS X v10.10 (Yosemite) или более поздняя версия с Xcode 4.5.2 и инструментами командной строки
- Android 5.x: Mac OS X v10.8 (Mountain Lion) с Xcode 4.5.2 и инструментами командной строки
JDK
Android 7.0 - Android 8.0:
- Ubuntu: OpenJDK 8
- Mac OS X: JDK 8u45 или выше
Android 5.x (Lollipop) - Android 6.0 (Marshmallow):
- Ubuntu: OpenJDK 7
- Mac OS X: jdk-7u71-macosx-x64.dmg
Настройка для разработки AOSP (2.3 - 4.4)
В этом разделе приведены некоторые рекомендации по настройке Android 2.3 – Android 4.4.
Операционные системы
Android обычно собирается с использованием GNU Linux. Также возможна сборка Android в виртуальной машине на неподдерживаемых системах, таких как Windows.
Google рекомендует сборку в GNU Linux. Система сборки Android обычно запускает ART на сборочной машине для предварительной компиляции системных DEX-файлов. ART работает только в Linux, поэтому система сборки пропускает этот этап предварительной компиляции в операционных системах, отличных от Linux, что приводит к снижению производительности сборки Android.
GNU Linux
- Android 2.3.x - Android 4.4: Ubuntu 12.04 (Precise)
Mac OS X (Intel/x86)
- Android 4.1.x - Android 4.4.x: Mac OS X v10.6 (Snow Leopard) или Mac OS X v10.7 (Lion) и Xcode 4.2 (инструменты разработчика Apple)
- Android 2.3 - Android 4.0.x: Mac OS X v10.5 (Leopard) или Mac OS X v10.6 (Snow Leopard) и Mac OS X v10.5 SDK
GNU make
Для Android 4.1.x – 4.4 используйте GNU make (gmake) 3.82 . Для Android 2.3 – 4.0.x вернитесь с gmake 3.82 , чтобы избежать ошибок сборки.
Xcode и другие пакеты
Для Mac OS X версии 10.8 или ниже установите Xcode с сайта разработчиков Apple . Если вы ещё не зарегистрированы как разработчик Apple, для загрузки необходимо создать Apple ID.
Если вы используете Mac OS X v10.4, также установите Bison:
POSIXLY_CORRECT=1 sudo port install bison
Для MacPorts выполните:
POSIXLY_CORRECT=1 sudo port install gmake libsdl git gnupg
Для Homebrew выдайте:
brew install gmake libsdl git gnupg2
Откат с gmake 3.82
В Android 4.0.x и ниже gmake 3.82 содержит ошибку, препятствующую сборке Android. Вы можете установить версию 3.81 с помощью MacPorts, выполнив следующие действия:
Отредактируйте
/opt/local/etc/macports/sources.conf
и добавьтеfile:///Users/Shared/dports
над строкойrsync
.Создайте каталог
dports
:mkdir /Users/Shared/dports
В новом каталоге
dports
выполните:svn co --revision 50980 http://svn.macports.org/repository/macports/trunk/dports/devel/gmake/ devel/gmake/
Создайте индекс портов для вашего нового локального репозитория:
portindex /Users/Shared/dports
Установите более низкую версию gmake:
sudo port install gmake @3.81
JDK
- Android 2.3.x - Android 4.4.x:
- Ubuntu: Java JDK 6
- Mac OS X: Java JDK 6
JDK для Linux
Android Open Source Project (AOSP) поставляется с готовыми версиями OpenJDK в prebuilts/jdk/
поэтому дополнительная установка не требуется.
Для более ранних версий Android требуется отдельная установка JDK. В Ubuntu используйте OpenJDK.
Для Ubuntu 15.04 и выше
Выполните следующее:
sudo apt-get update
sudo apt-get install openjdk-8-jdk
Для Ubuntu LTS 14.04
Поддерживаемых пакетов OpenJDK 8 для Ubuntu 14.04 нет. Пакеты OpenJDK 8 из Ubuntu 15.04 успешно используются в Ubuntu 14.04. Пакеты более поздних версий (например, для 15.10, 16.04) не работают в 14.04 при использовании следующих инструкций.
Загрузите пакеты
.deb
для 64-битной архитектуры с сайта old-releases.ubuntu.com-
openjdk-8-jre-headless_8u45-b14-1_amd64.deb
с SHA2560f5aba8db39088283b51e00054813063173a4d8809f70033976f83e214ab56c0
-
openjdk-8-jre_8u45-b14-1_amd64.deb
с SHA2569ef76c4562d39432b69baf6c18f199707c5c56a5b4566847df908b7d74e15849
-
openjdk-8-jdk_8u45-b14-1_amd64.deb
с SHA2566e47215cf6205aa829e6a0a64985075bd29d1f428a4006a80c9db371c2fc3c4c
-
При желании проверьте контрольные суммы загруженных файлов, сверив их со строкой SHA256, указанной для каждого пакета из шага 1. Например, с помощью инструмента
sha256sum
:sha256sum {downloaded.deb file}
Установите пакеты:
sudo apt-get update
Запустите
dpkg
для каждого из загруженных вами файлов.deb
. Возможны ошибки из-за отсутствия зависимостей:sudo dpkg -i {downloaded.deb file}
Чтобы исправить отсутствующие зависимости:
sudo apt-get -f install
(Необязательно) Обновите версию Java по умолчанию
При желании, для ранее упомянутых версий Ubuntu обновите версию Java по умолчанию, выполнив:
sudo update-alternatives --config java
sudo update-alternatives --config javac
Установите необходимые пакеты для Ubuntu 14.04
Выполните следующие команды для установки необходимых пакетов для 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$
Установите необходимые пакеты для Ubuntu 12.04
Выполните следующие команды для установки необходимых пакетов для 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