How to determine the amount of app space available?


Question

I have recently experienced the "Can't install app in default location" error (code -20), despite 700 MB still free on my phone (no SD card present). Having googled and read, I now know that not all memory can be used to install apps. So while I have some space available, the app-partition (?) space may be up.



But I've never encountered any partitions on my phone. So the question is: how can I determine how much space I have on my phone for the apps?



I use Samsung Note 2, Android 4.4.2.
df output (using Terminal Emulator; please note that by now I have already uninstalled several apps, so the available space might have increased. I still don't know how to see it in this listing):



/mnt/secure/asec: Permission denied
/mnt/shell/container: Permission denied
/mnt/shell/emulated: Permission denied
Filesystem Size Used Free Blksize
/dev 892.5M 140.0K 892.3M 4.0K
/mnt/secure 892.5M 0.0K 892.5M 4.0K
/mnt/asec 892.5M 0.0K 892.5M 4.0K
/mnt/obb 892.5M 0.0K 892.5M 4.0K
/system 2.0G 1.7G 253.6M 4.0K
/efs 19.7M 9.5M 10.2M 4.0K
/cache 1.3G 21.9M 1.3G 4.0K
/preload 551.2M 141.9M 409.3M 4.0K
/data 10.5G 9.8G 702.1M 4.0K
/storage/emulated 892.5M 0.0K 892.5M 4.0K
/storage/emulated/0 10.4G 9.8G 682.1M 4.0K
/storage/emulated/legacy 10.4G 9.8G 682.1M 4.0K

Answer

It's your /data partition running low on free space (as always when this error occurs – see our insufficient-memory tag-wiki for details, first-aid and further information). According to the output you've provided, only 700 MB out of 10 GB are available. The "storage low" error is triggered when free space here reaches 10%.



This limitation was introduced to keep a "safety margin" for the system. So the user gets a warning when it was exceeded. In this state, of course Google Play Store refuses to install any new app, as it considers the system alreading running "low on space" and doesn't want to "worsen the situation".






When the 10% rule was introduced, devices came with much less internal storage, so it was quite reasonable (think of those devices with less than 512 MB). Nowadays, it does no longer seem a good idea – especially with MTP being introduced to have the "internal storage" and "internal SD card" on one partition, spanning multiple Gigabytes. Looks like this is an issue not yet addressed or "simply forgotten".


Topics


2D Engines   3D Engines   9-Patch   Action Bars   Activities   ADB   Advertisements   Analytics   Animations   ANR   AOP   API   APK   APT   Architecture   Audio   Autocomplete   Background Processing   Backward Compatibility   Badges   Bar Codes   Benchmarking   Bitmaps   Bluetooth   Blur Effects   Bread Crumbs   BRMS   Browser Extensions   Build Systems   Bundles   Buttons   Caching   Camera   Canvas   Cards   Carousels   Changelog   Checkboxes   Cloud Storages   Color Analysis   Color Pickers   Colors   Comet/Push   Compass Sensors   Conferences   Content Providers   Continuous Integration   Crash Reports   Credit Cards   Credits   CSV   Curl/Flip   Data Binding   Data Generators   Data Structures   Database   Database Browsers   Date &   Debugging   Decompilers   Deep Links   Dependency Injections   Design   Design Patterns   Dex   Dialogs   Distributed Computing   Distribution Platforms   Download Managers   Drawables   Emoji   Emulators   EPUB   Equalizers &   Event Buses   Exception Handling   Face Recognition   Feedback &   File System   File/Directory   Fingerprint   Floating Action   Fonts   Forms   Fragments   FRP   FSM   Functional Programming   Gamepads   Games   Geocaching   Gestures   GIF   Glow Pad   Gradle Plugins   Graphics   Grid Views   Highlighting   HTML   HTTP Mocking   Icons   IDE   IDE Plugins   Image Croppers   Image Loaders   Image Pickers   Image Processing   Image Views   Instrumentation   Intents   Job Schedulers   JSON   Keyboard   Kotlin   Layouts   Library Demos   List View   List Views   Localization   Location   Lock Patterns   Logcat   Logging   Mails   Maps   Markdown   Mathematics   Maven Plugins   MBaaS   Media   Menus   Messaging   MIME   Mobile Web   Native Image   Navigation   NDK   Networking   NFC   NoSQL   Number Pickers   OAuth   Object Mocking   OCR Engines   OpenGL   ORM   Other Pickers   Parallax List   Parcelables   Particle Systems   Password Inputs   PDF   Permissions   Physics Engines   Platforms   Plugin Frameworks   Preferences   Progress Indicators   ProGuard   Properties   Protocol Buffer   Pull To   Purchases   Push/Pull   QR Codes   Quick Return   Radio Buttons   Range Bars   Ratings   Recycler Views   Resources   REST   Ripple Effects   RSS   Screenshots   Scripting   Scroll Views   SDK   Search Inputs   Security   Sensors   Services   Showcase Views   Signatures   Sliding Panels   Snackbars   SOAP   Social Networks   Spannable   Spinners   Splash Screens   SSH   Static Analysis   Status Bars   Styling   SVG   System   Tags   Task Managers   TDD &   Template Engines   Testing   Testing Tools   Text Formatting   Text Views   Text Watchers   Text-to   Toasts   Toolkits For   Tools   Tooltips   Trainings   TV   Twitter   Updaters   USB   User Stories   Utils   Validation   Video   View Adapters   View Pagers   Views   Watch Face   Wearable Data   Wearables   Weather   Web Tools   Web Views   WebRTC   WebSockets   Wheel Widgets   Wi-Fi   Widgets   Windows   Wizards   XML   XMPP   YAML   ZIP Codes