Warum Inflater in der Listenansicht verwenden?

Ich hatte immer Unklarheiten darüber, warum wir Inflater in Android verwenden müssen. Warum werden sie in ListView für benutzerdefinierte Layouts verwendet (siehe unten)?Was ist ein Inflater?Was ist der Vorteil von Inflater?
public class MobileArrayAdapter extends ArrayAdapter<String> {
    private final Context context;
    private final String[] values;


public MobileArrayAdapter(Context context, String[] values) {
    super(context, R.layout.list_mobile, values);
    this.context = context;
    this.values = values;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater inflater = (LayoutInflater) context
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    View rowView = inflater.inflate(R.layout.list_mobile, parent, false);
    TextView textView = (TextView) rowView.findViewById(R.id.label);
    ImageView imageView = (ImageView) rowView.findViewById(R.id.logo);
    textView.setText(values[position]);

Vielen Dank,