На этой странице описано, как настроить разработку для 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.
ГНУ Линукс
- 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 10.10 (Yosemite) или более поздняя версия с Xcode 4.5.2 и инструментами командной строки.
- Android 5.x: Mac OS X v10.8 (Mountain Lion) с Xcode 4.5.2 и инструментами командной строки
ЯДК
Андроид 7.0 – Андроид 8.0:
- Убунту: OpenJDK 8.
- Mac OS X: JDK 8u45 или выше.
Android 5.x (Lollipop) – Android 6.0 (Marshmallow):
- Убунту: 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.
ГНУ Линукс
- Android 2.3.x – Android 4.4: Ubuntu 12.04 (точный)
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 сделать
Для 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
ЯДК
- Android 2.3.x – Android 4.4.x:
- Убунту: Java JDK 6.
- Mac OS X: Java JDK 6.
JDK для Linux
Проект Android с открытым исходным кодом (AOSP) поставляется с готовыми версиями OpenJDK в prebuilts/jdk/
поэтому дополнительная установка не требуется.
Более ранние версии Android требуют отдельной установки JDK. В Ubuntu используйте OpenJDK
Для Ubuntu 15.04 и выше
Запустите следующее:
sudo apt-get update
sudo apt-get install openjdk-8-jdk
Для Ubuntu ЛТС 14.04
Для Ubuntu 14.04 нет доступных поддерживаемых пакетов OpenJDK 8. Пакеты 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