On Thu, Mar 26, 2009 at 7:25 AM, Stoyan Damov <[email protected]> wrote:
>
> Screw the developer. I'll put myself in the shoes of the user. I have
> launched myself a game. I want it to run at full speed.
> I could care less that a background service, polling RSS feeds have
> just found out that someone posted a new blog entry.
> I'm sure you now understand there's no issue with background apps and
> which is more important.

You've just put yourself deeper in a position where you see your
application as the most important one. Well, in the shoes of the user,
you now have an application (your game) that hurts the entire system.
When your app is running, the user doesn't receive their email any
more, they don't get updates from twitter, latitude doesn't work...
and there will probably be lots of other cases.

If we go down that path, 6 months from now we'll have requests for a
permission that allows background apps to say "I don't want apps to
run in the foreground that prevent background apps from running", and
their request will be just as reasonable as yours: their app doesn't
coexist with yours, so they want to prevent yours from running (just
like you want to prevent theirs from running).

> Now, I realize that this permission should not be that simple - it
> should allow the apps to specify which components are OK to run
> (system components will always run, of course).
> For example, the RSS reader application will want to run itself, and
> this or that service it depends on. I don't see how this would be a
> problem. The permission should simply allow one or more components to
> be listed as dependencies.

It's not as simple as it seems, as you're putting a requirement on
background applications to identify which components they
(transitively) rely on in order to work properly. Imagine that your
app relies on component A, but that (as an implementation detail)
component A relies on component B: now you need component A to
identify that it needs component B, so that component B can also be
made immune to the "kill-by-game" behavior.

I think that we've gone way too far from the original problem. The
original problem as I see it isn't about GCs in other apps, it's about
behaviors that cause "remote" GCs in your game. I think it'd be much
simpler if your game could say "I don't want remote asynchronous GCs",
and it would probably even be more effective. It might turn out to
also be more acceptable design-wise, and easier to implement in the
framework. Better still, since it's a same-process behavior, there's
not even a need to put permissions around it, since from the point of
view of the permission system an app is free to do whatever it wants
in its processes.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to