Ultimately, I think it boils down to a few things in a nutshell (and my guess is that we agree here):
A) The user should have a good understanding of which applications are hindering performance (running smoothness. "Why is my home screen so jerky?") B) The user should have a good understanding of which applications are hindering battery life C) The user's anxiety or feeling in control or being comfortable is a goal but not at the expense of the right technological decision. Then I suspect these may be more of the points of disagreement: D) It's up to the developer of an application to offer the user controls to tweak performance sapping or battery draining. E) A user uninstalling an app that performs poorly and offers no controls to fix unwanted execution is preferable to a user living with the application and periodically killing it. F) If the user has good insight into A) and B) above they should have no need to be able look "under the hood" of the phone to see how it's operating. Then I made some comments in-line On Oct 29, 1:28 am, mort <m...@sto-helit.de> wrote: > On 29 Okt., 04:49, Eric F <ericfrie...@gmail.com> wrote: > > > I think there are two problems here, both of them psychological and a > > problem adapting from the desktop. > > Regarding the problem "when the hell is an app doing something when I > don't see it", it's not just psychological... This is a separate problem of notification. The notification APIs already have good ways to notify users when something happens. And if an app doesn't notify then the user needs to be able to be able to find out that it's draining performance in some other way. I was trying to suggest that RAM management and RAM management only on a self managing device is the psychological placebo. > > My recommended solution, in all APIs and OS screens that report > > "active applications" should only show/return applications that are > > consuming more than an idle amount of CPU, not just any application > > that has a PID. > > If you'd do that, you'd get the same result as listed in "running > services". Android stops *every* app that doesn't have a running > service. I don't believe this is entirely true. If you want more of a guarantee that your process keeps running without a foreground activity you must use a service, but I don't think onPause/onStop automatically stops all your threads immediately (I could be wrong). If you go to settings -> applications -> manage application -> running tab, I think you will see something very different from running services. > That's where another "psychological problem adapting from the desktop" > comes in: People are used to use task managers for managing *their* > tasks, like, I've got Word, a browser, and a file manager running, and > want to switch between them regulary. Long press home combined with pressing an applications icon accomplish already have a parallel for this. > That's why Bob and me proposed the task manager with status > information, which I extended with ways to "kick" apps from a "user > task list" without changing anything about the actual system task > management. So simply a user reconfigurable list of most recently used apps. Sounds like a reasonably harmless placebo. > And then there's the problem with AlarmManager: If the app's not too > badly written or doing really long lasting stuff, you'll rarely see it > in such a task manager, nontheless it will regulary do something that > might drain your battery or slows down the device. Your mixing problems. Asking "what's eating my battery life" is a different question from "what's running". My sole argument is that users should never ask "What processes exist on this system". Because that's not helpful and confuses the user, because some apps shouldn't be considered running simply because they are cached in memory. The battery life problem is a lot more complicated than a "what's running" problem. Android needs some serious improvements in this area, but I think they know that. > > 2) People associate, just like on the desktop, not wanting a function > > of an application to quitting the application. Earlier mort was > > suggesting the same thing. Twitter should have an "exit" button so > > that a user who wants it to temporarily stop fetching tweets can do > > so. This is wrong. If the user wants it to stop temporarily retrieving > > tweets there should be a button that says "disable background updates" > > in the application.. > > That would technically be correct, but isn't that just talking about > words? There are lots of technically wrong terms to make things easier > for users already. So why not stay with "exit" or "stop", which seems > to be interpreted (sufficiently) correct by most users? "Disable > background updates" (or any other "background work") is long and too > technical for most users. Android's too close to a nerd system in some > regards anyway... Yes it is, and the problem is not a technical one, so I think the solution is apt. The concept of "exiting" is no more. The two new concepts are "Take me back to the beginning of the application" (because state is always saved, so one can't quit an application and restart it to get to the beginning), and "Don't do some stuff when you're not in the foreground", of course developers are responsible for implementing these in their applications or users will get frustrated and yearn for an "exit". But "exit" is no longer the right concept. In an environment without virtual memory it has no place anymore. Android's low memory killer and virtual memory perform the same feat. Allow the user to do whatever they want without ever displaying a "I'm afraid I can't do that, there's no more memory" to the user. A side effect of virtual memory is the onus of task management burdened on the user. It is not a feature, or a goal, it's a side effect of the virtual memory medicine. > > Solution is to have a Android Developers Blog post about why an "exit" > > button is wrong, > > I don't think so. There were blogs, posts in this and other forums, > etc. But only (some) developers read them, and maybe some users so > frustrated with Android they feel the need to let off steam in some > user forum, where they might get helpful answers (or be advised to use > a task manager...). > As long as the users feel they've got no control about when an app is > "running", they'll want an exit button, even if there was no app with > one at all. You are correct many users will want an exit button. And they will continue wanting them while the technologically minded refuse to accept that the notion of users managing system resources is antiquated and not fit for mobile. Once all the developers manage to educate themselves (and I think the desire for task managers is worse for people who consider themselves "in-the-know") and respond uniformly on the issue the average users' understanding will shift too. I've read every Android developer blog post and I don't think they've directly addressed this issue. Certainly if you look at stack overflow you can find a few examples of programmers with big egos thinking they are far brighter than the whole Android team combined on this issue. The idea of needing a task manager is going to continue to trickle down from people who know enough about desktop computing to be dangerous to the general masses for a while. > btw, I want to notice there's a third reason for an "exit" button: > Take an app like the default browser. Sometimes you'd need dozens of > "back" presses to actually leave it. The other alternative is only to > keep it loading the current page in background after leaving with > "Home", even though you don't care about that page anymore. Agreed. Which brings me back to wanting a blog post that addresses "User interface concerns in a system with no quitting". Uniform UI in the platform isn't the result of a common API, it's the result of a common understanding between developers. > > (...) Maybe talk about when it's > > appropriate to terminate Threads or AsyncTasks as the application > > lifecycle changes. Should the app finish downloads that are only > > relevant to the active UI when the UI hides? What if the user is > > coming back in 2 seconds, what if not? When should they be interrupted > > and cancelled? I think this would be an excellent topic, certainly > > some advise I could use in my own applications. > > Good point. It wouldn't help with the psychological problems, but sure > might improve performance and battery live. Well I think my general idea here is, decrease the number of misbehaving applications results in users feeling less anxious not being the overseer of their phone's internals. -Eric -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en