当前位置:首页 » 安卓系统 » android内部存储路径

android内部存储路径

发布时间: 2023-08-10 02:39:37

1. Android 内部存储/外部存储 及 读写权限

Android 使用 VFS (Virtual File System) 虚拟文件系统。VFS提供了供存储设备挂载的节点,同一存储设备经过分区后,不同的分区可以挂载到不同的节点上,如手机的内置存储卡。

内置存储卡 / 外置SD卡
内部存储 / 外部存储

VFS 的目录以 / 为根节点,根节点下面又有不同的节点。物理存储设备就是挂载到这些节点上。

内部存储卡/外置SD卡 内部存储/外部存储

首先明确, 内置存储卡/外置SD卡 是在 物理层面 相对于 手机大众用户 来说的。
外置SD卡:可手动插拔的SD卡。
内置存储卡:焊接在手机内部不可拆卸的存储卡。

而, 内部存 /外部存储 是在 文件系统逻辑层面 相对于 开发者 来说的,指具体的路径。
一般针对某个应用而言的,属于该应用的存储路径叫内部存储,反之为外部存储。

路径: /data/data/package_name

/data/data/ 下都是已安装应用的目录,该目录下包含的文件都是以包名作为文件名的目录,例如 /data/data/com.sankuai.meituan

获取内部存储的方式如下:

其中,参数 mode 指创建模式,一种 4 种

注意: Android 7.0 以上 android.os.Build.VERSION.SDK_INT>=Build.VERSION_CODES.N 使用3/4 常量时,将会导致SecurityException,这意味着 不能通过名称共享私有文件
尝试共享 file://URI URI将会导致FileUriExposedException,StrictMode API政策禁止在您的应用外部公开file://URL。如果您的应用需要与其他应用共享私有文件,则可以使用 FileProvider 与 FLAG_GRANT_READ_URI_PERMISSION 配合使用。 Android 7.0 行为变更 通过FileProvider在应用间共享文件吧

外部存储,可以是 外置SD卡 或 内置存储卡的部分分区。

外部存储,分为 公共目录 和 私有目录

获取方式

检查可用性的方法:

Android 4.3 以下,只能通过 Context#getExternalFilesDir(type) 来获取外部存储在内置存储卡分区的私有目录,无法获取外置SD卡。

Android 4.3 开始,可以通过 Context#getExternalFilesDirs(type) 获取一个File数组,包含了内置存储卡分区和外置SD的私有目录地址。

可以使用兼容库的静态方法 ContextCompate.getExternalFilesDirs() 兼容 4.3。

感谢以下文章作者
解析Android内部存储、外部存储的区别

2. 安卓系统的通讯录里的Vcard文件路径在哪里

安卓手机通讯录存放位置:data/data/com.android.provides.contacts。唤信

打开步骤如下:

1、打开“我的文和改轮件”。



(2)android内部存储路径扩展阅读

Android平台的优势:

1、开放性:

在优势方面,Android平台首先就是其开放性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显着的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成歼银熟。

开放性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。

2、丰富的硬件:

这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。

功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容,如同从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移。

3、Google应用:

在互联网的Google已经走过10年度历史,从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务。

3. Android存储及路径

分为:内部存储和外部存储

如何区分内部存储和外部存储:可以从物理和逻辑区分

从物理的角度区分,内部存储就是手机自带存储空间,外部存储就是外部接入的存储空间例如SD卡

从逻辑意义上区分,data,system 目录就是手机的内部存储,而 mnt 或者 storage目录下的sdcard0指向的sdcard目录就是外部存储。如果是手机自带的外部存储被称为机身外部存储,外置的SD卡则称之为外部存储。当然两者都称为外部存储也没关系。这里描述的内部存储和机身外部存储都属于机身存储;

逻辑区分是从4.4以上版本开始的;

获取内部存储路径和api对应关系

1,通过Environment

2,通过上下文Context

Build.VERSION_CODES.LOLLIPOP及以上版本新增的API

