Android 存储 API
internal storage 对应的存储目录
getCacheDir(): /data/data/<application package>/cache
getFilesDir(): /data/data/<application package>/files
external storage 对应的存储目录
getExternalFilesDir(): /sdcard/Android/data/<application package>/files
getExternalCacheDir() : /sdcard/Android/data/<application package>/cache
一般来说手机外部存储的空间比较大,所以如果需要保存比较大的文件时,应当存储在外部存储中。internal storage 和 external storage 在 app 被删除后相应的文件都会被删除。
如果需要存储不跟随 app 删除的文件,可以通过获取外部存储路径的方式
1 | File sdCardFile = Environment.getExternalStorageDirectory(); |
或者
1 | File sdDoc = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS); |
前一种方式自己指定目录,后一种根据系统提供的参数获取目录。
在使用外部存储之前最好先加一个是否存在外部存储的判断
1 | //Environment.isExternalStorageEmulated() 判断设备的外存是否是用内存模拟 |
更多关于存储的开发指南可以去 developer 网站参考。