Aggiornamento novembre 2018
Dopo aver lavorato e blog su MVC e MVP in Android per diversi anni (vedi il corpo della risposta di seguito), ho deciso di acquisire le mie conoscenze e la comprensione in una forma più completa e facilmente digeribile.
Quindi, ho pubblicato un corso video completo sull'architettura delle applicazioni Android. Quindi, se sei interessato a padroneggiare i modelli architettonici più avanzati nello sviluppo di Android, dai un'occhiata a questo corso completo qui .
Questa risposta è stata aggiornata per rimanere pertinente a novembre 2016
Sembra che tu stia cercando modelli architettonici piuttosto che modelli di design .
I modelli di progettazione mirano a descrivere un "trucco" generale che il programmatore potrebbe implementare per gestire un determinato insieme di attività software ricorrenti. Ad esempio: in OOP, quando è necessario che un oggetto informi una serie di altri oggetti su alcuni eventi, è possibile utilizzare il modello di progettazione dell'osservatore .
Poiché le applicazioni Android (e la maggior parte di AOSP) sono scritte in Java, che è orientato agli oggetti, penso che avrai difficoltà a cercare un singolo modello di progettazione OOP che NON viene utilizzato su Android.
I modelli architettonici , d'altra parte, non affrontano particolari attività del software, ma mirano a fornire modelli per l'organizzazione del software basati sui casi d'uso del componente software in questione.
Sembra un po 'complicato, ma spero che un esempio chiarisca: se qualche applicazione verrà utilizzata per recuperare i dati da un server remoto e presentarli all'utente in modo strutturato, MVC potrebbe essere un buon candidato per la considerazione. Si noti che non ho detto nulla sulle attività del software e sul flusso del programma dell'applicazione: l'ho appena descritto dal punto di vista dell'utente ed è emerso un candidato per un modello architettonico.
Da quando hai citato MVC nella tua domanda, immagino che i motivi architettonici siano ciò che stai cercando.
Storicamente, non c'erano linee guida ufficiali da parte di Google sulle architetture delle applicazioni, che (tra le altre ragioni) hanno portato a un disordine totale nel codice sorgente delle app Android. In effetti, anche oggi la maggior parte delle applicazioni che vedo non seguono ancora le migliori pratiche di OOP e non mostrano una chiara organizzazione logica del codice.
Ma oggi la situazione è diversa: Google ha recentemente rilasciato la libreria Data Binding , che è completamente integrata con Android Studio e, persino, ha lanciato una serie di progetti di architettura per applicazioni Android .
Due anni fa è stato molto difficile trovare informazioni su MVC o MVP su Android. Oggi, MVC, MVP e MVVM sono diventati "parole d'ordine" nella comunità Android e siamo circondati da innumerevoli esperti che cercano costantemente di convincerci che MVx è migliore di MVy. A mio avviso, discutere se MVx sia migliore di MVy è totalmente inutile perché i termini stessi sono molto ambigui - basta guardare le risposte a questa domanda e capirai che persone diverse possono associare queste abbreviazioni a costrutti completamente diversi.
A causa del fatto che è stata ufficialmente avviata la ricerca del miglior modello architettonico per Android, penso che stiamo per vedere diverse altre idee venire alla luce. A questo punto, è davvero impossibile prevedere quale modello (o modelli) diventeranno standard di settore in futuro - dovremo aspettare e vedere (immagino che si tratti di un anno o due).
Tuttavia, c'è una previsione che posso fare con un alto grado di confidenza: l'uso della libreria Data Binding non diventerà uno standard del settore. Sono fiducioso di dirlo perché la libreria Data Binding (nella sua attuale implementazione) fornisce guadagni di produttività a breve termine e una sorta di linea guida per l'architettura, ma renderà il codice non mantenibile a lungo termine. Una volta che affioreranno gli effetti a lungo termine di questa biblioteca, questa verrà abbandonata.
Ora, anche se oggi abbiamo una sorta di linee guida e strumenti ufficiali, personalmente, non penso che queste linee guida e strumenti siano le migliori opzioni disponibili (e sicuramente non sono le uniche). Nelle mie applicazioni utilizzo la mia implementazione di un'architettura MVC. È semplice, pulito, leggibile e testabile e non richiede librerie aggiuntive.
Questo MVC non è solo esteticamente diverso dagli altri, si basa su una teoria secondo cui le attività in Android non sono elementi dell'interfaccia utente , che ha enormi implicazioni sull'organizzazione del codice.
Quindi, se stai cercando un buon modello architettonico per applicazioni Android che segua i principi SOLID , puoi trovare una descrizione di uno nel mio post sui modelli architettonici MVC e MVP in Android .