export function android()

in lib/cmds/initialize.ts [228:280]


export function android(
    sdkPath: string, apiLevels: string[], architectures: string[], platforms: string[],
    acceptLicenses: boolean, version: string, oldAVDs: string[], logger: Logger,
    verbose: boolean): void {
  let avdDescriptors: AVDDescriptor[];
  let tools = ['platform-tool', 'tool'];
  if ((Config.osType() == 'Darwin') || (Config.osType() == 'Windows_NT')) {
    tools.push('extra-intel-Hardware_Accelerated_Execution_Manager');
  }

  logger.info('android-sdk: Downloading additional SDK updates');
  downloadAndroidUpdates(sdkPath, tools, false, acceptLicenses, verbose)
      .then(() => {
        return setupHardwareAcceleration(sdkPath);
      })
      .then(() => {
        logger.info(
            'android-sdk: Downloading more additional SDK updates ' +
            '(this may take a while)');
        return downloadAndroidUpdates(
            sdkPath,
            ['build-tools-24.0.0'].concat(
                getAndroidSDKTargets(apiLevels, architectures, platforms, oldAVDs)),
            true, acceptLicenses, verbose);
      })
      .then(() => {
        return getAVDDescriptors(sdkPath);
      })
      .then((descriptors: AVDDescriptor[]) => {
        avdDescriptors = descriptors;
        logger.info('android-sdk: Configuring virtual device hardware');
        return sequentialForEach(avdDescriptors, (descriptor: AVDDescriptor) => {
          return configureAVDHardware(sdkPath, descriptor);
        });
      })
      .then(() => {
        return sequentialForEach(avdDescriptors, (descriptor: AVDDescriptor) => {
          logger.info('android-sdk: Setting up virtual device "' + descriptor.name + '"');
          return makeAVD(sdkPath, descriptor, version, verbose);
        });
      })
      .then(() => {
        return q.nfcall(
            fs.writeFile, path.resolve(sdkPath, 'available_avds.json'),
            JSON.stringify(avdDescriptors.map((descriptor: AVDDescriptor) => {
              return descriptor.name;
            })));
      })
      .then(() => {
        logger.info('android-sdk: Initialization complete');
      })
      .done();
};