/** * Original work provided by defunct 'autoandroid-1.0-rc5': http://code.google.com/p/autoandroid/ * New Derivative work required to repackage for wider distribution and continued development. * Copyright (C) SAS Institute * General Public License: http://www.opensource.org/licenses/gpl-license.php **/ package org.safs.android.auto.tools; import java.io.IOException; import java.util.ArrayList; import java.util.Enumeration; import java.util.Iterator; import java.util.Map; import java.util.Properties; import java.util.Set; import org.safs.android.auto.lib.AndroidTools; import org.safs.android.auto.lib.Process2; /** * Also see alternative org.safs.android.auto.lib.StartEmulator */ public class emulator { private static void help(){ System.out.println("Valid arguments:"); System.out.println(" -help (this message)"); System.out.println(" -sdk <full path to sdk root dir> (required if ANDROID_SDK not set)"); System.out.println(" any other args (-avd <avd>) passed along to the emulator invocation."); } /** * Used for launching an emulator via a separate Java process. * This is sometimes necessary when the emulator won't otherwise launch on a platform. * @param args<br> * -sdk path_to_sdk_root_dir (may be required)<br> * any additional args to pass along to the emulator--especially the -avd. */ public static void main(String [] args) throws InterruptedException, IOException { String toolroot = null; String avd = null; Properties props = System.getProperties(); Enumeration e = props.keys(); String key; System.out.println("SYSTEM PROPERTIES:"); while(e.hasMoreElements()){ key = (String) e.nextElement(); System.out.println(" "+ key +"="+ props.getProperty(key)); } System.out.println("ENVIRONMENT VARS:"); Map map = System.getenv(); Set set = map.keySet(); Iterator it = set.iterator(); while(it.hasNext()){ key = (String) it.next(); System.out.println(" "+ key +"="+ map.get(key)); } System.out.println("COMMAND ARGS:"); for(int i=0;i<args.length;i++) System.out.println(" "+ args[i] ); // new to Java 6 //System.out.println("SYSTEM CONSOLE:"+ System.console()); ArrayList emuargs = new ArrayList(); if(args != null && args.length > 0){ String arg1; try{ for(int i=0;i<args.length;i++){ arg1 = args[i]; if(arg1.equalsIgnoreCase("-sdk")){ toolroot = args[++i]; }else if(arg1.equalsIgnoreCase("-help")){ help(); return; }else { emuargs.add(arg1); } } }catch(Exception any){ help(); return; } }else{ help(); return; } AndroidTools sdk = AndroidTools.get(); if(toolroot != null && toolroot.length()> 0) sdk.setAndroidHome(toolroot); Process2 proc = sdk.emulator(emuargs); proc.forwardOutput(); proc.waitForSuccess(); } }