android文件存储路径分为三小块:
1.app私有,用户不可见的/data/user/0 开头的:
context.filesDir --> /data/user/0/包名/files
context.cacheDir --> /data/user/0/包名/cache
context.getDir("TestDir") --> /data/user/0/包名/app_TestDir
2.app私有,用户可见的/storage/emulated/0/Android/data/包名/ 开头的:
context.externalFilesDir(null) --> /storage/emulated/0/Android/data/包名/files
context.externalCacheDir() --> /storage/emulated/0/Android/data/包名/cache
context.externalFilesDir("TestPicture") --> /storage/emulated/0/Android/data/包名/files/TestPicture
3.公共目录,用户可见的/storage/emulated/0 下的:
api:Enviroment.getExternalStorageDirectory,Environment.getExternalStoragePublicDirectory --> /storage/emulated/0
androidQ以后不能直接访问,只能通过ContentResolver访问,具体参考别人的一遍文章,
https://www.jianshu.com/p/d6e0271354d7
app私有的都是context的api,公共目录的都是Environment的api的。
android6和android10都有比较大的限制变化。