Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Meta] Enable Battery Saver settings #240

Open
bbinto opened this Issue Jan 23, 2019 · 11 comments

Comments

@bbinto
Copy link
Collaborator

bbinto commented Jan 23, 2019

Goal: Provide an app that saves storage on the device and is battery efficient (GV)

  • Find battery-saving opportunities
  • Turn off or on features that might drain battery
  • Block ads and trackers that could affect battery and performance
  • Battery-Saver Mode (similar to reader mode) with page-altering (white-on-black text) and CPU-impact-reducing (low fps) features

@bbinto bbinto added this to the MVP Metas milestone Jan 23, 2019

@bbinto bbinto added the Epic label Jan 23, 2019

@bbinto bbinto added this to Milestone 4 in Fenix MVP Jan 23, 2019

@st3fan st3fan closed this Jan 24, 2019

@st3fan

This comment has been minimized.

Copy link
Contributor

st3fan commented Jan 24, 2019

@bbinto Can we reference the ideas we previously talked about? I don't know where to find those. Maybe @shorlander knows?

@st3fan st3fan reopened this Jan 24, 2019

@shorlander

This comment has been minimized.

Copy link
Collaborator

shorlander commented Jan 24, 2019

@st3fan this is the list I have of things we have discussed that could potentially create battery savings:

  • Block Ads
  • Block Trackers
  • Disable Autoplay
  • Reader Mode as Default
  • Dark Mode (Theme)
  • Lowering Image Quality
  • Throttle Streaming Bandwidth (use lower quality video streams)

There was also some discussion around things we might not being optimizing on the platform side because we haven't been thinking about them primarily from an energy saving perspective. This included some discussion around maybe more aggressively caching things to avoid using the radio.

@colintheshots

This comment has been minimized.

Copy link
Collaborator

colintheshots commented Jan 24, 2019

I guess I misunderstood the feature based on older discussions. We'd mentioned removing native apps and replacing them with PWAs or web apps. Also, we seemed to indicate we'd somehow measure the benefit of various steps, which is tremendously hard on Android.

The list you mention doesn't seem too difficult, but there's the overhead of keeping extra code branches across the app. We could probably handle this type of configuration with the component architecture we have planned-- the same way we're handling layout A/B experiments.

@bbinto bbinto added the 🙅 blocked label Jan 25, 2019

@bbinto

This comment has been minimized.

Copy link
Collaborator Author

bbinto commented Jan 25, 2019

This includes the UI to enable it, the individual functionalities should be split into different tickets

@sblatz

This comment has been minimized.

Copy link
Contributor

sblatz commented Jan 25, 2019

Checklist

  • Adblocking: #96
  • Block trackers: #216 (child of this)
  • Disable autoplay: #255
  • Reader mode: #74
  • Dark mode: #208, #252
  • Lower image quality: #253
  • Throttle video: #254

@bbinto bbinto added the should label Jan 30, 2019

@Cheap-Skate

This comment has been minimized.

Copy link

Cheap-Skate commented Feb 1, 2019

Some suggestions on power saving

  • Reduce frame rate

I think animating, scrolling and flinging use quite a lot of CPU power (GPU in the case of WebRender). You could reduce layout.frame-rate to 30 fps. (I think Firefox Desktop is talking about doing this on low power machines but to speed things up not save battery???).

IIRC my previous Sony Xperia phone had "Stamina" mode which I think downclocked the GPU and limited the frame rate, on Android native animations at least. It got quite janky.

  • Downclock CPU cores??

A guess but...

Most phone CPUs have some kind of big.LITTLE architecture. The big cores will likely use more energy for a given task than the LITTLE cores, but will do the task faster. Is it possible to force a phone to use only its LITTLE cores for page load, JS etc? Even with no big.LITTLE, energy consumption should drop somewhat with a bit of downclocking, so e.g. a CPU limited to say 1500 MHz might use a bunch less energy than clocked right up to 2000 MHz.

For example, you might see 30% longer page loads by doing this, but get but 20% power saving. Or something. No idea if it's practical.

My Galaxy S7 has a power saving mode which allegedly reduces the CPU speed.

  • Reduce screen resolution

Doubt it's possible but again GPU workload could be reduced by forcing the phone to use a lower resolution. I doubt you can do this app by app, it's probably a system wide setting. Again my Galaxy S7 has a power saving mode which reduces screen resolution to HD.

No idea if it's any help!

@Sdaswani

This comment has been minimized.

Copy link

Sdaswani commented Feb 5, 2019

@sblatz this may not have been ready for breakdown, did someone ask you to break it down?

@sblatz

This comment has been minimized.

Copy link
Contributor

sblatz commented Feb 5, 2019

@Sdaswani I must have mistakenly thought this was ready when I was looking for work last week (and was directed to breakdown meta tickets). Sorry for any confusion

@Sdaswani

This comment has been minimized.

Copy link

Sdaswani commented Feb 5, 2019

No worries @sblatz ! We may want to reverse the breakdown as what we are doing here is still not clear.

@bbinto bbinto self-assigned this Feb 12, 2019

@bbinto bbinto changed the title [Meta] Enable Battery settings [Meta] Enable Battery Saver settings Feb 20, 2019

@bbinto

This comment has been minimized.

Copy link
Collaborator Author

bbinto commented Mar 14, 2019

@bbinto

This comment has been minimized.

Copy link
Collaborator Author

bbinto commented Mar 15, 2019

We decided on March 15 that we will take individual features out of the batter context, add them individually and in the future, in "past MVP" versions, we might bundle it all back together, once we have all instrumentation in place and data gathered to make a claim how these individual features can and will save battery.

More info: https://docs.google.com/document/d/1W2eImtB_7AQQpJOaCwK3w3y0sGV_HOgesP7_k_4EP-E/edit#

This was referenced Mar 18, 2019

@bbinto bbinto removed this from Milestone 4 (Q2) BETA in Fenix MVP Mar 18, 2019

@bbinto bbinto modified the milestones: MVP Metas, Backlog (After MVP) Mar 18, 2019

@vesta0 vesta0 removed the P2 label Mar 28, 2019

@vesta0 vesta0 added this to Fenix 2.0 Milestone 1 (Q3) in Fenix Post-MVP Roadmap Apr 4, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.