What are the advantages of Android apps being single threaded? I read a statement on http://developer.android.com that said:


  When an application is launched, the system creates a thread of execution for the application, called "main." This thread is very important because it is in charge of dispatching events to the appropriate user interface widgets, including drawing events. It is also the thread in which your application interacts with components from the Android UI toolkit. The system does not create a separate thread for each instance of a component. All components that run in the same process are instantiated in the UI thread, and system calls to each component are dispatched from that thread.


I just wanted to know why Android has opted for this single threaded model architecture and not gone for multi-threaded. What are the advantages that they are getting out of this?
Android apps aren't single-threaded. Although there's one main thread as described in the documentation you quoted, apps can start as many other threads as they need.

The advantage of all GUI interactions being on one thread is that the GUI code can be simpler, faster, and more predictable, because GUI state isn't being changed concurrently from different threads. It also makes thread-safety easier for app developers by providing a message queue, similar to those found in other OSes' GUI frameworks. The app author just needs to make sure all long operations are performed in background threads, sending messages back to the main thread to update the GUI, and that way the GUI remains responsive all the time.