Hola,
a mi parecer, estás usando un buen enfoque para plantear la app.
Si estás generando el XML programáticamente, podrías cambiarlo por JSON, que transmite menos datos, aunque pierdes semántica y es un poco más difícil de debuggear. Para el entorno que planteás en el que habrá varios usuarios concurrentes, creo que las desventajas del JSON compensarán por la velocidad y rendimiento del servidor.
Si estás tomando el XML de un RSS existente o similar, habría que ver si vale la pena el esfuerzo de achicar los datos a transmitor versus cachearlos.
En lo personal, revisaría el diseño de la interfaz: las imágenes quedan muy bien, pero mucha gente querrá ahorrarse la descarga. Se podrá hacer que las imágenes se vean solo cuando el usuario quiere, o mejor todavía, que en la configuración de la app sea el usuario quien determine si las queire ver con los titulares, con la noticia completa o por demanda.
Otra optimización posible es agregar al XML o JSON un timestamp del envío. Con esto, podrías guardar lo que recibís localemnte, por ejemplo en SQLite, y solo refrescarlo si pasaron X minutos de la última descarga. Poder ver datos off-line es algo bastante deseable. Se puede agregar el tiempo en minutos a la configuración de la app y también ponerle un botón que fuerce el refresco de la información por demanda.
Para ver rendimiento y consumo de recursos, no es complicado tomar el tiempo desde que se llama a la carga de los datos hasta que termina y revisar el uso de RAM de la APP... acá cuando hacen falta estas cosas la mostramos en algún lugar de la interfaz, o con un toast() que luego no pasa a producción. Es simple pero muy efectivo para ver la app andando cuando no estás desarrollando y viendo estos valores por la consola de debbugin de Eclipse.
En este thread de SO se muestran formas de acceder a la RAM: http://stackoverflow.com/questions/2298208/how-to-discover-memory-usage-of-my-application-in-android
Get VM Heap Size by calling:
Runtime.getRuntime().totalMemory();
Get Allocated VM Memory by calling:
Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
Get VM Heap Size Limit by calling:
Runtime.getRuntime().maxMemory()
Get Native Allocated Memory by calling:
Debug.getNativeHeapAllocatedSize();
Saludos!