Android MVP Architecture
0. What is an MVP?
MVP is a Model-View-Presenter in short. It is a derivative from Model-View-Controller (MVC) software architectural pattern. The main concern about MVP structure is that it separates the view from the backend logic. Because Android [doesn't care] about which pattern to be used when developing, the community developer itself has to debate on which architecture to use.
It is well suited in Android because we needed it for easy testability, at least that's what I see when developing an app based on this structure. Just to let you know, this article only covers on how to implement the layering structure WITHOUT testing suite and dependency injection.
It is gonna be plain and simple to understand how it works under the hood. You can structure it any way you want but the basic idea is that view updates "decision" is done by the Presenter via View.