SlideShare uma empresa Scribd logo
1 de 13
Facebook on Android
DroidCon London 2013
Why we sucked
2009 – Wrap the Web

2012 – Go Native fast
Why we still suck have problems
Since Jan 2013:
Per user, per day:
Photos posted up
20%
Messages up 33%
Time spent up 25%

• 360 million users every month
• 200 million every day
• Feature surpass desktop web

Photo uploads
quadrupled
How can we not?

Emerging markets
40% of users still on Gingerbread or earlier
8 million users per day on Froyo
40% of users using old versions of the app
What we’ve achieved

Since January 2013:
20-30 new features per month
Crashes per user down 30%
APK size flat
Data usage flat
Do’s
Tradeoffs
Don’t

HTML5 doesn’t work
New Zealand is your friend
TechCrunch is not
Java on Dalvik is different
Beware server-side libraries like Guava
Purgeable bitmaps don’t help much
LinearAlloc

Dalvik loads metadata about each method into a fixed
5 MB buffer
We filled it up (bug fixed in HC)
We hacked into Dalvik’s memory space to increase
this size!
Tested across dozens of devices
What four lines can do

4-line change removed some extra data from logging
Reduced start time for FB Messenger by 10%
Ends up saving a year every day!
Bitmaps

Use up mountains of memory
Not garbage collected effectively GB and earlier
Leading cause of OutOfMemoryErrors
Rotating, resizing etc, loses purgeability
Bitmaps

Custom reference counting
Custom purgeability
Libjpeg-turbo
Questions?

Tyrone Nicholas
tnicholas@fb.com

Mais conteúdo relacionado

Semelhante a Facebook for Android: Lessons Learned

Social Media App for Magnolia 5
Social Media App for Magnolia 5Social Media App for Magnolia 5
Social Media App for Magnolia 5Magnolia
 
[SiriusCon 2018] Closing session - Live Community Survey
[SiriusCon 2018] Closing session - Live Community Survey[SiriusCon 2018] Closing session - Live Community Survey
[SiriusCon 2018] Closing session - Live Community SurveyObeo
 
Defining Web 2.0 and RIA
Defining Web 2.0 and RIADefining Web 2.0 and RIA
Defining Web 2.0 and RIAArielladog
 
The Road To Openness.Odt
The Road To Openness.OdtThe Road To Openness.Odt
The Road To Openness.OdtKaniska Mandal
 
Mobile Developer's Guide To The Galaxy 12th Edition
Mobile Developer's Guide To The Galaxy 12th EditionMobile Developer's Guide To The Galaxy 12th Edition
Mobile Developer's Guide To The Galaxy 12th EditionMarco Tabor
 
Transforming Web Business to a Mobile Business - Presentation by Sirish Kosaraju
Transforming Web Business to a Mobile Business - Presentation by Sirish KosarajuTransforming Web Business to a Mobile Business - Presentation by Sirish Kosaraju
Transforming Web Business to a Mobile Business - Presentation by Sirish KosarajuRapidValue
 
Where did my modules GO? Building and deploying Go Apps w/ GoCenter & Codefresh
Where did my modules GO? Building and deploying Go Apps w/ GoCenter & CodefreshWhere did my modules GO? Building and deploying Go Apps w/ GoCenter & Codefresh
Where did my modules GO? Building and deploying Go Apps w/ GoCenter & CodefreshLeon Stigter
 
Eclipse Community Survey Report 2013
Eclipse Community Survey Report 2013Eclipse Community Survey Report 2013
Eclipse Community Survey Report 2013Ian Skerrett
 
How Java got its Mojo Back - James Governor (Redmonk)
How Java got its Mojo Back - James Governor (Redmonk)					How Java got its Mojo Back - James Governor (Redmonk)
How Java got its Mojo Back - James Governor (Redmonk) jaxLondonConference
 