Build.VERSION_CODES.N及以上版本新增的API

特点:

1、内部存储路径中的文件是分类存储的,我们无法干涉,除了cache目录,别的目录系统不会自动创建

2、除了files目录,别的目录我们几乎都是无法手动操作的

3、别的App几乎无法访问内部存储中的数据,除了用非法手段或者我们主动暴露

4、内部存储目录下的文件夹及文件会随着app的卸载而被系统自动删除

外部存储又可分为共有目录和私有目录;

私有目录

私有目录:不需要访问权限

Android 在外部存储空间中也提供了特殊目录供App存放私有文件,该路径为:/storage/emulated/0/Android/data/包名/

注意:应用安装之后/storage/emulated/0/Android/data/是没有对应的应用文件夹的,需要手动调用对应的API创建;

获取私有目录路径

共有目录

共有目录:需要申请权限才能访问

权限:6.0以上需要动态申请

获取共有目录的API 29中已过时:

4. Android数据存储之File总结

在使用File存储App数据时,我们需要了解Android系统的存储系统。Android的存储分为内部存储和外部存储。

由于Android系统的厂商比较多,对于外部存储目录的定义有所不同,可能在根目录下的mnt,sdcard和storage下。以storage为例,打开emulated/0目录,外部存储目录就出现了。虽然可以通过多种路径打开外部存储文件,但是最终他们的路径是相同的:

mnt:

storage:

sdcard:

外部存储目录下包含两大类:公有目录和私有目录

私有目录:

对比下来External有以下几点优点:

缺点:

内部存储与外部存储权限申请对比如下:

首先我们要获取外部存储目标文件的路径:

然后确定自己需要创建的文件名,结合上面的到的路径,创建一个File对象:

Android系统默认数据清理的路径是,内部存储目录中相应的cache文件夹中的文件和外部存储中相应的cache文件夹中的文件。

你的app的internal storage 目录是以你的app的包名作为标识存放在Android文件系统的特定目录下[data/data/com.example.xx]。 从技术上讲,如果你设置文件为可读的,那么其他app就可以读取你的internal文件。然而,其他app需要知道你的包名与文件名。若是你没有设置为可读或者可写,其他app是没有办法读写的。因此只要你使用MODE_PRIVATE ,那么这些文件就不可能被其他app所访问。

另外记住一点,内部存储在你的APP卸载的时候,会一块被删除,因此,我们可以在cache目录里面放置我们的图片缓存,而且cache与files的差别在于,如果手机的内部存储空间不够了,会自行选择cache目录进行删除,因此,不要把重要的文件放在cache文件里面,可以放置在files里面,因为这个文件只有在APP被卸载的时候才会被删除。还有要注意的一点是,如果应用程序是更新操作,内部存储不会被删除,区别于被用户手动卸载。

不管你是使用 () 来存储可以共享的文件,还是使用 getExternalFilesDir() 来储存那些对于你的app来说是私有的文件,有一点很重要,那就是你要使用那些类似DIRECTORY_PICTURES 的API的常量。那些目录类型参数可以确保那些文件被系统正确的对待。例如,那些以DIRECTORY_RINGTONES 类型保存的文件就会被系统的media scanner认为是ringtone而不是音乐。

在开发中,不建议往内部存储中写太多的数据,毕竟空间有限。外部存储在使用的时候最好能够将文件存放在私有目录下,这样有利于系统维护,也避免用户的反感。

彻底理解android中的内部存储与外部存储

Android存储挖坑记

缓存文件可以放在哪里?它们各自的特点是什么

5. 手机内部存储空间是哪个文件夹

/storage/emulated/0 手机的内部储存根目录,/storage/emulated/1 手机的内存卡储存根目录。

android的API的得到的就是/storage/emulated/0/,这个路径我们用的时候一般直接进/sdcard/或者/mnt/sdcard/,其实是一个相同的位置。

/storage/emulated/0这个是手机内部存储空间(即手机内存),手机连接电脑后,在手机上选择管理文件就可以查看了。



