코드가 이해가 안되서요 ㅠ.ㅠ 고수님들 해석좀 해주세요 ㅠㅠ

public class TouchTest extends Activity implements OnTouchListener
{
 TextView tvStatus;
 Canvas2D canvas;
 
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
      super.onCreate(savedInstanceState);
      //setContentView(R.layout.main);
     
      LinearLayout layout = new LinearLayout(this);
      layout.setOrientation( LinearLayout.VERTICAL );

  LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
    LinearLayout.LayoutParams.FILL_PARENT,
    LinearLayout.LayoutParams.WRAP_CONTENT );
  layout.setLayoutParams( param );       
     
      tvStatus = new TextView(this); 
      layout.addView( tvStatus );
      tvStatus.setText( "Touch Status" );
     
      canvas = new Canvas2D( this );
      ViewGroup.LayoutParams canvasParam = new ViewGroup.LayoutParams(
        ViewGroup.LayoutParams.FILL_PARENT,
        ViewGroup.LayoutParams.FILL_PARENT );
      layout.addView( canvas, canvasParam );
     
      canvas.setOnTouchListener( this );
     
      setContentView( layout );
  }
 
  class Canvas2D extends View
  {
  public Canvas2D(Context context)
  {
   super(context);
  }
   
  @Override
  public void onDraw( Canvas canvas )
  {
       // Canvas 배경 설정
          canvas.drawColor( Color.parseColor("#888888") );   
  }
  }

 public boolean onTouch( View v, MotionEvent event )
 {
  if ( v == canvas )
  {
   Log.i( "event", "Canvas2D onTouch" );
   
   switch (event.getAction())
   {
   case MotionEvent.ACTION_DOWN:
    {
     String strMsg;
     strMsg = "ACTION_DOWN X: " + event.getX() + " Y:" + event.getY();
     tvStatus.setText( strMsg );
    }
    break;
    
   case MotionEvent.ACTION_MOVE:
    {
     String strMsg;
     strMsg = "ACTION_MOVE X: " + event.getX() + " Y:" + event.getY();
     tvStatus.setText( strMsg );
    }
    break;
    
   case MotionEvent.ACTION_UP:
    {
     String strMsg;
     strMsg = "ACTION_UP X: " + event.getX() + " Y:" + event.getY();
     tvStatus.setText( strMsg );
    }
    break;    
   }   
  }
  return true;
 }
}