알짜만 배우는 안드로이드 프로그래밍을 보면서 하나씩 따라 하고있는데요.

책예제중에서 
Spinner 위젯의 이벤트를 구현해주는 부분이었는데 인자로 넘겨진 AdapterView<?> 이게 무슨 의미 인가요?  <?>

1.
public void onItemSelected(AdapterView<?> parent,View v, int position, long id) {
selection.setText(items[position]);
}


2.  
ArrayAdapter<String> aa=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,items);
위 예제 에선  <String> 의미가?  ArrayAdapter 가 string형이라는 의미인가요?

초보의 마음을 헤아려  궁금중을  풀어주시면 고맙겠습니다. 혹시  3. ArrayAdapter 클래스가 머하는건지 아시면 아무거나 설명해주시면 고맙겟습니다.   제가 이해하고있는정도는 어떤 컴포넌트를 제작할때 안드로이드가 제공하지않은 컴포넌트를 만들때  사용하는 클래스 이정도로 알고있는데 맞게 알고있는건지 - -? 책을 보고있는데 아직 이해가 팍 안돼네요. 다시한번 읽어봐야겠습니다.