- application activity
- application service
- application UI system
- application sdk tool
- JVM
1 activity
the first JVM instance => zygote
app_main
->AndroidRuntime(now start jvm instance,and start to load zyogteinit class and execute main method)
->zygoteinit(register socket,preloadclass and resource preload)
->start system server
-> wait for socket connection and do something…
systemserver
->init all system service
zygote accept request from activitymanager,and fork a new process,and execute activitythread in new process.
Activitymanagerservice—>
2 service
3 UI system
activity UI
-> every window the top view is decor view,phonewindow has viewroot and windowsmanager which windowmanager stands for windowmanagerservice
-> view root incldues Iwindow and a surface ,while IWindow receive callback from wms,and surface point to the buffer created by windowsmanagerservice.
surface system
from picture above that we can see the buffer is in the process of systemserver,which contains wms.
render process
the surface memory is allocated by gralloc module. and surfaceflinger take charge of mix different layers, and render framebuffers to device by using opengl methods.