Let's discuss about the system UI start the process.
So in this section we will go through some of the classes which are responsible for the system UI startup.
So here is a high level overview of how the system UI is started.
So as you can see here, the zygote process starts the system server.
The system server in turn starts the system UI and the system UI finally initializes all the system
UI components.
So this is how the system UI really starts.
If you haven't heard about zygote, it's one of the processes which starts during the Android process.
So it's one of the first Android process to get started and all the rest of the processes it started
from the cycle and the system server is one of the most important process which zygote starts and the
systems are always responsible for a lot of other things.
The system server also starts all the services within Android and it is also responsible for starting
the system UI.
So on a very high level.
So this is the process.
So the cycle is started by kernel, the zygote starts system server and system server is responsible
for starting all the services, including System UI app.
And finally, the system UI actually initializes all the system UI components like navigation, bar
status, bar host and all other components.
Now let's dig a little bit deeper into that.
So here is a sequence diagram of how the system UI gets started.
So as you can see here we have Amos, which is nothing but activity management service, and then we
have the system server which is responsible for starting a lot of services and including system UI app.
And then we have the system UI application here, which is basically a class and the system UI service,
this is again a class.
We'll have a look at this class and then the system UI itself.
So the first step is that the system server receives signal from cycle.
So this diagram shows the process starting from system server.
So once the system server got the signal from cycle, it calls this particular function start other
services and the start of the services center or start system UI function and this starts a similar
function will create an instance of the system UI application and the create of this class is triggered.
The system UI application extends the application method.
So we'll have a look at these classes in the next sections.
But for now, keep in mind that system UI application extends the application class and it has an own
create function which gets triggered when it is instantiated.
And after this on Create the Activity Management Service receives this trigger.
It calls the START service function and it calls the system UI service and the system UI calls the own
create.
It has an own create function which gets executed and this will call the start service if needed from
the system UI application and then from system UI application bolster start method which finally triggers
the system UI.
So this is the overall sequence diagram of how that works.