title: What's the current status of Internal vs External vs Removable vs Adoptable Storage on Android?
body: <p>I've been looking through Android documentation over years and I'm failing to understand what Google thinks following terms should currently mean. <strong>Does anybody know if following interpretation is correct?</strong></p>
  
  <p><strong>Internal Storage</strong> traditionally refers to device internal flash memory that cannot be removed and app always has read/write access to this area without any special permissions. There's no support for an app to share the contents of Internal Storage with other apps or for user to download the contents of Internal Storage e.g. via MTP. (It's still possible to download these files without root via <code>adb backup</code> and uncompressing the backup file. However, this cannot be done standalone on the device.)</p>
  
  <p><strong>External Storage</strong> refers to storage area shared by all apps. Usually the default camera storage folder is placed on this area. The actual backend may be internal non-removable flash chips on the motherboard or part or all of the removable MicroSD card depending on Android version and device manufacturer config. Modern Android requires apps to request permission to read or write this area. Android 8.0 or greater do not officialy support using whole MicroSD card as External Storage. Traditionally this is the storage area that is published over MTP but to make things more complicated some devices may call this "Internal storage" when viewed over MTP and <strong>Removable Storage</strong> will be called "SD Card" instead.</p>
  
  <p><strong>Removable Storage</strong> refers to storage area shared by all apps. This is different from External Storage by requiring MediaStore API to be used in modern Android (version 8.0 or higher?). Apps should be prepared to lose access to these files at any time due MicroSD card being unmounted or permissions revoked.</p>
  
  <p><strong>Adoptable Storage</strong> is a broad term where Android allows using MicroSD card for extending the storage space on the device. In practice, this changes the <em>implementation</em> of above to use the adopted MicroSD card for storing the data in <strong>Internal Storage</strong> and <strong>External Storage</strong>. Some people believe that the only way to stop using any MicroSD card as Adoptable Storage is to do factory reset for the device. In my experience it's possible to move apps &amp; data from Adotable Storage to normal locations and then "Forget" the MicroSD card used as Adoptable Storage. Obviously this is not going to fly unless the actually available device flash storage is able to hold all the data without the space provided by MicroSD card.</p>
  
  <p>See also:</p>
  
  <ul>
  <li><a href="https://commonsware.com/blog/2019/10/11/storage-situation-removable-storage.html" rel="nofollow noreferrer">https://commonsware.com/blog/2019/10/11/storage-situation-removable-storage.html</a></li>
  <li><a href="https://commonsware.com/blog/2019/10/06/storage-situation-internal-storage.html" rel="nofollow noreferrer">https://commonsware.com/blog/2019/10/06/storage-situation-internal-storage.html</a></li>
  <li><a href="https://commonsware.com/blog/2019/10/08/storage-situation-external-storage.html" rel="nofollow noreferrer">https://commonsware.com/blog/2019/10/08/storage-situation-external-storage.html</a></li>
  <li><a href="https://source.android.com/devices/storage/adoptable" rel="nofollow noreferrer">https://source.android.com/devices/storage/adoptable</a></li>
  <li><a href="https://commonsware.com/blog/2019/06/07/death-external-storage-end-saga.html" rel="nofollow noreferrer">https://commonsware.com/blog/2019/06/07/death-external-storage-end-saga.html</a></li>
  <li><a href="https://stackoverflow.com/q/5092591/334451">What are the differences among Internal storage, external storage, sd card and removable storage?</a></li>
  <li><a href="https://stackoverflow.com/q/10496320/334451">Android - Internal Storage vs External Storage when App installed on SD Card</a></li>
  <li>Scoped Storage: <a href="https://youtu.be/UnJ3amzJM94" rel="nofollow noreferrer">https://youtu.be/UnJ3amzJM94</a></li>
  </ul>
  
  <p><strong>Open questions</strong> (assuming above interpretation):</p>
  
  <ul>
  <li>Is <strong>External Storage</strong> going to be totally removed (Android 10 or 11)?</li>
  <li>Can app developers assume anything about the actual backend for directory returned by <code>getExternalFilesDir()</code>?</li>
  <li>Can app developers assume anything about the performance of <strong>Internal Storage</strong>? If I've understood correctly, the <strong>Internal Storage</strong> viewed by the app may actually be backed by very slow MicroSD Card.</li>
  <li>What is the recommended way to save files that are logically documents which should be available to all apps? (Think equivalent of "My Documents" in Windows.) Let's assume that user thinks these as real documents and does NOT expect them to vanish if the app used to create those files is uninstalled.
  <strike></li>
  <li>Do the app developers have to use Storage Access Framework for everything?</li>
  <li>What is the plan to ever get all apps to follow the new standard?</li>
  <li>How long is this plan going to last? If I've understood correctly, the rules have been changed  this far in Android 4.4, 5.5, 8.0 and 10.0.
  </strike></li>
  </ul>
  
  <p><strong>Update:</strong> somebody seems to have voted to close this because he or she considers the correct answer to be opinion based. I believe that the above question can be answered by references to publicly available documentation or source code. The point is that locating such sources is hard and this question is about locating those sources.</p>