static void Main( string[] arguments ) { var args = new Arguments ( arguments ); AndroidDebugBridge bridge = AndroidDebugBridge.CreateBridge(Path.Combine ( Environment.GetEnvironmentVariable ( "ANDROID_SDK" ), "platform-tools\\adb.exe" ),true); foreach ( var item in Enum.GetNames ( typeof ( Actions ) ) ) { var actionName = item.Replace ( '_', '-' ).ToLower().Trim(); if ( args.ContainsKey ( actionName ) ) { Actions action = (Actions)Enum.Parse ( typeof ( Actions ), item, true ); switch ( action ) { case Actions.Devices: GetDevices ( ); break; case Actions.Monitor: bridge.DeviceChanged += delegate ( object sender, DeviceEventArgs e ) { System.Console.WriteLine ( "Changed: {0}\t{1}", e.Device.SerialNumber, e.Device.State ); }; bridge.DeviceConnected += delegate ( object sender, DeviceEventArgs e ) { System.Console.WriteLine ( "{0}\t{1}", e.Device.SerialNumber, e.Device.State ); }; bridge.DeviceDisconnected += delegate ( object sender, DeviceEventArgs e ) { System.Console.WriteLine ( "{0}\t{1}", e.Device.SerialNumber, e.Device.State ); }; System.Console.ReadLine ( ); break; case Actions.Start_Server: StartServer ( ); break; case Actions.Kill_Server: break; default: break; } try { AndroidDebugBridge.DisconnectBridge ( ); bridge.Stop ( ); } catch ( IOException e ) { System.Console.WriteLine ( e.ToString ( ) ); // ignore } return; } } PrintUsage ( ); }