12 ms·
Android: Freeing up 60% of storage for apps by removing parts of the app
- martin_a 5y agoLooks like fighting the symptoms, not taking care of the root causes. There's probably so much bloat in frameworks, (illegal) telemetry and whatnot under the hood of those apps that should be tackled. For example: Why is the the Amazon app 229 MB heavy? 195 MB is the app itself, then there's ~61 MB of "data" and only ~26,5 MB of cache. It's a website, nothing more. How can it take 200+ MB of space? It's sick. edit: How does Android even calculate those numbers? They don't add up at all... edit2: see this recent post for reference: "I shaved 187MB off United Airlines' 439MB iOS app" https://news.ycombinator.com/item?id=30442529 https://news.ycombinator.com/item?id=30442529
- AndrewDucker 5y agoGoogle can't force people to not use frameworks. So they work on the bits they can control. I do agree that Amazon's app does seem to basically be their website, so I don't understand why it needs to be so big. (And the numbers on my phone add up)
- jessriedel 5y agoGoogle can make it easier to identify which apps are taking up space and slowing the system down, so that users will uninstall and developers will respond. I had an Android up until July and the interface for understanding and removing app memory usage was still poor.
- hombre_fatal 5y agoYeah, it would be nice if this was exposed to us. With just three apps open on my iPhone, sometimes I'll go back to one and it has to relaunch. Did it crash, use too much memory, or was it squeezed out by high memory consumption of the other two apps? Even desktop OS don't go far enough. Would be nice if Windows and macOS came with a top 5 {mem,cpu} consumers drop-down in the global menu bar without having to install a tool or open task manager. We complain about bloated apps but without providing insights to the user, there's no pressure for apps to optimize. If it seems like too much of a power-user feature, how about your run-tracking app silently closing on a long run because you were also listening to Spotify in the foreground? That's not a good experience. With no insights, all you have to act on is superstition. Do I need to find a run-tracker that doesn't crash or should I try a different music player? No data so who knows. We still insulate users from this data for some reason even on mobile devices that LRU-close apps when memory is tight. Let the people know, dammit.
- londons_explore 5y agoIt's the OS's fault for silently killing apps that are 'in use'. An app can already say 'I'm still doing a user visible action' (like logging a run, or playing music). Whenever one of those apps has to be killed to free up memory, a messagebox should be displayed saying "Spotify has quit due to low memory. Spotify was using 647MB and RunGPS was using 1454MB out of 3000MB system memory".
- mschuster91 5y agoThe problem is that device manufacturers employ additional killers and "efficiency managers" because too many app vendors use one of the various workarounds to collect data or whatever the fuck they are doing otherwise. Google won't do much against it because the worst of the data hoarders are the f2p games that make money for themselves by selling the user data they can get their hands on and make also a lot of money for Google via all the IAP commissions.
- jessriedel 5y agoGoogle could still choose to provide a clean and powerful interface on their flagship phones (Pixel) and the Android One certified phones. The existence of the latter program is evidence that Google does (or at least did) recognize the value in protecting the user experience from bad manufacturer incentives for consumers who are willing to pay a small premium. https://en.wikipedia.org/wiki/Android_One https://en.wikipedia.org/wiki/Android_One
- Cthulhu_ 5y agoI'd guess a built-in web browser like Electron apps? But that wouldn't make much sense since I'm sure android has a WebView built in which should use mostly built-in browser libraries / tech.
- MildlySerious 5y ago> Google can't force people to not use frameworks. So they work on the bits they can control. Couldn't they just penalize app size in play store rankings the same way they penalize slow sites in search results? Obviously for games and some types of applications you can't get around it, but I imagine Google has the resources to work around needlessly punishing those.
- cedilla 5y agoThey could, but it might be a pain to identify what's actually bloat.
- kelseyfrog 5y agoThat sounds like a very fun project. There is of course the technical work in identifying unused code and resources, a data science framing where statistical questions regarding bloat could be assessed, a process framing component where tooling and dev-platform interactions could be incentivized toward reducing bloat, and and economics framing where structural changes in Play store could change dev strategies toward bloat. Someone in charge of leading such a project has a lot of options available for analyzing and solving the problem, none of them mutually exclusive.
- spicybright 5y agoI don't think inherently large apps like games would be a problem on paper. Your game is competing against similarly sized games, not, say, a todo list app.
- bdben 5y agoAnd if someone else can publish an equally enjoyable game with a smaller size, then there's no reason not to reward them for it.
- Larrikin 5y agoHow does game app size factor into the enjoyment in any way? Android phones aren't like iPhones and most have sd card slots which are dirt cheap nowadays.
- perryizgr8 5y ago> Why is the the Amazon app 229 MB heavy? I checked mine. 201 MB app, 115 MB "data", 202 MB cache, 518 MB total Yes, the Amazon app, which literally feels like a webview wrapper around the mobile website, is taking up half a gigabyte of space on my phone.
- martin_a 5y agoAnd it even seems to provide less information than the website. Yesterday I was looking really hard on who exactly would be the seller for an item. Did not find that information on the app, while it's easily findable in the web version. Or do I have some quirky version of the app due to some A/B testing?
- jessriedel 5y agoI get why smaller companies use generic janky frameworks to throw up an app quickly and keep maintenance costs down. But why doesn't Amazon have the most streamlined and elegant app on the planet? They have the resources, expertise, and scale for it to make sense to invest heavily.
- grafs50 5y agoAmazon isn't going to care about the size of the app if consumers don't care. And the majority don't probably even realize.
- jessriedel 5y agoBut if 10% or even just 1% of users do care, it's absolutely worth it for Amazon. That's the point.
- zdragnar 5y agoWill that 1% stop buying from Amazon, or will they just use the website instead? Gut instinct (and personal experience) says they're not really losing anything here.
- PaulHoule 5y agoIf I had a choice between an app and a web site the web site almost always wins. ("app" rhymes with "crap")
- jessriedel 5y agoYes, I think people absolutely will buy less from Amazon if the mobile experience is just a bit slower or more annoying. We know from both other companies and Amazon's behavior that reducing friction has substantial impact on amount purchased.
- IgorPartola 5y agoWill you actually not buy things from Amazon due to their app size? If the answer is that you’ll continue spending money with them, you don’t care.
- danuker 5y agoAnother way to treat the symptom is to uninstall the app and use the website.
- TrianguloY 5y ago> edit: How does Android even calculate those numbers? They don't add up at all... No idea, but I would also like to know. My apps are so small that once they reported a negative size. (Found the picture! https://imgur.com/a/KDI9Y4M https://imgur.com/a/KDI9Y4M)
- TonyTrapp 5y agoYou should install a few more copies of that app to free up space on the device!
- BizarroLand 5y agoDownloadMoreStorage.com
- sfe22 5y agoHow do you get these tiny android app sizes. Even the most basic android app from Android studio is like 500kB
- TrianguloY 5y agoOr even 1MB for the hello world app, I know. But that's because of the AppCompat (and relative) libraries. If you program using the built in api only (this means the functions available to the target sdk, nothing newer) then your app size will be basically all assets, as code is very compact by itself. But of course, coding is by far more complex, you are like doing native programming (although easier than c). My apps are small tools, so I can. Oh, and don't use Kotlin. It's a wonderful language and far better than java, but horribly optimized.
- sfe22 5y agoWill try this for sure
- CJefferson 5y agoI have no idea what your suggestion is here? Do you want Google to just ban apps which are "too large"? They can't ban everything that's 229MB, that's reasonable for many types of games.
- ipaddr 5y agoWhat would happen is all of the content would load on first install.
- martin_a 5y agoThis is user-hostile behaviour and they don't like it, otherwise they wouldn't make the move forward to implement this feature. I'd love to see them get in their walled garden and clean up the ecosystem. They are doing reviews obviously, so they can/should tackle the bloat, too. Look here for example: https://news.ycombinator.com/item?id=30442529 https://news.ycombinator.com/item?id=30442529 ("I shaved 187MB off United Airlines' 439MB iOS app (telkins.dev)")
- UncleMeat 5y agoI can't even imagine the anger on the HN post. "Google kicked my app off Play because it was too big. WTF?"
- criddell 5y agoGoogle knows how many installs you have. I think once an app crosses some threshold, the app requirements should be stricter. If you have 100 million installs, then you better be able to justify the resource requirements of your app. 100 MB of bloat might not seem like much individually, but multiply that by 100 million and it adds up.
- Mr_Modulo 5y agoThe size of apps has gotten so bad Google is now forced to develop 2 versions of their core apps and 2 versions of their OS, one for devices with expendable resources (regular Android) and one for devices with limited resources (Android Go edition). I have removed most of Google's apps from my phone because of their extreme size. Looking on my phone it looks like the award for most bloated goes to Google Play Services at 500MB. Wow!
- martin_a 5y agoAlso "Google Play Services" is doing everything and nothing, it seems. I know it's a wrapper for various functions, but man... 500 MB...
- jshchnz 5y agoHere's Emerge Tools' size analysis of United's Android app: https://www.emergetools.com/app/example/united-android https://www.emergetools.com/app/example/united-android As you can see from the breakdown: 34% of the app is native libraries, another 34% is dex, 23% is resources, and another 8% is assets. Unfortunately they're still not using AABs, have about 4 MB of download size savings from just image optimization, have 1.1 MB of Emoji gif files , and are not optimizing their Native libraries for the specific architecture (using AABs would solve this)
- jijji 5y agoNo explanation of how this accomplished... What about the security implications if the archived user data is stored off-device?
- ben1040 5y agoIt explains exactly how it will work. They generate a tiny placeholder app package to replace the application itself on-device. This way it frees up the space used by the application data, without removing it altogether, so that the associated user data can still remain with it. It’s the same concept as iOS’ feature to offload unused apps, but this appears to be implemented in a way that is backwards compatible with older devices since the Play Store is able to manage the process of replacing and restoring the app package and not the core OS.
- pmontra 5y agoSo when we want to use again that 200 MB app we have to wait to download those 200 MB again. I have many data points for which the main source of clutter on the phones are WhatsApp images and videos received in a lot of chats and groups. I know people that remove them almost daily to let their 16 or 32 GB phone receive another day worth of messages.
- Arrath 5y agoYeah, WhatsApp really is the worst for that. And there really isn't a credible reason for why it can't save that media to the expandable storage.
- barrkel 5y agoThe article talks about reducing binary size, not the user data. I think the idea is that the Archival APK acts as a placeholder for the application, so the application is not actually uninstalled, and thus app-specific user data has a place to live.
- causi 5y agoStorage footprint is not and has never been my issue. Little knowledge of and no control over what bullshit an app may or may not be doing in the background is.
- barrkel 5y agoStorage footprint is an issue on my current corp-issued phone. Maybe your hobby horse is different to other people's hobby horse, but that doesn't mean that other people's hobby horses aren't important. This issue probably affects lower income people disproportionately, too.
- newaccount2021 5y ago
- davidkuennen 5y agoStorage usage / download size and data usage are more important to the average user than many developers think. I tried reducing all this to a minimum for my app and it helped getting more downloads and less churn. Now at 10MB download size, 40MB storage usage (10MB cache, 10MB data) and 5MB data usage. All this for a heavy user (myself).
- 22c 5y ago> more important to the average user than many developers think. On that, the larger your app is the bigger the target. When I run out of space on my phone I sort by largest app and start booting off the worst offenders. Small apps, even if I use them less often, are likely to fly under the radar.
- woliveirajr 5y agoOT but what's you app? you don't say it nor have a link/site on your bio.
- davidkuennen 5y agoIt's https://stockevents.app https://stockevents.app. An investment tracking app. Currently in the process of completely removing all third party analytics for the next version. Should reduce all this even more.
- deleted 5y ago[deleted]
- Cthulhu_ 5y agoYeah this is something that has been found before as well; it's why ~10 years ago, AppCode became a Thing (it's a vector image editor whose output is iOS drawing code, because 10 kB of code compiles down effectively and is less than providing 3-4x a png image for different resolutions). It's also why Apple has pushed some technologies for developers to reduce initial app size; optimized builds per device (you send Apple a bundle with e.g. multiple images at different resolutions, Apple only installs the ones the phone actually needs), dynamically loading content like levels (so the initial download is only the core libraries + the first level, the rest is downloaded and offloaded dynamically), etc.
- Bancakes 5y agoThat is literally bloat. Why does Android deviate from UNIX and reinvent the wheel into a wobbly ellipse all the time? Already, swiping an app away in the task manager awkwardly keeps it open in the background instead of closing. Now we awkwardly keep zombie apps. Please stop predicting what users want, give them reality. You have 20 background apps, you see 20 apps in the task manager. You install 100 apps, you have to sort and group 100 icons. You either have a usable app, or no app at all. Then, the user can say "damn, this bloat sucks. Please make things lean and simple, Mr. Corp."
- actuator 5y agoNot related to storage space, don't know if it is app developers or the Android permission system but I hope the storage permission gets fixed in Pixel. If I try to download a file, an app shouldn't need to get media permission. An app should be able to download files with either a download folder permission where it can write a new file but only read what it wrote unless explicitly given permission to
- EddieRingle 5y agoIt's the app developers. You do not need to request any permissions just to download files. See the table on this page: https://developer.android.com/training/data-storage https://developer.android.com/training/data-storage
- ShroudedNight 5y agoBased on your link, if they are using MediaStore and targeting Android 9 > Permissions are required for all files on Android 9 (API level 28) or lower I'm not an expert, but unless I'm missing something, there seems to be a legitimate set of circumstances where the requesting of additional permissions is required to function correctly. It seems overly reductive to deposit this entirely at the feet of app developers.
- actuator 5y agoCan't developers target different API level with different builds?
- AndrewDucker 5y agoWill it work offline? I don't want my apps to be invisibly replaced by something which then can't switch back because I'm on a plane.
- zapt02 5y agoIt won't, the whole point is to take less space. If you archived an app, you can't expect it to be able to be unarchived when you're offline. I fail to see much of a use case for it anyway since most apps require connectivity anyway.
- endisneigh 5y agoGo even further and realize the majority of apps don’t even need to be apps that begin with and free another 50%.
- clumsysmurf 5y agoLets start with actually being able to completely uninstall bloatware. On my Pixel 4a / Android 12 I can only "disable" most pre-installed apps, which are Google apps.
- 2Gkashmiri 5y agomotorola is awesome in this regard. i have disabled all of the stock apps out of habit and i would not touch a xiaomi, redmi, samsung bloat with a 10 fot pole.
- iggldiggl 5y agoNot perfect, though, because on my phone they've still blocked up a few 100 MBs of precious storage space with a completely useless [1] OEM partition. [1] It contains a file explorer app – given that at least at that time Android didn't really have a proper built-in file explorer this is actually a somewhat sensible idea, but then on the other hand as a power user I still prefer a file explorer of my own choosing (and with root support), so it's still mostly useless to me. Other than that, it contains what looks like configuration apps for a few American mobile service providers, plus something like some sort of Brazil-specific app store – all completely and utterly useless, especially given that my phone was bought in Europe and is on the European software update channel!
- andrewaylett 5y agoA factory reset must restore the device to an "out-of-the-box" state without needing to re-download anything, so the original versions are still in the system image -- changing the button to read "uninstall" rather than "deactivate" wouldn't make any difference to the amount of user space available.
- clumsysmurf 5y agoIf that /was/ true, out-of-the box state should be absolute minimal, not including things like Android Auto, Google TV, or Playground.
- Saris 5y agoGoogle could solve a lot of storage issues just by not allowing device manufacturers to lock apps so they can't be uninstalled. There is a huge amount of bloat on modern android phones and tablets that cannot be removed.
- ShroudedNight 5y agoIt's particularly frustrating that the lower-end the device, the worse this problem ends up. Someone who can only afford a phone with 16 GiB storage then ends up only have 2-4 GiB for discretionary use because of all the hostile shit the device manufacturer / carrier baked in to the system partition.
- spicybright 5y agoIf my car got 30 miles to the gallon, but required 10 of those miles to power the alternator, I wouldn't be able to advertise 30 MPG. It's a bit surprising phones can get away with this.
- namibj 5y agoThat wording is broken; not using a backwards unit like MPG (but rather one like the European l/100km (could also say "cl/km")) would make it much easier (the travel distance is typically a given, and the frequency/expense of tank stops what's being optimized).
- spicybright 5y agoIf you want to get pedantic, ok, but I think my point was communicated clearly enough. I'm not talking about accurate car nomenclature here.
- namibj 5y agoOh, I'm not faulting you for the mistake. I'm just using it as an example for why/how MPG is a bad unit for what it's typically used for.
- rabuse 5y agoAn even better solution to apps? Web apps. They take up no space (unless using storage API), are always up to date by default, can be added to devices and act like a native app, better permissions in place (typically requests when needing to actually use something, and not granted permission forever), no app store delistings, etc.
- londons_explore 5y agoThis is one of the features that google could only launch since forcing app developers to hand over their signing keys. This is an example of google creating and signing a 'placeholder app' with the developers signing keys. Obviously this example has benefits for the user... but an evil Google could use that same functionality to steal secrets from apps...
- josefresco 5y agoSo this is Google's version of Apple's "offloading"?
- jshchnz 5y agoApp size is really tough to solve and bloat is way more common than you might think. The reason for this is usually that teams are focused on getting out features ASAP, but have no insight into how their changes affect the app's performance. Our company, Emerge Tools (YC backed) is focused on trying to help devs solve the root cause of performance problems (size, startup time, etc.) by providing continuous monitoring and alerting for regressions directly on pull requests. We already work with some of the best mobile teams in the world (Dropbox, Faire, Life360). If you have interest in mobile performance we're hiring! shoot me an email josh@emergetools.com
- boredumb 5y agoBad software is being built based on the idea that you don't need to build a great application for users, but that you need analytics to sway potential investors or buyers of your solution. This trickled into becoming the norm, half the apps and websites we use have pounds of code and assets that are there to inform a half dozen 3rd parties of how much time I spent on a web page that I clicked, got distracted, and didn't even read anyways. Bloatware needs to be punished in app listings and search results before we ever get some sanity back. (go google your nearest orthodontist and take a look at what they are loading into your browser just for you to see a read only web page in 2022)
- Arrath 5y agoSo when can I use this tool to eat away at the huge chunk of my storage that is reserved by the system? Losing 10gb of my stock 32 is a tough pill to swallow.
- w0mbat 5y agoThis seems like a bad idea, since by the time you come to unarchive an app, it's probably not the current version anymore. It would be better to just retain a bookmark to the app on the Play store, save even more space.
- alimbada 5y agoHow about just not using Flutter?
- colordrops 5y agoOn a tangential note, while it doesn't free up space, App Warden [1] can disable trackers and loggers for all the apps on your device. It's a must-have IMO. https://www.xda-developers.com/warden-open-source-app-aurora-store-disable-trackers-loggers/ https://www.xda-developers.com/warden-open-source-app-aurora...
- cf100clunk 5y agoApp Warden seems to give a noticeable speed improvement on certain apps on older Android devices since they don't have to engage in the tracker/logger activities.