code: function Api(platform, platformRootDir, events) {
      this.platform = PLATFORM;
      this.root = path.resolve(__dirname, '..');
      this.events = events || ConsoleLogger.get();
      // NOTE: trick to share one EventEmitter instance across all js code
      require('cordova-common').events = this.events;
  
      this._platformJson = PlatformJson.load(this.root, platform);
      this._pluginInfoProvider = new PluginInfoProvider();
      this._munger = new PlatformMunger(this.platform, this.root, this._platformJson, this._pluginInfoProvider);
  
      var self = this;
  
      this.locations = {
          root: self.root,
          www: path.join(self.root, 'assets/www'),
          platformWww: path.join(self.root, 'platform_www'),
          configXml: path.join(self.root, 'res/xml/config.xml'),
          defaultConfigXml: path.join(self.root, 'cordova/defaults.xml'),
          strings: path.join(self.root, 'res/values/strings.xml'),
          manifest: path.join(self.root, 'AndroidManifest.xml'),
          // NOTE: Due to platformApi spec we need to return relative paths here
          cordovaJs: 'bin/templates/project/assets/www/cordova.js',
          cordovaJsSrc: 'cordova-js-src'
      };
  }
docs: 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.