大部分应用是直接在SDcard 的根目录下创建一个文件夹,然后把数据保存在该文件夹中。
这样当该应用被卸载后,这些数据还保留在SDCard中,留下了垃圾数据。
如果你想让你的应用被卸载后,与该应用相关的数据也清除掉,
通过Context,getExternalFilesDir 方法可以得到SDCard/Android/data/你的应用的包名./files/目录,一般放一些长时间保存的数据。
public abstract File getCacheDir ()
该目录主要用于存放缓存文件,当系统的内存存储空间紧张时,该目录下的文件会被删除掉。关于这些文件究竟会在存储空间剩余多少的情况,没有严格的标准保障。
注意:你不应该依赖系统来清理这些缓存文件,你应该对这些缓存文件占用的最大存储空间设定个最大值,比如是1M,当实际占用空间超过这个值时,你应该对这些缓存文件做相应的清理工作(prune)。
public abstract File getDir (String name, int mode)
该函数主要用于得到一个文件夹的句柄,并通过该句柄创建和访问外文件夹。
public abstract File getFileStreamPath (String name)
返回文件系统上胡绝对路径,其中存储了一个使用openFileOutput(字符串,int) ,创建的文件
public abstract File getFilesDir ()
将绝对路径返回到文件系统上的目录,其中存储了使用openFileOutput(字符串、int)创建的文件。
Environment中关于内存部存储的重要函数
public static File getDataDirectory ()
用File返回数据文件的根目录,返回的文件的路径为“/data”。该目录下的文件是只读。应用程序无法对该目录下的文件进行写操作。
public static File getDownloadCacheDirectory ()
用File返回缓存文件的根目录,返回的文件的路径为“/cache”。对于第三方应用程序。该目录下的文件是只读。第三方应用程序无法对该目录下的文件进行写操作。
public static File getRootDirectory()
用File返回Android系统文件的根目录,返回的文件的路径为“/system”。该目录下的文件是只读。应用程序无法对该目录下的文件进行写操作。