Android Development Environment: Difference between revisions
Line 6: | Line 6: | ||
= Host PC requirements = | = Host PC requirements = | ||
The host development environment for Android is based on Ubuntu and Debian, please install one of the following | The host development environment for Android is based on Ubuntu and Debian, please install one of the following | ||
based on the matrix below, | |||
{| class="wikitable" | |||
|- | |||
! Android Version !! Recommended Host OS !! Download URL | |||
|- | |||
| Android - Marshmallow 6 or below || Ubuntu 14.04 LTS - 64bit || http://releases.ubuntu.com/14.04/ubuntu-14.04.6-desktop-amd64.iso | |||
|- | |||
| Android - Nougat 7 to Android Oreo - 8|| Ubuntu 16.04 LTS - 64 bit || http://releases.ubuntu.com/16.04/ubuntu-16.04.6-desktop-amd64.iso | |||
|- | |||
| Android - Oreo 8 to Android 9 pie || Ubuntu 18.04 LTS - 64 bit || https://releases.ubuntu.com/18.04/ubuntu-18.04.6-desktop-amd64.iso | |||
|- | |||
| Android - Pie 9 to Android 12 || Ubuntu 20.04 LTS - 64 bit || https://releases.ubuntu.com/focal/ubuntu-20.04.5-desktop-amd64.iso | |||
|} | |||
<br> | <br> | ||
Revision as of 11:24, 23 November 2022
Host PC requirements
The host development environment for Android is based on Ubuntu and Debian, please install one of the following based on the matrix below,
Android Version | Recommended Host OS | Download URL |
---|---|---|
Android - Marshmallow 6 or below | Ubuntu 14.04 LTS - 64bit | http://releases.ubuntu.com/14.04/ubuntu-14.04.6-desktop-amd64.iso |
Android - Nougat 7 to Android Oreo - 8 | Ubuntu 16.04 LTS - 64 bit | http://releases.ubuntu.com/16.04/ubuntu-16.04.6-desktop-amd64.iso |
Android - Oreo 8 to Android 9 pie | Ubuntu 18.04 LTS - 64 bit | https://releases.ubuntu.com/18.04/ubuntu-18.04.6-desktop-amd64.iso |
Android - Pie 9 to Android 12 | Ubuntu 20.04 LTS - 64 bit | https://releases.ubuntu.com/focal/ubuntu-20.04.5-desktop-amd64.iso |
Minimum hardware requirements for the build machine (A physical build machine is recommended):
- CPU: Intel / AMD 2.3 GHz Quad Core
- RAM: 16GB
- Free storage: 500 GB (SSD recommended)
- Internet connectivity
Notes:
- The build process requires ~135GB of free storage space. Before starting a build, make sure you have adequate free space available.
You can create a bootable USB drive for installing the host OS. E.g.
- Using Windows: https://rufus.ie
- Using Linux: https://help.ubuntu.com/community/Installation/FromUSBStick
Install required packages on host PC
Before you begin, make sure you installed correct version of build OS on your build machine. You can verify by using below commands
$ uname -a | grep "x86_64"
You should get output like below
Linux user-desktop 4.15.0-72-generic #81~16.04.1-Ubuntu SMP Tue Nov 26 16:34:21 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Notice the "x86_64" string, if you have installed other (32 bit version) such OS flavor for Android build is not supported currently.
$ sudo apt-get update $ sudo apt-get -y install gnupg flex bison gperf build-essential zip gcc-multilib g++-multilib $ sudo apt-get -y install libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev $ sudo apt-get -y install ccache libgl1-mesa-dev libxml2-utils xsltproc unzip bc $ sudo apt-get -y install uuid uuid-dev zlib1g-dev liblz-dev liblzo2-2 liblzo2-dev lzop git curl $ sudo apt-get -y install u-boot-tools mtd-utils android-tools-fsutils device-tree-compiler gdisk m4 libz-dev
Install the OpenJDK
Android Nougat requires OpenJDK 8.
To install it:
$ sudo apt-get update $ sudo apt-get install openjdk-8-jdk
If your Ubuntu version is missing the package (which shouldn't happen), add the PPA repository and run the previous commands again:
$ sudo add-apt-repository ppa:openjdk-r/ppa
Update the default Java version by running:
$ sudo update-alternatives --config java $ sudo update-alternatives --config javac
Using a docker container
Variscite provides Docker containers that can be used for a development environment as an alternative to using a virtual machine or a dedicated computer.
To learn more, please see Variscite's Docker Build Environment guide.