3 years into android dev and even today an interviewer could easily roast me based on my knowledge of the basics :""( Please help me rectify it.

Super basic Question : How the app works? Like there happens a lot of things between the user icon click and the app continuously running. I have researched some stuff, and trying to stich that all into a single flow.

So as soon as the app is installed, the system will start showing its launcher icon based on the no. of activities which has the "show launcher icon" metadata( made up name)

The basic flow would be : user/system/ some other party app triggers an entry point -> an entry point starts the launch app execution -> the ui component of an app is launched.

an entry point could be a lot of things created by multiple parties: a launcher icon(created by sytem),a notification(created by activity/other components started by an activity, a widget(created by user) or an action (shown when user tries to open a file of particular type, created by system)

The launch execution would mean starting a process(if not already running)>> starting the application , which would start the called activity >> which would start the required services/receivers/content providers

But somewhere in between there is this lifecycle of an activity which is managed by the application i guess? and application's own lifecycle? who manages that? and then there is this whole concept of context, main thread ,... please expand/ correct ... :/

  • 0
    I am unable to make a connection with a lot of concepts , like the activity/fragment stacks, their lifecycle callbacks , the continuous running ui loop and processes
  • 4
    I would interpret that to mean they want you to explain the app lifecycle.
  • 0
    Build shit. Don't read shit.
  • 1
    If an interviewer asked me "How an app works", then the only correct answer imho is to ask them what the hell they're on about. In interview speak of course:

    "Sure, but that's very broad - what area would you like me to cover? I can go into the app lifecycle, layers between the user and the hardware, frameworks typically used to build an app, or something else entirely?"

    If in doubt, clarify.
Add Comment