¿Cuál es el concepto detrás de R.java?

En android R.java se usa para proporcionar acceso a los recursos definidos en archivos XML. Para acceder al recurso necesitamos invocar.findViewById() Método que pasa en la identificación del recurso a ser recuperado.

Esto es similar a Spring, donde los beans se definen en un contexto XML y se obtienen utilizando el contexto de la aplicación.context.getBean("beanId")

Esto proporciona un acoplamiento suelto ya que los beans se definen externamente y se pueden cambiar sin hacer modificaciones al código.

Esto me tiene confundido. Aunque lo que hace Android es similar a la primavera, ¿qué ventaja ofrece?

¿Cuál es el punto de tener un R.java intermedio de todos modos? No podríamos simplemente adquirir recursos directamente de XML mediante el uso de un lector de recursos / contexto de aplicación. p.ej.findViewById("resourceId")No hay ningún acoplamiento suelto. Dado que las referencias en R.java se generan automáticamente, ¿cómo se puede eliminar un recurso y colocar uno nuevo?¿Qué patrón de diseño sigue (si hay uno)?¿No sería mejor tener recursos inyectados usando IOC (como Roboguice)? ¿Por qué entonces Google decidió darnos una forma tan extraña de trabajar con recursos?

Perdona mi ignorancia. Soy un desarrollador de Java novato que intenta demasiadas cosas a la vez. :-) Gracias por todos los comentarios.

Respuestas a la pregunta(4)

Su respuesta a la pregunta