Android’s file structure is so incomprehensible. I’m genuinely surprised there hasn’t been any significant effort made to make it more readable. Pictures saved in app directories, downloads, camera, images, pictures, media, DCIM???.
I’m genuinely surprised there hasn’t been any significant effort made to make it more readable.
Quite the opposite. They’ve tried to make it better, and in turn, they’ve made it worse.
They used to have a pretty straightforward Linux file structure, and you were expected to put things in the external Pictures folder. And downloads went to the external Downloads folder. Back then, internal storage was small and SDs were large, so apps couldn’t really afford to store these things locally and the SD structure was well enough defined that it was pretty clear where pictures would go.
Now, Google has pushed against SD cards. They also started requiring more permissions for external storage. They’ve added some “documents” APIs that were supposed to make it easier to tag/find files, but it’s a tangled mess and most apps don’t touch it. And they’ve rewritten their storage model multiple times at this point. If you’re writing a new app, it’s unclear which model to even follow anymore because Google has created a giant cluster fuck of options and paradigms.
Google is actively making this problem worse and worse. I wish they had never tried to “fix” this in the first place.
xkcd “standards” comes to mind
We don’t even have to link the relevant xkcds anymore
there was that joke where every joke is already known so instead of telling the joke they just say the number of it.
wonder if we ever get there, someone will just reply, xkcd 375
deleted by creator
Open source developer and Linux enthusiast here. Although cluttered, Android’s home directory is fairly simple to understand
The nightmare begins when you take a look at the root filesystem.
One time I was trying to port an OS to my phone and I had to figure out the Android init system. Went to source.android.com and what. the. fuck. Just as a side-by-side comparison:
Linux boot sequence:
Android boot sequence (unmodded, SIMPLE):
There are so many wrong things about it like why are there 11, 12 places to put programs (/system/bin, /bin, /usr/bin /system/usr/bin, /sbin, /system/usr/share/bin…)
Why the fuck drivers are scattered around folders instead of just /lib/modules
Why is the home directory /storage/emulated/0/ instead of just /home/0/ (also why the user is named “0”)
Where the fuck is everything???
God (Linus Torvalds) forgive me but even Windows is better than that shit
i wonder if that graphic is up to date with system as root and A/B dynamic partitioning and whatever crazy new bullshit google invents with every release
I raise you all of these monstrosities:
- Phones launching with Android 13 without a dedicated partition for recovery mode
- Phones launching with Android 13 with two dedicated partitions for recovery mode (two because of A/B partitioning scheme)
- Phones launching with Android 13 with one dedicated partition for recovery mode (only one because A/B partitioning scheme is not used)
- Phones that launch with or upgrade to Android 12, that use a generic kernel image, without a dedicated partition for recovery mode
- Phones that launch with or upgrade to Android 12, that use a generic kernel image, with two dedicated partitions for recovery mode (A/B partitioning scheme)
- Phones that launch with or upgrade to Android 12, that use a generic kernel image, with one dedicated partition for recovery mode (non-A/B partitioning scheme)
- Phones that upgrade to Android 12, that does not use a generic kernel image, with no dedicated partition for recovery mode
- Phones that upgrade to Android 12, that does not use a generic kernel image, with dedicated partition(s) for recovery mode
In Android’s defense however, a phone would likely use only one of these layouts at a time. The question of which of these layouts does a said phone uses though, that’s a more complicated question.
That’s not correct though. The GNU+Linux version is missing the bootloader and initramfs.
The Linux boot sequence link doesn’t work for me
Init
^
|
Linux Kernel
It’s a graph, showing a red oval with the text “Linux Kernel”, an arrow points from the red oval to a light-green oval titled “Init”.
“Linux Kernel” --→ “Init”
Thanks
Tbh it doesn’t really matter since your gallery shows all of them in one place.
That is until you want to transfer your pictures to a pc…
I feel like if anything they made effort to not have people touch the file manager ever
Android’s file structure is bad, yes. But does iOS even have a file structure? In my very limited time using iOS, I couldn’t find anything resembling a file explorer.
we had a ducking sane file structure on symbian. Before apple knew what smartphone means. We had sane file structure on siemens phones.
There’s no excuse for the unholy abomination of what manufacturers call an “operating system” on a smartphone these days.
Peak symbian was the sony ericsson p1i.
Had a gf throw that thing against a cinder block wall, off a concrete floor, and basically explode everywhere. i picked upthe parts, snapped it back together, turned it back on and left.
sir, this is Wendy’s :D
I would like a double jbc, please
Ericsson phones were second only to Nokia phones for their durability.
The Son of Eric must have been really good phonesmith.
I really raeg when someone says “apple invented the smartphone” like let me kill you know and save myself the anguish of wishing i had
I had a Kyocera 6035, literally the first commercially available smartphone. Ran PalmOS. (It’s literally my picture on the WP page for it) 2001, a few months before the iPod, never mind the iPhone.
It does have a files app now and it’s so good compared to Android file apps right now
android has no official “files” app though?
google files is a technically a 3rd party app and the AOSP files app is usually hidden and used only as a file picker.the AOSP file picker is so ass, everytime I get a new android i have to install Mixplorer (not affiliated with the Xiaomi brand) just to have a sane experience picking my files
Isn’t that because Android is system agnostic?
Been a while since I used a true bare stock Android device. G1 must have had a file explorer though right?
yeah vendors usually ship their own file explorer apps
The Samsung ones rudimentary, but it does the job
There isn’t an equivalent on iOS
iOS has had a file explorer for years at this point
And it sucks
(not that google’s files app isn’t a mess either)
I think it’s fine for the handsets, but if they’re trying to push the iPad as a “semi computer” for the general consumer it really needs to be revamped. You can do many of the same things file managers do on other operating systems, but it’s extremely non-intuitive at times — so many users think the functionality is missing. Because if they don’t know it’s there it might as well be!
It does. But most of it is locked to the user. Mostly, it’s just the user directory that you have access to, which is the correct way.
deleted by creator
Files are soo outdated. The user should not have to worry about “Files”. What even is a " Directory"? Your nudes are on some guys computer in california but the world is in your hand. there is an app for everything, just use the apps, go with the flow, look at lots of ads, buy a tesla, tell your dirty secrets to google bard — everything is intuitive…
Took me a while to realise this was sarcasm!
Everything is a file /c
deleted by creator
deleted by creator
Download completed…
Files>downloads>empty 😔
Ah see, the problem is you were looking in /sdcard0/ which of course, refers to your internal storage and not your SD card which is probably called /0xgg0gdjdsjgg/ or something.
z/common/Facebook/dlot/downloads/pics/angry birds/pics/common/ahshhysyyagg.png
You also downloaded ahshhysyyagg.png?
and where exactly is it saved?
On your phone, silly.
Yeah…I don’t have any issues with file management on Android. There’s a folder structure and that’s all I really need. 🤷🏼♂️
My problem with it is how inconsistently things get placed.
App downloaded an image: it could be in the apps main data folder, DCIM, Pictures, Documents, or even a new folder at the base of the tree. Add an sd card and that list doubles as all those same locations exist separately on the sd card as well. (I’ve had images land in all 10 of these locations before)
/edit missed the ‘download’ folder. 12 possible locations.
Downloads have always gone to the downloads folder for me
But yes any app that takes/edits pictures can save them who the fuck knows where lol
Browsers put em in the downloads folder, but every other app is a wild west for me. Most Reddit and messaging apps I had downloaded to their own little folder.
Oh true! Tbh that never particularly bothered me because I end up organising stuff into my own folders anyways which all automatically go into DCIM.
The only issue I had was some torrent app which stored the files in its own data folder which was inaccessibile to any other app. What use is a downloaded file that you can’t open? That’s almost like having an iPhone.
(edit:apparently my iPhone knowledge is a bit dated now.)
Even if apps store stuff internally, and other things can’t find it, the owning app can give temp access to another app. Ie, if you click on it in the torrent software, it should be able to find the relevant media player etc and open that media player playing the file.
Not defending this though, it’s fucking stupid for them to do it that way, but just pointing out it’s not totally useless as long as they allow you to tap/open it from within their app.
Also applies to the Snap version of Firefox.
Found the Ubuntu user
not quite pertinent but you can have a gif as your avatar?
No, I just bend space time to make it appear as if my avatar is spinning. (In all seriousness, yes if you use Kbin)
apparently yes
And you can’t rename it and search for it afterwords. It makes that much frustrating to find
Not sure if it’s a Samsung thing, but I can easily rename and search the files…
Ok wow, I had no idea!
Yeah this whole post has made me really appreciate Samsung’s “my files” app.
Please someone tell me why androids filesystem structure is so damn confusing, I’ve wondered this forever but have never looked it up
I have spent weeks setting up LineageOs for my unsupported phone and I think I understood it.
- So /storage/emulated/0 is practically your home directory, all folders you can easily change are there.
- I don’t understand these memes, everything gets saved to /Downloads. The default file explorer is just crap. I use amaze
- the only really weird directory is the camera, it is saved in DCIM
- If you care about app specific app data go to /Android/data (for me its like the .config directory)
I’m just guessing here, but if I recall correctly, android was started as an OS for digital cameras. So saving camera files to DCIM (Digital Camera Images) makes sense as that is standard to most other cameras
Didn’t know that thanks.
Well usually you had your Download folder like in pc. Now every app has its own secured workspace where only it can access it’s files. If you want to download to the original download folder your app needs full storage access. And since people don’t know how to code they download into the secure app storage often.
So now your download is in Android/media/domain.app.name/Download
Great, isn’t it.
It’s been turbo janky for ages… It really does need to be sorted out.
IOS is worse. You can’t even be sure that it’s saved, let alone where.
And if you can save it to Files, only like two apps can open it and it’s random which ones
Some forced Google bloat ware snatched it and ran
It seems a lot of people are having issues with this, I’ve never experienced a problem though
My files app always shows it in my recents view so idk
Still can’t find 90% of the images i’ve downloaded, probably will factory reset my phone and them to still take up space.
they’re in the obviously named folder called “DCIM”
Digital Camera IMages.
@claymore I’ve actually tried looking in my DCIM folder but find nothing most of the time.
then it’s on another folder called pictures…or downloads, both of which is still located at the root of internal storage