扩展汪搭资料

主要敬余包含自身系统占据的空间和用户可用的空间困稿拿两部分。ROM相当于PC机上的硬盘,用来存储和保存数据。

即使是断电,ROM也能够保留数据。手机中的系统文件,或者图片、音乐、照片等通常是存储在这里面的。

从技术上讲,这个代码在Windows上也能运行,因为python会在调用open()函数时识别出任何一种斜杠。即便如此,你也不应该依赖它。

不是所有的python库都可以在错误的操作系统上使用错误的斜杠,特别是当它们有外部程序或库接口时。并且,Python对混合斜杠类型的支持仅限Windows,它无法反向工作。

参考资料

网络—手机系统内存

凤凰网—Python小技巧:3个处理文件路径的简单方法

6. android系统,手机拍完的视频存在哪个文件夹里

camera文件夹。

在相册点开该视频的详细信息可以看到具体完整路径,完整路径是:文件管理→内部存储→DCIM→Camera。

以荣耀10为例,查看路径并找到该文件的步骤:

1、手机桌面点击相册。

7. 安卓 文件夹目录整理

记录一下开发中遇到的一些目录。
在开发中会有内部存储器(Internal Storage)和外部存储器(External Storage)。

内部存储,路径:data/data/packageName/(此部分的根目录)。这个目录下的文件为应用私有的,其他的应用是无法访问的。同时此目录下的文件是会随应用的卸载而被删除。 读写此目录下的文件是不需要权限的。

- getDir(String name, int mode) 返回对应目录下的File文件夹对象。
- getFilesDir() 返回根目录/files文件夹, Context.openFileInput() 和 Context.openFileOutput 都是这个文件夹。
- fileList() 返回的是files下的所有文件名
- deleteFile(String name) 删除files下指定名称的文件。
- getCacheDir() 该方法返回的是根目录/cache的File对象.当Android的内部存储容量过低时,android会自动清除缓存文件

外部储存,在此存储数据是不安全的。在这部分存储,个人可以分为两个部分来总结。

1.本应用相关目录
此部分路径为/storage/emulated/0/Android/data/packageName/。此目录下的文件会随软件的卸载而被删除。 在4.4之后读写此目录下的文件不需要权限 。但是这个目录下的文件可以被用户以及带有 WRITE_EXTERNAL_STORAGE 或 WRITE_EXTERNAL_STORAGE 权限的应用读取或修改。

- getExternalFilesDir(String type) 返回/storage/emulated/0/Android/data/packageName/files/type文件夹,若type为 null 则返回/storage/emulated/0/Android/data/packageName/files文件夹。
- getExternalCacheDir() 返回/storage/emulated/0/Android/data/packageName/cache文件夹

2.外部自定义目录
除1以外的目录。读写这部分文件需要 WRITE_EXTERNAL_STORAGE 或 WRITE_EXTERNAL_STORAGE 权限, 6.0以上需要运行时权限。这部分文件是不会随应用被卸载而删除。

- Environment.getExternalStorageDirectory() 返回/storage/emulated/0文件。

热点内容
ftp的服务系统主要包括什么 发布:2025-02-03 21:41:33 浏览:304
换汽车压缩机 发布:2025-02-03 21:38:10 浏览:66
安卓版的迷你世界怎么登录 发布:2025-02-03 21:28:05 浏览:586
dt如何编译 发布:2025-02-03 21:16:59 浏览:564
unity调用脚本 发布:2025-02-03 21:13:21 浏览:268
php方法类 发布:2025-02-03 21:01:56 浏览:443
电脑基岩版材质包怎么安装到服务器里 发布:2025-02-03 20:57:33 浏览:391
linux文件组 发布:2025-02-03 20:53:51 浏览:330
db2存储执行变慢 发布:2025-02-03 20:42:21 浏览:766
滑板鞋脚本视频 发布:2025-02-02 09:48:54 浏览:433