Take the 2-minute tour ×
Android Enthusiasts Stack Exchange is a question and answer site for enthusiasts and power users of the Android operating system. It's 100% free, no registration required.

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

share|improve this question
    
Possibly helpful: You can use the Autostarts app to see all the different system events and what apps register for them. –  Matthew Read 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
add comment

1 Answer

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.

share|improve this answer
    
"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. –  Chris Stratton 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
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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