constructor (platform, platformRootDir, events) {
        this.platform = PLATFORM;
        this.root = platformRootDir;

        setupEvents(events);

        const appMain = path.join(this.root, 'app', 'src', 'main');
        const appRes = path.join(appMain, 'res');

        this.locations = {
            root: this.root,
            www: path.join(appMain, 'assets', 'www'),
            res: appRes,
            platformWww: path.join(this.root, 'platform_www'),
            configXml: path.join(appRes, 'xml', 'config.xml'),
            defaultConfigXml: path.join(this.root, 'cordova', 'defaults.xml'),
            strings: path.join(appRes, 'values', 'strings.xml'),
            themes: path.join(appRes, 'values', 'themes.xml'),
            colors: path.join(appRes, 'values', 'colors.xml'),
            manifest: path.join(appMain, 'AndroidManifest.xml'),
            build: path.join(this.root, 'build'),
            javaSrc: path.join(appMain, 'java')
        };

        this._builder = require('./builders/builders').getBuilder(this.root);
    }
Class, that acts as abstraction over particular platform. Encapsulates the
  platform's properties and methods.

Platform that implements own PlatformApi instance _should implement all
  prototype methods_ of this class to be fully compatible with cordova-lib.

The PlatformApi instance also should define the following field:

* platform: String that defines a platform name.
@class Api