Why does Android boot so relatively slow? This question is of concern to me (and perhaps many out there) because there is no spinning part in my phone.
My phone has a quad core, 3 GB of RAM, and so much storage space, all SSD-like in nature, with amazing read/write speeds.
With all this, Android (both Android 4.4 (KitKat) and Android 5.0 (Lollipop)) takes some 80 seconds to boot to completion. It takes way less on Ubuntu using systemd or Upstart. (Some users report less than 10 seconds booting time using Ubuntu with systemd and some 20 seconds when using Upstart, with specifications like Intel Core i5 and RAM of 8 GB.)
So, what makes Android boot so slow? And is there anything as a user, I can do to speed up the booting process?
According to the booting process explained (What is the boot process of an Android device?), there doesn't seem to be much differences in the overall booting process compared to a conventional OS like Ubuntu. Where does Android go wrong in the process?
Few years back, I worked on Android boot time optimization, as a Android developer. Obviously, as part of this work, we first needed to analyse where Android spends time during booting. 

Below is the brief findings:

Hardware used : OMAP3430 Board which is like development board on which Stock Android is flashed. On actual commercial/production device, there will be additional specific hardware.
To visualize the boot time, we used a developer tool called bootchart

The most time spend by Android is in following 2 areas:


Zygote process. When android OS is started it will start Zygote process, it preloads classes to create
a shared memory area for applications. This work of proloading of java classes
takes @23 secs for its completion.


Why? Because The zygote class preloading is essential for good performance of the system after boot. So once classes are loaded of all apps, then run-time of app is much faster.


Package manager service. 
In logcat output, we can see that Package manager scans 4 directories. 
/system/app, 
/system/framework, 
/data/app, 
/data/app-private. 


Next, there is a component called Activity Manager which start differents services such as Location service, Telephony service etc. And it takes nearly 11-12 sec to finish this.

Why? Because, The package scan can in theory do some caching of its results after first boot and may check for security vulnerabilities.

If you add up these 2 times, it is about 35 Seconds 

You may ignore these numbers in Today's day and age, but the point these number indicate is where Android AOSP code spends time during boot. OEMs have their own set of hardware which varies device to device.

Of course, there are other hardware and software initializations that Android needs to do after these 2 time consuming steps, which can stretch boot time further.


  And is there anything as a user, I can do to speed up the booting
  process?


Not much I guess. The Android developer community and OEMs are still working on expediting the boot time but as you may imagine, it is not all that easy and making changes to optimize boot time may end up causing more app load time during normal operations, as hinted by Android framework engineer.