Get ready for a doozy. This episode tries to explain how storage works on Android with a focus on Google's on-again, off-again approach to scoped storage and how apps navigate it all. Hopefully you don't come out of this more confused than before. We talk with https://github.com/TranceLove (Raymond Lai), part of the team behind https://play.google.com/store/apps/details?id=com.amaze.filemanager (Amaze File Manager). 03:01 - How did storage access used to work in the early days of Android? What is the difference between internal and external storage? 05:00 - Why is external storage mounted using a virtual file system? Where can apps store files, and what is the "Android" folder used for? What was the problem with mounting external storage as VFAT? 10:00 - Why did Android 4.4 switch from VFAT to using FUSE to emulate FAT32? Is FUSE still being used? What is SDCardFS? 12:07 - What is Scoped Storage? How did it affect external storage access? 13:12 - What is the MediaStore API? How does Scoped Storage protect users? 17:02 - What is the Storage Access Framework, and why was it so controversial? How did it affect apps? 24:00 - How did Scoped Storage break file access on some Android TV devices? 26:54 - How did Google respond to developer feedback on Scoped Storage before Android 10's release? 27:43 - How did Scoped Storage change in Android 11? What is the "all files access" permission and what are its limitations? How did file managers get around these limitations? 31:55 - Why did Android return to FUSE? What was the limitation with SDCardFS? How did Google improve FUSE, and what problems does it still have? 38:44 - What is FUSE passthrough in Android 12? How does it improve performance? 40:22 - How will Android 13 change file access on Android?
Android Bytes is hosted by Mishaal Rahman, Senior Technical Editor, and David Ruddock, Editor in Chief, of Esper. https://twitter.com/MishaalRahman (Mishaal's Twitter) https://twitter.com/RDRv3 (David's Twitter)
For more about Esper, visit us. https://blog.esper.io/ (Esper Blog) https://www.esper.io/ (Official Esper site) https://www.esper.io/book-demo (Book an Esper Demo)
Our music is "https://home96.bandcamp.com/track/19 (19)" by https://twitter.com/RNDYGFFE (HOME) and is licensed under https://creativecommons.org/licenses/by/3.0/ (CC BY 3.0).