Android Custom View Constructor

Estoy aprendiendo sobre el uso de Vistas personalizadas de lo siguiente:

http://developer.android.com/guide/topics/ui/custom-components.html#modifying

La descripción dice:

Inicialización de clase Como siempre, el super se llama primero. Además, este no es un constructor predeterminado, sino uno con parámetros. EditText se crea con estos parámetros cuando se infla desde un archivo de diseño XML, por lo tanto, nuestro constructor necesita tomarlos y pasarlos también al constructor de la superclase.

¿Hay una mejor descripción? He estado tratando de averiguar cómo deberían ser los constructores y he encontrado 4 posibles opciones (ver ejemplo al final de la publicación). No estoy seguro de qué hacen (o no hacen) estas 4 opciones, por qué debería implementarlas o qué significan los parámetros. ¿Hay una descripción de estos?

public MyCustomView()
{
    super();
}

public MyCustomView(Context context)
{
    super(context);
}

public MyCustomView(Context context, AttributeSet attrs)
{
    super(context, attrs);
} 

public MyCustomView(Context context, AttributeSet attrs, Map params)
{
    super(context, attrs, params);
} 

Respuestas a la pregunta(3)

Su respuesta a la pregunta