From an Android point of view there are an → Internal Storage and an → External Storage.
1. Internal Storage
The Internal Storage can only be accessed with a rooted device.
1.1 The app package is saved in
1.2. The Private directory is
This private directory can be used e.g. with the File component to save / read text (setting the path without a slash). It can only be accessed by your app and is automatically removed when the app is uninstalled.
2. External Storage
The root directory of the External Storage is:
/storage/emulated/0/ or file:///mnt/sdcard/ or file:///storage/emulated/0/
To access the external storage, READ_ or WRITE_EXTERNAL_STORAGE permission is needed.
2.1. App-specific directory
In addition, there may be an app-specific directory (which can be created with Taifun’s File extension App Inventor Extensions: File | Pura Vida Apps or the FileTools extension FileTools : Some tools to work with files).
which is saved in the External (private) Storage, but does not require READ_ / WRITE_EXTERNAL_STORAGE permissions.
This app-specific (private) folder can only be accessed by your app and is automatically removed when the app is uninstalled.
2.2. External (removable / micro) SD card
There may also be another External Storage: a removable (micro) SD card, eg:
that can only be read (on modern Android versions, since Android 4.4 / KitKat).
The root directory of the External Storage
is displayed on the device as Internal Storage (unfortunately this is a bit ambiguous).
When targeting Android ≥ 10
To give users more control over their files and to limit file clutter, apps that target Android 10 (API level 29) and higher are given scoped access into external storage, or scoped storage, by default. Such apps have access only to the app-specific directory on external storage , as well as specific types of media that the app has created.