Purpose

Cordova is cross platform for building applications for multiple smartphones OSes such as Android and iPhone's IOS.
It ustilises mostly HTML, CSS and Javascript and is easy to pick up.

Cordova is the open source version of Phonegap,
and is all you need when starting out developing apps.
Phonegap do provide some nice bells and whistles
when you are really advanced, but I am nowhere needing that yet.

Android provide a free development SDK for many OSes to build applications for Android based mobiles.
At a later stage it would make sense to also initially test your application with Apple's IOS devices, but it is more restrictive in setting up initially. Due to market share the other platforms (Windows, Symbian, etc) can wait.

Together they provide an environment to develop mobile apps locally that is separate from your actual machine.

Vagrant Install

You need to install a Virtual Machine provider first. I always use VirtualBox.
You can install via packages from VirtualBox's and Vagrant's download pages.

Vagrant on OSX

OSX X11

If you are running Mac OSX and not Linux then
you need to install the X11 support for OSX.
They are no longer installed by default but Apple provide a simple install
via XQuartz.
It allows X11 applications from a Vagrant VM to be displayed in OSX.

Android update

Updating the SDK is how to download all the platform files for each version of Android.
You don't have to download all of them as Cordova only supports older versions
with more than 5% market share and only the tools they need.

First to see which are available. Note the ids so which can be used to install each section.

vagranthost$ android list sdk --no-ui --all --extended

Then we apply the filters relevant for us, split across a few commands for readability.
You will need to accept a few Android license prompts.

You need to find the target id for the device image(s) just downloaded.

vagranthost$ android list targets;

Note the id of the target with a Tag/ABIs that does not say no ABIs, use that one.
Sometimes you also have to specify the Abi if there are several images (ARM,x86,etc) available
per Android platform version.