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();
};