15 ms·
Where did my 256 GB go? Mobile storage Analysis [pdf]
- loloquwowndueo 5y ago“a five-year longitudinal static analysis of millions of Android apps to study the increase in their sizes over time and identify various sources of app storage consumption. ” I thought it was going to be about analyzing what’s eating up my phones storage (system storage I’m looking at you) - and note it focuses on Android only. Not sure how much of the analysis extrapolates to iOS apps.
- PaulHoule 5y agoApple might not make developers have empathy for users, but it makes them pretend that they do. A software dev colleague of mine bought a ZTE phone early in the iPhone era and the immediate thing we noticed is that it would peg the CPU, get hot, and run out the battery in a few minutes. In the desktop world any program is entitled to peg the CPU as much as it likes; if it is blocking the render thread it might get some "tough love" from the OS, but otherwise it's not a problem. In mobile, the CPU is a precious resource. Android has not caught up with the idea that anything is precious.
- cecilpl2 5y agoIn newer versions of both iOS and Android, your app can get terminated by the OS without warning for misbehaving. Things like too many context switches, using too much CPU, or exceeding some internal and unspecified memory limit.
- machello13 5y agoThis isn't only present in "newer versions" of iOS — iOS has worked like that since day 1.
- saagarjha 5y agoAmusingly, iOS apps tend to be much larger than Android ones.
- loloquwowndueo 5y agoOh apps are huge but at least they are upfront about the size - except when they start downloading and caching crap (Amazon app is particularly egregious). :)
- marcosdumay 5y ago> Android has not caught up with the idea that anything is precious. I do really not want Google making this decision for me. If they decide to display a warning, or create a new permission for that, fine. But it's really not something for Google to decide in a centralized, "we don't care about individual use cases" procedure.
- jeroenhd 5y ago> Android has not caught up with the idea that anything is precious. I don't know what your brand or last device with this problem was, but there's a reason https://dontkillmyapp.com/ https://dontkillmyapp.com/ exists. Most of the battery issues were solved years ago with Android 6 (and then the situation improved with 7 and 8). An focused application (or applications, in split view) is able to drain the battery, but that's just intended behaviour. You wouldn't be able to use a battery app or play a mobile game like pokemon Go if the OS would limit the current application. I've only experienced the overheating problem on some midrange to cheap (<€200) Android devices, but that's usually because of the cheap, inefficient SoC that's found in the bottom of the spec sheets. My phone saves battery to the point of killing background apps that I don't want killed. Luckily, I can turn that shit off, though Xiaomi has three different ways to make sure background apps don't get killed that I need to work through.
- BeFlatXIII 5y agoIt’s barely related, but it makes me smile slightly that Pokémon Go is still the cross-platform standard bearer for excessive battery drain even five years after launch.
- z2 5y agoI've dabbled in Android development for a rather simple app, and am fighting to keep it in the single digit MB size. I was shocked that even after as much build optimization as possible on libraries, a DEX analysis shows a handful of built in icons and menu translations into just 5 languages occupies over 40% of the package. As an aside, I dug out an old 16GB Nexus 5 phone to use as a security camera monitor. With exponential app bloat, the basic camera app was a 300MB download, and ate 80% of the phone's free space. All that for a glorified video stream player. The rest of the phone with its outdated apps actually feels quite usable as a modern Android phone--what exactly did today's 10x size get us?
- xook 5y agoAnother aside: I believe part of the argument for moving to "flat design" (Material) was lower file sizes since it's all CSS or SVG, as opposed to possibly dozens of raster images at different resolutions for the multitude of screens. Yet here we are, with our flat design, but apps now gobble up precious storage space because of bloated shipped libraries.
- _jal 5y ago> I believe part of the argument for moving to "flat design" (Material) was lower file sizes If it was, that was a sucker-play. Just like with CPU, RAM, and traffic lanes, any resource optimization will simply make room for something else to occupy. The steady-state of storage media is full.
- deleted 5y ago[deleted]
- matheusmoreira 5y agoDoes your camera app really use over 1 GB of storage? Mine uses about 12 MB, still pretty obnoxious but nowhere near what you're describing.
- z2 5y agoCamera app as in a required smart home app to access the WiFi camera. About 300MB installed. It does do push notifications on motion detection so maybe that's 50MB there?
- prepend 5y agoI think app size is a lurking problem that needs to be addressed. I thought it was just me as a “power user” but then I noticed that my wife and kids were spending hours deleting stuff to make room for app updates. It’s a silent problem that people just seem to monkey around with. Some apps are huge, I have 256GB because I ran into problems with only 64GB. “enterprise” apps that use up lots of app storage and then require local data storage for caches to edit files. A big offender is Microsoft where the office apps are each 500MB and different apps are needed: Excel, Word, Office, OneDrive, PowerPoint. Why is Edge 200MB? It’s common for apps to be 250MB and grow and grow. I used Chase as my credit card and their app is 300MB. I keep the app because their web site is horrible and requires MFA to login, so the app is easier. It was impossible to use my phone with “only” 64GB without constantly deleting and reinstalling depending on what I needed at the time. I remember the days of small hard drives when bloat really mattered, but it seems like devs just assume that people only use their app and it’s not reasonable that the Gmail app requires 300MB or PayPal needs 250.
- MeinBlutIstBlau 5y agoIt still boggles my mind to this day that in the early 2010's, I was debating getting a 8gb or 16gb iPod Touch. Now I can't even imagine anything less than 128gb if I'm including videos and pictures on my phone. That's even with only essential or primarily used apps. If I had everything I'd want on it, 128gb still feels like not enough. Not to mention Android taking up an absurd amount of space.
- grawprog 5y agoI'm really surprised sometimes at the size of what should seemingly be tiny apps. An app with a single screen that does literally one thing can clock in at anywhere from 20-70MB it's ridiculous. Yet at the same time there's apps that manage to do a lot, but don't gobble up the space. Looking at something like the Infinity reddit client vs the official one. Infinity clocks in around 38MB the official client is around 100MB. They provide essentially the same functionality, the layout and UI is even very similar, yet one manages to be almost 2/3rds smaller in size.
- 5y ago
- tdeck 5y agoSurprised to see no mention of Unity.
- YuccaGloriosa 5y agoYou have to ask what is the motivation to keep the storage usage down, I can't see any. If an app runs at a speed acceptable to the end user, nobody cares.
- bee_rider 5y agoI'm tired of installing hard drives and I've run out of M.2 slots.
- kevin_thibedeau 5y agoLess code correlates with better performance (responsiveness, battery life, bug rate, etc). Running through multiple layers of indirection prevents us from reaping the full benefits of a pocket supercomputer. Nobody knows what they're missing out on because every platform does it.
- arvinsim 5y agoYou will have to 1. Inform users what they are missing out 2. Instill a culture of performance first over features in software dev shops. The financial incentives of doing these are not very compelling.
- 8note 5y agoid expect continuous network calls to make a bigger difference than having an extra java class inbetween
- comeonseriously 5y ago> ... nobody cares. Yes, people care. Your app is NOT the only one on my device.
- chakkepolja 5y agoYou have to ask what is the motivation to keep apps responsive. If the app runs without crashing, nobody cares.
- npteljes 5y agoMore like nobody issuing my paycheck cares. Also funny when people looks at a website and then complain about why the developers would do this. They did it because that's what they get paid for.
- deleted 5y ago[deleted]
- inetsee 5y agoI think part of the problem may be not taking advantage of external storage. I have an older Android phone with 32Gb internal storage and a 128Gb MicroSD card. I haven't had any storage problems because most big files go to the external storage without any effort on my part. I still have 10 Gb internal storage available, which is fine for my needs. I have an old Nook eBook reader that I haven't used in a very long time because if became impossible to update. There was an Android update that said it would let you configure external storage as a seamless extension of the internal storage. There was just one problem: Android insisted that Android's Apps be stored in internal memory. The poor old Nook only had 8 Gb of internal memory (what do you expect for only $49). The OS took almost 4 Gb, the Android Apps also took almost 4 Gb, leaving less than 100 Mb. After a while it became impossible to update and now it's in a box somewhere with all its other abandoned bretheren.
- brundolf 5y agoEven without external storage - my phone has just 64GB internal - I don't find myself using even half of it. Yet I often hear people saying they run out of storage. I don't know what I'm doing differently; my app list isn't hyper-minimalist or anything
- CameronNemo 5y agoMy storage is mostly eaten up by music, photos, and videos.
- brundolf 5y agoMy music is all streamed; even the stuff I own gets streamed from Dropbox I don't really have a video collection, though if I did I would use Plex or something I don't take a ton of photos - sitting at 6GB right now - though they also get backed up to Dropbox so I could delete them if I needed to
- inetsee 5y agoMy apps are all set up so that music, photos and videos all go to external storage. I have a 128Gb MicroSD card, and I'm using less than a quarter of the space.
- kaetemi 5y agoDeprecated Google apps that can't be uninstalled nor disabled, but still keep updating themselves to the last bloated version after you do uninstall the updates.
- techrat 5y agoAnd people ask me why I still root. Nothing like a phone with every app that can be frozen actually frozen. (App Quarantine)
- btdmaster 5y agoInterestingly enough though removing preinstalled apps with `adb pm uninstall --user 0` (0, perhaps unexpectedly, being the main user, not root) does have a similar effect to disabling it, except it saves space permanently and only leaves the original APK in case of factory resets (not only this, but this works on what cannot be disabled otherwise, e.g. Google Play on some devices). Just a side note that rooting may not be necessary. (even if I would love me a true Linux phone :)
- peterwandering 5y agoMy phone has storage capacity of 4MB :) it is plenty!
- chakkepolja 5y agoJ2ME?
- deleted 5y ago[deleted]
- amoorthy 5y agoI once built a prototype app to soft delete near-duplicate photos to save space. i.e. it would look at images that are very similar and identify the one that was sharpest, with the best lighting etc, and soft-delete the rest. The app worked but was very slow due to Python's image processing libraries. But if anyone here thinks this is a good idea happy to share how I did it as I'm sure a competent engineer can make this a reality.
- whichquestion 5y agoI wish I had something like this for my iPhone that would automatically soft delete duplicate photos, picking out the sharpest one. Maybe an app exists already but I haven’t looked super deep for it.
- V99 5y agoNot exactly the same but for Burst Mode photos (where they all start grouped together) it will automatically pick what it thinks is the best one, and you can: - Go to the burst in the photo roll - Tap "Select..." - Pick one (or more) - Tap Done - Tap "Keep Only 1 Favorite" to get rid of the others you didn't select.
- tomcam 5y agoI would love to read the write up, especially if it came with sample images.
- riston 5y agoWhat tools/apps are you using to figure out the size of applications and directories that are using the most?
- cocoafleck 5y agoI don't know what the paper used, but I like DiskUsage from F-Droid.
- markus_zhang 5y agoOne thing I noticed of my mobile games is that they seem to download a huge amount of items for each "event", and because they will reuse the resources for future event the downloaded items were never cleaned up. So eventually I got a blob of a couple of GB instead of half a GB in the beginning. However, since most events only come around a few times a year (e.g. Christmas event only comes once per year), it's frustrating to keep all those garbages on my phone and waiting for them to be read next year.
- aylmao 5y agoIt's crazy that Fornite on PC took almost 100GB of disk space not long ago. The managed to cut that down to under a third [1]. I suspect a lot of this reduction was probably loading content on-demand. Wouldn't be surprised if all the different items and event data were pre-downloaded before that update. Whatever it was, it was evidently not crucial since it's always used much less space on mobile— they just hadn't gotten around to keeping disk usage under control on PC too. [1]: https://www.theverge.com/2020/10/21/21526916/fortnite-pc-file-size-60gb-smaller-epic-games-optimization https://www.theverge.com/2020/10/21/21526916/fortnite-pc-fil...
- mjevans 5y agoI thought it might be a patent expiration, but while searching for what that might be I stumbled across: Betsy GPU texture https://godotengine.org/article/betsy-gpu-texture-compressor https://godotengine.org/article/betsy-gpu-texture-compressor It seems likely that the games now ship a small fraction of supported textures, and transcode at load for any unsupported devices?
- ajsnigrutin 5y agoI've had multiple relatives (ahem, samsung) phones somehow waste data... I'm talking 32gig phone, with 8gb 'system', 20gb "other", and a few apps. I can delete all the apps, app updates (because preinstalled apps are installed twice, once in the system partition and then a new version in the data partition), and 20gb is still missing. I can mount the phone, and find 5mb of random files, zero photos (i removed them earlier), and still, 20gb missing. I have a theory, that samsung updates leave some trash behind somewhere on the system partition and never clean up after themselves, because after a factory reset, and full upgrade, the space is back, even with all the apps and updates. I don't want to root those phones, becase they're not mine, and this brings in more issues (eg. eternal support), and factoy reset seems to be the only way to "fix" them.
- magila 5y agoI suspect the "fix" Samsung is hoping people use is to buy a new phone.
- CoolGuySteve 5y agoI had the same problem on my iPad. The “Other” category was taking up several GB and the only way to get the space back was to wipe it and restore from backup. It’s infuriating that Apple allowed it to happen in the first place. It’s yet another slow-motion quality degradation like the battery-induced downclocking a couple years ago.
- unhammer 5y agoDid you try (temporarily) off iCloud in photos? On one iphone, 85G was Other (<3G remaining free) until we turned off the iCloud stuff in Settings→Photos. Seems like some bug, since the iCloud account was capped at 50G and the feature was supposed to store "smaller versions" of the full size stuff in the cloud …
- iggldiggl 5y agoSemi-related: Older Android versions (up to 4.1.2 or so) used to have a bug whereby old native libraries weren't deleted when updating an app. I remember Skype being a particular offender, since their main native library included a version number in the file name, so with every update a new version of a multi-megabyte .so would be plonked onto your phone, but with all the previous versions of the library being left behind on your storage, eventually taking up a considerable amount of space after a couple of updates. Unless you were rooted, the only workaround to free up that space as an end user was completely uninstalling and then reinstalling the app. I tried contacting their support about it, but it was of course useless in trying to get them to understand the problem… Google in turn used to ship a number of 0-byte .so-files with their apps in order to circumvent the problem.
- mcguire 5y agoAfter reading the comments here, I think everyone needs to repeat the one true mantra: "machine time is cheaper than developer time". Anyone "optimizing" an app is wasting time and money. Anyone optimizing an app for space usage is doubly foolish: extra gigabytes are free. <- That's sarcasm, by the way. But if you asked any of the apps' developers, that is the answer you'll receive.
- markus_zhang 5y agoIt depends on your perspective I think. How many machines are we comparing with one developer?
- ticviking 5y agoCertainly my machines time is very cheap for them.
- romwell 5y agoYes, and the user's frustration (and time spent figuring out how to clean up space on what was a new phone just a week ago) also costs nothing to the developer. Sincerely, I hope this mantra dies.
- romwell 5y agoWhat I wish for a is a simple thing: - Apps declaring how much space they need - The OS enforcing that size as the quota. That's it. There's no need for the OS to figure out how much space to give to apps. This way, if I install an app that is purportedly a 2GB app, I'll know exactly how much space I'll lose. If an app needs more space after an update, that update would require a manual approval from the user. Something tells me that if app developers were required to be honest about their disk usage, and knew that he users would have to agree to a "This app wants 5GB more space after an update, are you OK with that?" prompt, we would not be where we are today. On top of everything else, I wish Android versions were held to the same standard, and that phones were advertised with the amount of free space available to the user.
- j1elo 5y agoI feel like app developers would try to do things right the first time, and after fighting the issue of users not accepting an extra 500 MB after an update, for the future they would learn to just request a good measure of their expected size x10, just to avoid that issue.
- romwell 5y agoGood luck with that later strategy - they would limit their user base to people with enough space for that. Imagine getting a notification that you don't have enough space to install Uber, but Lyft works fine. Or realizing that you don't have space for apps after installing WhatsApp, but not Telegram. Would be fun to see how the pressure on the devs works in this case.
- bsza 5y agoWhat would you use that information for? Would you refuse to use an online service, smart device or video game based on how much storage space the app asks for? Even though the actual space they will end up using might be only half of that or even less?
- gwillen 5y agoFor an app you haven't used in awhile, you'd probably uninstall it. For an app you're actively using, you'd probably accept the update, but there would likely be pressure on the devs from the percent of people who would uninstall it instead. I think the hope is that this would cause them to think twice about bloating for no reason.
- Dylan16807 5y agoI had an older android phone with 512MB. Which fit what it needed, until the google docs apps all started to get bigger and bigger. But I could fix that to some extent by moving them to the system partition. My current phone is nicer in many ways but it doesn't really do anything the very old phone couldn't.
- vmception 5y agoPeople should look at other perverse incentives not mentioned here My teams did many optimizations in mobile apps to keep file sizes small, only for more than one future employer (or relevant decision maker there) to question my experience because the executable sizes listed in the App Store are small “But at scale can you…” I’ll just put dummy files in thanks!
- bschwindHN 5y agoI hope you explained to this person(s) why app size doesn't equate to "scale" as they perceive it. Who cares if it's a future employer? If they don't listen and understand, they're not worth working for anyway.
- vmception 5y agoriiight a hiring decision maker who I wouldnt even report to made one gaff and therefore the whole company isnt worth working for privileged logic there mate
- bschwindHN 5y agoYou can call it privileged, I'll call it avoiding a company which doesn't seem to understand the basics of software development.
- njsubedi 5y agoAs an app developer (both Android and iOS), I can tell where. When I’m done with the basic app features the app is no more than 3-5 MB but then I can’t ship it without some libraries that make me money - analytics and ads. Then again, if I only integrate one or two ad network SDKs, the revenue from the app can’t even support its development. So I add 12-15 different SDKs from all the ad networks and have them compete for the ad space. Then again, I need things that track crashes, and then offer in-app support, then someone emails you that you can silently earn $xxx per day only by integrating their SDK. Why not? Who doesn’t like an extra $xxx a day? See what I did there? I turned that 3MB app to a 80MB app. Disclaimer: Most of my apps are ~15MB and I try to put them under 20MB on Android.
- pjmlp 5y agoIt went on Cordova, React Native, Xamarin, Qt, Flutter,....
- arvinsim 5y agoSome laptops still ship with 256GB storage for the base model.