Android 文件路径简析

2019-11-06  本文已影响0人  众少成多积小致巨

1、概念

内存: 内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,所以说它是用于计算机运行时的,它不是用来存储数据的。

内部存储外部存储: 内部存储我们称为InternalStorage,外部我们称为ExternalStorage,这两个概念来自于早期的Android智能机,4.4以前,内置存储就是内部存储,外置SD卡就是外置存储。我们通过getDataDirectory就可以获取内置存储根路径,通过getExternalStorageDirectory就可以获取外置SD卡根路径。4.4以后外部存储就包含两部分了,其中通过getExternalStorageDirectory获取的是机身存储的外部存储,而外置SD卡我们则需要通过getExternalDirs遍历来获取了。

机身存储;机身存储是指手机自身携带的存储空间,出厂时就已经有了,4.4以前机身存储就是内部存储,4.4及以后机身存储包含了内部存储和外部存储。

RamRom,以及扩展存储(TF卡)的概念。一个手机里面有内存,手机内置存储,以及SD卡, 它们分别是Ram,Rom,以及TF卡,这三种卡的性能,材质及价格都不一样,都有各自的用处。

2、常用路径

1.1 内部存储路径

/data目录下的文件物理上存放在我们通常所说的内部存储里面

内部存储的根路径
Environment.getDataDirectory() = /data
某个应用在内部存储中的files路径
getFilesDir().getAbsolutePath() = /data/user/0/packname/files
某个应用在内部存储中的cache路径
getCacheDir().getAbsolutePath() = /data/user/0/packname/cache
某个应用在内部存储中的自定义路径
getDir(“myFile”, MODE_PRIVATE).getAbsolutePath() = /data/user/0/packname/app_myFile

1.2 外部存储路径

/storage目录下的文件物理上存放在我们通常所说的外部存储里面

获取外部存储的根路径
Environment.getExternalStorageDirectory().getAbsolutePath() = /storage/emulated/0
Environment.getExternalStoragePublicDirectory(“”).getAbsolutePath() = /storage/emulated/0

外部存储中的files路径
getExternalFilesDir(“”).getAbsolutePath() = /storage/emulated/0/Android/data/packname/files
外部存储中的cache路径
getExternalCacheDir().getAbsolutePath() = /storage/emulated/0/Android/data/packname/cache

1.3 其它

/system用于存放系统文件,/cache用于存放一些缓存文件

系统缓存
Environment.getDownloadCacheDirectory() = /cache
系统路径根
Environment.getRootDirectory() = /system

3、用户app路径

这个路径可以是内部存储,也可以是外部存储,就看用户安装的位置,也即是 /data/packname 或者 xxx/data/package
其目录下,常用的又有下面四个

getCacheDir()
getExternalCacheDir()
getFilesDir()
getExternalFilesDir(“”)

用户路径下文件会在用户卸载或者用户清除数据时删除
设置里清除缓存只是清除app运行时的数据

上一篇下一篇

猜你喜欢

热点阅读