系统目录结构:
-
/system 系统目录,例如系统软件,字体,媒体,属性等基本信息
-
/data/data 目录,,这里包含了app的数据、文件、数据库等信息,并且以包名的形式来区分各个应用。既然提到这个目录,我就补充一下。在这个目录下,找到自己项目的包名,然后出现以下的目录结构:
-
/data/data/package-name/database 下存放着项目的数据库文件(.db文件)。
/data/data/package-name/database 下存放着项目的以SharedPrefrence形式保存的文件(.xml文件) -
/data/app/目录 用户安装的app或者是升级的app文件
-
/data/system/目录 这里存放着手机各项的系统信息。
-
/data/misc/目录 这里存放着大部分的WIFI、VPN信息。
-
/cache 此目录存放着是临时缓存的文件。
-
/etc 目录 这里存放了系统中几乎所有的配置文件。
/sdcard 是 /storage/self/primary 的一个符号链接
/storage/self/primary 是 /mnt/usr/0/primary 的一个符号链接
/storage/emulated/0 是 /mnt/usr/0/primary 的一个分区
参考博客:https://blog.csdn.net/qq_39074954/article/details/97613088
getCacheDir()、getFilesDir()、getExternalFilesDir()、getExternalCacheDir()
Cache和Files 二个目录分别对应 设置->应用->应用详情里面的”清除数据“与”清除缓存“选项
getxxxDir():对应/data/data/package-name/xxx
getExternalxxxDir():对应/sdcard/Android/data/package-name/xxx
下面以Package-name为:com.learn.test开始讲解
内部存储:
Environment.getDataDirectory(): /data
Context.getCacheDir(): /data/data/com.learn.test/cache
Context.getFilesDir(): /data/data/com.learn.test/files
Context.getFileStreamPath(""): /data/data/com.learn.test/files
Context.getFileStreamPath("test"): /data/data/com.learn.test/files/test
外部存储
Environment.getExternalStorageDirectory(): /sdcard
Context.getExternalCacheDir(): /sdcard/Android/data/com.learn.test/cache
Context.getExternalFilesDir(""): /sdcard/Android/data/com.learn.test/files
Context.getExternalFilesDir("test"): /sdcard/Android/data/com.learn.test/files/test
以上文件的内容会随着我们卸载应用而自动删除。如果我们在外部存储上新建任何文件夹,则需要手动清理,系统并不会因为卸载而删除。
公共存储目录
Environment.getExternalStorageDirectory(): /sdcard
Environment.getExternalStoragePublicDirectory(""): /sdcard
Environment.getExternalStoragePublicDirectory("test"): /sdcard/est
博客参考:https://blog.csdn.net/Kelaker/article/details/80471352