def shell(command, &block)
      capture = CommandCapture.new(block_given? ? block : nil)
      receiver = Rjb::bind(capture, 'com.android.ddmlib.IShellOutputReceiver')
      @device.executeShellCommand(command.to_s, receiver)
      block_given? ? self : capture.to_s
    end
def shell(command, &block)
      capture = CommandCapture.new(block_given? ? block : nil)
      receiver = Rjb::bind(capture, 'com.android.ddmlib.IShellOutputReceiver')
      @device.executeShellCommand(command.to_s, receiver)
      block_given? ? self : capture.to_s
    end
Executes a shell command on the device, and receives the result.
 @!method shell(command)
 @return [String, self]
 @overload shell(command)
   @param [String] command the command to execute
   @return [String] all results of the command.
 @overload shell(command)
   @param [String] command the command to execute
   @return [self] self
   @yield [line]
   @yieldparam [String] line each line of results of the command.