The Chrome team is looking to reduce power utilization on mobile phones when using the browser. How would you go about solving this problem?
You'll get access to over 3,000 product manager interview questions and answers
Recommended by over 100k members
Clarifications:
- Is the goal to reduce the power consumption for Chrome when user are using it in the foreground, not when it's runing in background? [Yes, during active use]
Typically mobile Apps consumes power when they
- Lights up the screen
- Send/Receive mobile data
- Transfer data through internal I/O
- Utilize processors (including GPUs)
- [Partial Loading]Due to the small screen size, we can only load portions of the page to only fill the mobile screen, and defer further loading when user scroll down the page.
- [Text first] We can consider loading the text first, image and video till user clicks on them.
- [Data Compression] We can consider compressing the mobile page so that we only transfer the compressed pages. Anyway, we need to make sure the saved power from less mobile data usage won't be outweighted by the added CPU usage to handle compression.
- [Disable Components] We can block plugins and extensions from using the mobile data.
- [Reduce Frequency] We can lower the CPU frequency to save power, when user is only doing processing-inextensive tasks such as reading or typing.
- [Fewer tabs] we can consider to only allow a few tabs during power saving mode, so that they can all fit into memory instead of keep swapping between memory and storage.
- Text Only
- Power Saving: High- a lot of saving by skipping unnecessary downloading of image/video
- UX impact: Med, user will have to click on video icon to initiate playing
- Complexity: Low
- Partial Loading
- Power Saving: High, especially when user don't need to read throug the whole page.
- UX impact: Low, user will experience some loading time when scrolling down.
- Complexity: Low
- Fewer Tabs
- Power Saving: Medium
- UX impact: Low, user will be prompted to kill a tab before they can open new ones.
- Complexity: Low
- Reduce frequency
- Power Saving: Low, probably already optimized by the OS.
- UX impact: Low, user probably won't be able to notice.
- Complexity: Med.
- Data Compression
- Power Saving: Low, large items like image and video are already compressed. limited headroom.
- UX impact: Low.
- Complexity: High, if not all web server supports this, we might need to go through proxy servers.
- Disable Component
- Power Saving: Low, unless the component is consuming a lot of processing power
- UX impact: High, disabling some component might impact the usability of page.
- Complexity: Med
Here is the approach that I will follow to answer this question.
A. Brainstorm reasons why chrome browser typically causes high battery drainage
B. Come up with potential solutions (either voluntary – requiring user input or involuntary – happening behind the scenes without user input) that can help reduce battery drainage.
The things that usually drain the battery power of devices using chrome browsers are:
1. Having multiple tabs open (one or two is ok but on mobile phones, people typically end up keeping multiple tabs open)
2. Having a lot of chrome extensions (while it is tempting to get the next new extension, these drain battery power)
3. Having chrome continue to run in the background (even when you have closed your chrome browser- it may continue to run in the background)
4. Google drive offline access – One of the tools that Chrome uses is Google Drive. Running Google Drive in offline mode drains battery.
5. Many of the demanding and battery draining elements on a page require a Plug in – such as Adobe Flash – Disabling Flash and making plug-ins – click to play usually help with battery drainage
6. Using older versions of Chrome (Newer versions are usually much more efficient and require less battery power)
7. Large images, CSS, JS etc on a web page probably require a lot of battery power as well for the browser to load
Solutions
When someone opens and uses chrome on a mobile phone – they could be reminded to
a) suspend tabs (especially when its not one that has live chat open) (voluntary) or Chrome could have a setting where a user can opt to have unused static tabs be suspended or closed after a period of time (involuntary).
b) Chrome extensions – Depending on the make and model of phone and assessing the battery power left, Chrome could automatically disable extensions that are high battery draining and are low usage by the user. (Involuntary). When a user tries to download an extension that might cause high battery usage- chrome can warn them about the impact to the battery usage.
c) Google Drive offline access – Same here. Google Drive offline access could be closed automatically by Chrome when not required.
d) Adobe Flash/ Plug-ins – Chrome could warn users against installing flash and other plug ins which cause high battery drain. The Chrome team could recommend/offer alternatives to Adobe Flash/external plug ins which cause lower battery utilization
e. Users of android phones/Google pixel could be auto updated to latest versions of Chrome that are more battery efficient
f. Large images/CSS/JS – Depending on the type of content being viewed or rendered – images/videos/audio – different compression methodologies can be used to reduce impact on battery drainage. Better caching can be done to reduce server calls and battery usage. This can be done specifically when the phone has low battery.
- I think one of the first steps in this whole process has to be to have the correct instrumentation in place to measure the power consumption of a specific App (in this case Chrome), over mutliple conditions
- Once we have established it's reliability we'd need to measure what Device & OS factors can vary across phones (both iOS & Android) and have the largest impact on power consumption variation. Could include CPU types, memory types, OS versions.
- Come up with the list of most common test case site categories that users have been hitting in the last say 6-12 months
- Across a matrix of Device, OS, Memory combos vs Site Categories, establish baseline power consumption when the test sites run for Avg session length, in foreground & background mode
- After this we should go into the above steps i.e. variations to be tested.
Point is that without reliable measurement and comparison techniques, our solutions may or may not be trustworthy.
Top Google interview questions
- What is your favorite product? Why?89 answers | 263k views
- How would you design a bicycle renting app for tourists?62 answers | 82.5k views
- Build a product to buy and sell antiques.54 answers | 66.8k views
- See Google PM Interview Questions
Top Technical interview questions
- Imagine you're the product manager for Facebook Marketplace. Since many sellers don't mark items as sold, what existing functionality and metrics could you use to determine whether an item has likely sold?7 answers | 20.9k views
- What happens when you enter a URL in your browser?6 answers | 10.8k views
- How would you determine how to rank posts in the newsfeed?4 answers | 3.3k views
- See Technical PM Interview Questions
Top Google interview questions
- How would you improve Google Maps?53 answers | 228k views
- A metric for a video streaming service dropped by 80%. What do you do?50 answers | 135k views
- How would you design a web search engine for children below 14 years old?36 answers | 42.9k views
- See Google PM Interview Questions
Top Technical interview questions
- How would you map the ocean?3 answers | 2.9k views
- Create an API design for third-party integration for payments.3 answers | 4.2k views
- Amazon is developing a machine learning algorithm to better target shoppers who have saved items in their shopping carts. The algorithm will send an email to users to remind them about their shopping carts. What factors would you consider when designing this algorithm? What variables would you tweak to yield higher shopping cart purchase rates?3 answers | 2.8k views
- See Technical PM Interview Questions