code: def get_instances_with_configs(configs):
      
      results = []
      for c in configs:
          try:
              serial = c.pop('serial')
          except KeyError:
              raise Error(
                  'Required value "serial" is missing in AndroidDevice config %s.'
                  % c)
          is_required = c.get(KEY_DEVICE_REQUIRED, True)
          try:
              ad = AndroidDevice(serial)
              ad.load_config(c)
          except Exception:
              if is_required:
                  raise
              ad.log.exception('Skipping this optional device due to error.')
              continue
          results.append(ad)
      return results
docs: Create AndroidDevice instances from a list of dict configs.
  
      Each config should have the required key-value pair 'serial'.
  
      Args:
          configs: A list of dicts each representing the configuration of one
              android device.
  
      Returns:
          A list of AndroidDevice objects.