Steroid Container + microservices = Android

Surely by now everyone know about microservices. I’ve worked as backend engineers for quite number of years before immersing myself in Android completely. Recently I was comparing both world and it struck me that Android is in fact a container full of microservices. Let’s look into this further:

* Async — Everything (almost everything) inside Android are running asynchronously. You use AsyncTask, Runnable, Service, etc to enable different level of processing required by your apps

* Event and notification — Android make use of Intent extensively allowing different part of the operating system to communicate with your apps and vice versa. Binder the central piece of communication between different parts of Android holds the key for the async communication that is happening inside your device. I love to call Binder as the ‘Traffic Cop’ inside Android that will decide whether communication traffic are allowed.

* Database — SQLite is provided internally in Android allowing data to be stored locally so this is a no brainer and similar to what we see in other app world.

* microservices — Internally there are LOTS of services running inside Android. Allowing apps to interface with different part of Android such as audio, video, camera, network, etc

* API — Developing Android app is possible because of the SDK (or the support library), which provide the ‘contract’ that you have to agree in order to make your app works inside Android

* Security — We all know how important security is inside Android especially when it comes to interprocess communication and many other things that involved data. All this are provided by Android and it’s SDK too.

After looking at all the above I think it’s fair to conclude that Android is indeed a container on steroid full of microservices.