> We partnered with DeepMind on a feature called Adaptive Battery that uses machine learning to prioritize system resources for the apps the user cares about most.
You know what mind I would like to control what apps get more resources?
Not most people though. There was a time when in MacOS, one could manually limit the amount of memory a program was launched into by setting the required and preferred memory footprint.
But that kind of low-level stuff isn't something most people care about or want to do. They just want the damn thing to work.
That wasn't a feature, it was a bug. It's not that you could limit the amount of memory a program could use, you had to implement one contiguous block of memory an app could use and you had to close apps even when you had plenty of memory to get a contiguous block.
That was like Mac users who said that cooperative multitasking was better because it let games run more smoothly, while technically correct. It was like being happy that your dog pooped on your carpet because now you have free fertilizer.....
Furthermore, isn't the idea here to put the control into the user's hands?
Think of it as a resource manager controlled by you, but with the only interface that the general market will be able to use for something with a fair amount of technical nuance - ML.
I see your point that most people don't want to dig into the nitty-gritty details, but I don't think it'd hurt to be able to mark applications as High, Normal, or Low priority for memory and CPU use.
But this isn't really high/normal/low priority for mem and cpu, its how often the applications should wake up. And from my cursory understanding, background resource consumption can be highly variable, and most apps don't really need that much.
Its the same thing as using those battery manager task killer apps. For a pixel, those apps will result in worse battery life, because recent android versions manage resource consumption better than users will.
Do you know what I would like? For Android to actually show what apps/services drain battery life.
I noticed recently that WhatsApp, Reddit Sync, and a few other apps were draining battery life like crazy. But none of that drainage was being shown in the battery stats.
Google is purposefully hiding how some apps use battery, and it started years ago when they allowed apps to hide under "Android OS" and "System" categories. In more recent versions they "fixed" this by simply not showing the Android OS and System categories in the battery stats anymore.
Google doesn't want to show how some apps use your battery because they drain the battery with similar methods that Google itself uses to drain your battery (by polling your location all the time, etc).
Noone is purposefully hiding anything. If you need advanced battery data, you can use Battery Historian even on non-modified phones and you'll get all the battery stats your heart desires, down to reason for each CPU wakeup.
Personally, I think my mind has better things to do then mechanistic micromanaging of OS level resources. Some people will be upset that ML is obsoleting these sorts of repetitive tasks, but not most people.
Software developers also often forget that UX is a thing. "Just add feature X, Y & Z". This is why you never let a programmer design UIs, you end up with a mess with dozens of buttons, menus and submenus everywhere.
Every new feature comes at a UX cost, and in this case, the cost of the UX outweighs the benefits of you micromanaging your memory footprint.
People also seem to underestimate how complex resource management on a mobile OS is.
That's not exactly an easy problem.
Currently used apps
scheduled background work
currently active foreground services like the navigation app you are curently using, the image that is uploading in the background or the music that is playing .. stuff without a visible UI (except for a notification so you know what is going on). All important but not the main thing displayed right now.
You also need to throttle the CPU when the phone runs too hot.
But not run it at minimum speed either because it would make everything laggy.
Also, if you pick up your phone out of your pocket, it automatically wakes up and increase CPU frequency because it is likely you are going to use it.
Etc ..
This is very complex problem, it is ok to let a machine balance this for us.
I don't know a lot about kernel scheduling, memory allocation, I/O scheduling, etc, but from what I understand there are OSes with much cleverer implementations of these things, and OSes which are pretty dumb. I believe Linux is somewhere in the middle. Surely there is lots more scope to optimise these schedulers with regular rule-based approaches, rather than bringing in DeepMind magic? It's always difficult to understand the reasons why machine learning algorithms choose the things they choose, and they often have unintended consequences or awful edge cases. This just seems like it was done for marketing reasons more than technical reasons?
Ugh, I want to be optimistic, but I think this feature is going to suck and here's why:
I use snapchat, but I actually hate the app. It's a bloated memory and battery hog in my opinion. Is Adaptive Battery going to think I love Snapchat and prioritize more system resources for it just because I use it? Cause I want the exact opposite to happen. I want Snapchat using 0% of my system resources except for the few times a day when I check my snaps.
Also I hate losing control of my system in favor of some nebulous decision making criteria I can't control (ML)
First, one thing: the people working on these projects are not dumb. They are not going to launch a feature that simply does not work. These teams run experiments and confirm that the feature actually does what it's supposed to do (e.g improve battery life) before launching them in production.
It sounds like this feature is exactly made for cases like the one you describe: if you don't use Snapchat throughout the day, it won't stay in memory like it currently does (which seems to be ~ a LRU cache), instead staying in memory only when you're predicted to use the app over and over. (so not Snapchat in your case)
> the people working on these projects are not dumb. They are not going to launch a feature that simply does not work
I've seen no evidence of this. Plenty of features that do not work or work poorly are launched every day.
Especially machine learning stuff, which is hard to test for normal (and abnormal) users and debug the recommendations. See e.g. the Nest. I know people who got one and hated it since it never get the hang of their schedules and would make bizarre decisions. Others love them.
Yet I get ads for something I bought weeks ago, I get ads saying "sign up for Facebook" even though I'm logged in on the very same phone, and Facebook's "advertising profile" is completely backwards for my political views. When I accidentally click a certain type of YouTube video my recommend fills up with that type of video even if I watched it for 5 seconds. Same with Amazon recommended.
In my experience, "personalized recommendations" are universally trash
Personalized recommendations make or break certain businesses like media and e-commerce. Not unusual to see an increase in revenue between 10% and 30% after adding recommendations. They're not "universally trash", since the alternative is showing you truly random items, or whatever item is the most popular.
Check YouTube's "trending" tab and come back here to say if you'd rather have that instead of the personalized recommendations.
YouTube's trending tab is algorithmically generated, not the actually most popular. That's why is called something vague like "trending" and not "most popular".
It is trash, but that's what you get when you use data based recommendations.
I don't think it'll ever use /more/ resource than it is right now. From my understanding, all apps right now are at "maximum" usage. All this does it reduce usage of apps you never use.
So in practice, the resource usage of Snapchat for you would probably not change at all, but that one game app you downloaded 2 months ago and never played will stop querying the master server every day to serve you more ads.
That's why I only use Android with ROMs like LineageOS where I can block apps from opening on startup and running in the background (you also get more granular permissions for free).
You know what mind I would like to control what apps get more resources?
Me