I'm trying to understand how/why some of the processes that are running on my phone (DroidX, stock 2.2 ROM).

It's obvious that 2 likely reasons for a process to start are:

  • A direct action by the user/another program to start it (e.g. click on the icon of an app, or another process launches the .apk explicitly)

  • An Intent is registered by the app, and the event associated with that intent happens.

The question is, are there other reasons/causes/mechanisms by which a process could be started in Android? (aside from Intents or direct launch).

P.S. As a plausible theory, something could be started off of init.rc (being how Android is based off of Linux) but I don't know enough about Android internals to judge if it launches any apps via init.rc

  • Possibly helpful: You can use the Autostarts app to see all the different system events and what apps register for them. May 18 '11 at 17:55
  • @Matthew - I'm going to post a separate question about Autostarts, as a matter of fact, but just as a response to your comment, doesn't Autostarts merely list all registered Intent receivers?
    – DVK
    May 18 '11 at 17:57

A raw native process can be created by any of the usual unix-like mechanisms.

An android activity or service is usually forked off by zygote (in response to an intent), but I think there's an obscure way to start a vm by hand using app_process.

  • "usual unix-like mechanisms" - could you please clarify? I'm interested specifically in what would trigger the start of the process (e.g. some crontab entry? process scheduler respawning recently dead processes? etc...)
    – DVK
    May 18 '11 at 18:24
  • Well there isn't a cron daemon on there right now, but anyone could make an unprivileged one with an ordinary app, or root and install a real one. Ditto inetd (at least for unprivileged ports). And yes, the framework does respawn things it doesn't think should have died. There's really very little restriction on process creation; security is more in terms of it being quite hard to start a process as a userid that's able to do more than be obnoxious with shared resources. May 18 '11 at 20:42
  • could you please clarify in greater detail "the framework does re-spawn things it doesn't think should have died"? That sounds significantly closer to what I was looking for as a plausible reason why some processes keep popping up on my phone.
    – DVK
    May 19 '11 at 2:07
  • @DVK: in some cases background services are terminated prematurely since the foreground application needs more memory, Android may restart the service later to finish the operation.
    – Lie Ryan
    May 19 '11 at 2:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.