Cliches about mobile development and applications developers (Thibaut Rouffin...
Cliches about mobile development and applications developers (Thibaut Rouffin...Cliches about mobile development and applications developers (Thibaut Rouffin...
Cliches about mobile development and applications developers (Thibaut Rouffin...Mobile VAS & Apps Conference
 
Lavacon 2014 - The state of mobile publishing
Lavacon 2014 -  The state of mobile publishingLavacon 2014 -  The state of mobile publishing
Lavacon 2014 - The state of mobile publishingVikram Verma
 
Apteligent Data Report Google IO Edition
Apteligent Data Report Google IO EditionApteligent Data Report Google IO Edition
Apteligent Data Report Google IO EditionApteligent
 
Where All Libraries & Data Required For Android App Development Are Present
Where All Libraries & Data Required For Android App Development Are PresentWhere All Libraries & Data Required For Android App Development Are Present
Where All Libraries & Data Required For Android App Development Are PresentTechugo
 
Top 10 Web Development Trends To Pay Attention in 2022.pptx
Top 10 Web Development Trends To Pay Attention in 2022.pptxTop 10 Web Development Trends To Pay Attention in 2022.pptx
Top 10 Web Development Trends To Pay Attention in 2022.pptx75waytechnologies
 

Semelhante a Facebook for Android: Lessons Learned (20)

Social Media App for Magnolia 5
Social Media App for Magnolia 5Social Media App for Magnolia 5
Social Media App for Magnolia 5
 
Social media Hub
Social media HubSocial media Hub
Social media Hub
 
[SiriusCon 2018] Closing session - Live Community Survey
[SiriusCon 2018] Closing session - Live Community Survey[SiriusCon 2018] Closing session - Live Community Survey
[SiriusCon 2018] Closing session - Live Community Survey
 
Defining Web 2.0 and RIA
Defining Web 2.0 and RIADefining Web 2.0 and RIA
Defining Web 2.0 and RIA
 
Android
AndroidAndroid
Android
 
Droidcon tunisia
Droidcon tunisiaDroidcon tunisia
Droidcon tunisia
 
The Road To Openness.Odt
The Road To Openness.OdtThe Road To Openness.Odt
The Road To Openness.Odt
 
Android bd
Android bdAndroid bd
Android bd
 
Mobile Developer's Guide To The Galaxy 12th Edition
Mobile Developer's Guide To The Galaxy 12th EditionMobile Developer's Guide To The Galaxy 12th Edition
Mobile Developer's Guide To The Galaxy 12th Edition
 
Transforming Web Business to a Mobile Business - Presentation by Sirish Kosaraju
Transforming Web Business to a Mobile Business - Presentation by Sirish KosarajuTransforming Web Business to a Mobile Business - Presentation by Sirish Kosaraju
Transforming Web Business to a Mobile Business - Presentation by Sirish Kosaraju
 
Where did my modules GO? Building and deploying Go Apps w/ GoCenter & Codefresh
Where did my modules GO? Building and deploying Go Apps w/ GoCenter & CodefreshWhere did my modules GO? Building and deploying Go Apps w/ GoCenter & Codefresh
Where did my modules GO? Building and deploying Go Apps w/ GoCenter & Codefresh
 
Eclipse Community Survey Report 2013
Eclipse Community Survey Report 2013Eclipse Community Survey Report 2013
Eclipse Community Survey Report 2013
 
How Java got its Mojo Back - James Governor (Redmonk)
How Java got its Mojo Back - James Governor (Redmonk)					How Java got its Mojo Back - James Governor (Redmonk)
How Java got its Mojo Back - James Governor (Redmonk)
 
1206rouffineau
1206rouffineau1206rouffineau
1206rouffineau
 
Cliches about mobile development and applications developers (Thibaut Rouffin...
Cliches about mobile development and applications developers (Thibaut Rouffin...Cliches about mobile development and applications developers (Thibaut Rouffin...
Cliches about mobile development and applications developers (Thibaut Rouffin...
 
Lavacon 2014 - The state of mobile publishing
Lavacon 2014 -  The state of mobile publishingLavacon 2014 -  The state of mobile publishing
Lavacon 2014 - The state of mobile publishing
 
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJSMicro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
 
Apteligent Data Report Google IO Edition
Apteligent Data Report Google IO EditionApteligent Data Report Google IO Edition
Apteligent Data Report Google IO Edition
 
Where All Libraries & Data Required For Android App Development Are Present
Where All Libraries & Data Required For Android App Development Are PresentWhere All Libraries & Data Required For Android App Development Are Present
Where All Libraries & Data Required For Android App Development Are Present
 
Top 10 Web Development Trends To Pay Attention in 2022.pptx
Top 10 Web Development Trends To Pay Attention in 2022.pptxTop 10 Web Development Trends To Pay Attention in 2022.pptx
Top 10 Web Development Trends To Pay Attention in 2022.pptx
 

Mais de Tyrone Nicholas

Saving a century a day: how the Fresco library works
Saving a century a day: how the Fresco library worksSaving a century a day: how the Fresco library works
Saving a century a day: how the Fresco library worksTyrone Nicholas
 
How Facebook cut image load times in half
How Facebook cut image load times in halfHow Facebook cut image load times in half
How Facebook cut image load times in halfTyrone Nicholas
 
Image handling in Android
Image handling in AndroidImage handling in Android
Image handling in AndroidTyrone Nicholas
 
Facebook tricks for image handling in Android
Facebook tricks for image handling in AndroidFacebook tricks for image handling in Android
Facebook tricks for image handling in AndroidTyrone Nicholas
 
Being a Software Engineer at Facebook
Being a Software Engineer at FacebookBeing a Software Engineer at Facebook
Being a Software Engineer at FacebookTyrone Nicholas
 

Mais de Tyrone Nicholas (6)

Presentation on Fresco
Presentation on FrescoPresentation on Fresco
Presentation on Fresco
 
Saving a century a day: how the Fresco library works
Saving a century a day: how the Fresco library worksSaving a century a day: how the Fresco library works
Saving a century a day: how the Fresco library works
 
How Facebook cut image load times in half
How Facebook cut image load times in halfHow Facebook cut image load times in half
How Facebook cut image load times in half
 
Image handling in Android
Image handling in AndroidImage handling in Android
Image handling in Android
 
Facebook tricks for image handling in Android
Facebook tricks for image handling in AndroidFacebook tricks for image handling in Android
Facebook tricks for image handling in Android
 
Being a Software Engineer at Facebook
Being a Software Engineer at FacebookBeing a Software Engineer at Facebook
Being a Software Engineer at Facebook
 

Último

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 

Último (20)

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 

Facebook for Android: Lessons Learned