Actualización noviembre 2018
Después de trabajar y bloguear sobre MVC y MVP en Android durante varios años (consulte el cuerpo de la respuesta a continuación), decidí capturar mi conocimiento y comprensión en una forma más completa y fácil de digerir.
Entonces, lancé un video curso completo sobre la arquitectura de aplicaciones de Android. Entonces, si está interesado en dominar los patrones arquitectónicos más avanzados en el desarrollo de Android, consulte este curso completo aquí .
Esta respuesta se actualizó para seguir siendo relevante a partir de noviembre de 2016
Parece que está buscando patrones arquitectónicos en lugar de patrones de diseño .
Los patrones de diseño tienen como objetivo describir un "truco" general que el programador podría implementar para manejar un conjunto particular de tareas recurrentes de software. Por ejemplo: en OOP, cuando existe la necesidad de que un objeto notifique a un conjunto de otros objetos sobre algunos eventos, se puede emplear el patrón de diseño del observador .
Dado que las aplicaciones de Android (y la mayoría de AOSP) están escritas en Java, que está orientado a objetos, creo que tendrá dificultades para buscar un único patrón de diseño OOP que NO se use en Android.
Los patrones arquitectónicos , por otro lado, no abordan tareas de software en particular; su objetivo es proporcionar plantillas para la organización del software en función de los casos de uso del componente de software en cuestión.
Suena un poco complicado, pero espero que un ejemplo aclare: si alguna aplicación se utilizará para obtener datos de un servidor remoto y presentarlos al usuario de manera estructurada, MVC podría ser un buen candidato para su consideración. Tenga en cuenta que no dije nada acerca de las tareas de software y el flujo de programas de la aplicación: simplemente lo describí desde el punto de vista del usuario y surgió un candidato para un patrón arquitectónico.
Como mencionó MVC en su pregunta, supongo que los patrones arquitectónicos son lo que está buscando.
Históricamente, no había pautas oficiales de Google sobre las arquitecturas de las aplicaciones, lo que (entre otras razones) condujo a un desastre total en el código fuente de las aplicaciones de Android. De hecho, incluso hoy en día la mayoría de las aplicaciones que veo todavía no siguen las mejores prácticas de OOP y no muestran una organización lógica clara del código.
Pero hoy la situación es diferente: Google lanzó recientemente la biblioteca Data Binding , que está totalmente integrada con Android Studio e, incluso, lanzó un conjunto de planos de arquitectura para aplicaciones de Android .
Hace dos años era muy difícil encontrar información sobre MVC o MVP en Android. Hoy, MVC, MVP y MVVM se han convertido en "palabras de moda" en la comunidad de Android, y estamos rodeados de innumerables expertos que constantemente intentan convencernos de que MVx es mejor que MVy. En mi opinión, discutir si MVx es mejor que MVy es totalmente inútil porque los términos en sí mismos son muy ambiguos: solo mira las respuestas a esta pregunta y te darás cuenta de que diferentes personas pueden asociar estas abreviaturas con construcciones completamente diferentes.
Debido al hecho de que se inició oficialmente la búsqueda del mejor patrón arquitectónico para Android, creo que estamos a punto de ver salir a la luz varias ideas más. En este punto, es realmente imposible predecir qué patrón (o patrones) se convertirán en estándares de la industria en el futuro; tendremos que esperar y ver (supongo que es cuestión de uno o dos años).
Sin embargo, hay una predicción que puedo hacer con un alto grado de confianza: el uso de la biblioteca de enlace de datos no se convertirá en un estándar de la industria. Estoy seguro de decir eso porque la biblioteca de enlace de datos (en su implementación actual) proporciona ganancias de productividad a corto plazo y algún tipo de pauta arquitectónica, pero hará que el código no sea mantenible a largo plazo. Una vez que surjan los efectos a largo plazo de esta biblioteca, se abandonará.
Ahora, aunque hoy tenemos algún tipo de pautas y herramientas oficiales, yo personalmente no creo que estas pautas y herramientas sean las mejores opciones disponibles (y definitivamente no son las únicas). En mis aplicaciones uso mi propia implementación de una arquitectura MVC. Es simple, limpio, legible y comprobable, y no requiere ninguna biblioteca adicional.
Este MVC no solo es cosméticamente diferente de los demás, se basa en una teoría de que las actividades en Android no son elementos de interfaz de usuario , lo que tiene enormes implicaciones en la organización del código.
Entonces, si está buscando un buen patrón arquitectónico para aplicaciones de Android que siga los principios de SOLID , puede encontrar una descripción de uno en mi publicación sobre los patrones arquitectónicos MVC y MVP en Android .