首页
学习
活动
专区
圈层
工具
发布

Android的内部存储和外部存储怎么区分?

1.定义   内部存储:内部存储位于Android手机系统的data/data/这个目录下,内部存储是私有的,主要用于存储系统和应用程序的某些数据,对于其他应用程序来说是不可见的,并且会随着应用程序的卸载而被删除...外部存储:外部存储可以分为外部私有存储和外部公有存储。...外部私有存储位于/storage/emulated/0/Android/data/包名这个目录下,它和内部存储一样是私有的,并且其他应用程序是无法访问的,会随着应用程序的卸载而被清除。        ...内部存储: context.getFilesDir() context.getCacheDir()   //   data/data//cache   外部私有存储: context.getExternalFilesDir...注:在Android10之后,不能再使用外部公有存储下的两个方法了,应用程序只能访问自己的外部私有目录,所以Android10之后尽量使用外部私有存储下的两个方法。

2.5K11
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android外部存储

    ---- 一、各版本外部存储特性 1、Android 4.0 ● 支持模拟外部存储(通过FUSE实现) ● 出现了主外部存储,以及二级外部存储(没有接口对外暴露) ● 支持MTP(Media Transfer...//)不需要声明权限 ● 增加了Context.getExternalFilesDirs() 接口,可以获取应用在主外部存储和其他二级外部存储下的files路径 ● 引入存储访问框架(SAF,...必要性 ● FAT32 属于微软专利,可能存在许可和法律问题(相关文章); ● 可以定制Android自己的外部存储访问规则; ● 为多用户做铺垫; b....优点 ● 模拟外部存储容量和/data分区是共享的,用户数据在内外存储的分配更加自由; ● 模拟外部存储本身不可卸载,不会因为卸载导致应用访问出现问题,也减少了外部因素导致被破坏的情况; ● 所有的访问都经过...[12.png] ● 获取外部存储相关的环境变量。EXTERNAL_STORAGE环境变量是从旧版本沿袭下来的环境变量,记录了外部存储的传统路径。

    2.8K60

    《Android外部存储》

    () 接口,可以获取应用在主外部存储和其他二级外部存储下的files路径 引入存储访问框架(SAF,Storage Access Framework) ?...sdcard守护进程模拟外部存储大致流程(Android 4.0为例): 首先,指定/data/media目录用于模拟外部存储。...优点 模拟外部存储容量和/data分区是共享的,用户数据在内外存储的分配更加自由; 模拟外部存储本身不可卸载,不会因为卸载导致应用访问出现问题,也减少了外部因素导致被破坏的情况; 所有的访问都经过sdcard...EMULATED_STORAGE_TARGET记录绑定挂载的目标路径,应用获取的外部存储路径就在这个目录下。...b.实现原理 外部存储访问权限的动态授权,是利用FUSE和挂载命名空间这两个技术配合实现。

    3.2K50

    Android外部存储

    )不需要声明权限 ● 增加了Context.getExternalFilesDirs() 接口,可以获取应用在主外部存储和其他二级外部存储下的files路径 ● 引入存储访问框架(SAF,Storage...二 部分特性讲解 1.模拟外部存储 a. 必要性 ● FAT32 属于微软专利,可能存在许可和法律问题(相关文章); ● 可以定制Android自己的外部存储访问规则; ● 为多用户做铺垫; b....优点 ● 模拟外部存储容量和/data分区是共享的,用户数据在内外存储的分配更加自由; ● 模拟外部存储本身不可卸载,不会因为卸载导致应用访问出现问题,也减少了外部因素导致被破坏的情况; ● 所有的访问都经过...● 获取外部存储相关的环境变量。EXTERNAL_STORAGE环境变量是从旧版本沿袭下来的环境变量,记录了外部存储的传统路径。...b.实现原理 外部存储访问权限的动态授权,是利用FUSE和挂载命名空间这两个技术配合实现。

    1.3K30

    Android:StatFs类 获取系统sdcard存储空间信息

    在存储文件时,为了保证有充足的存储空间大小,通常需要知道系统内部或者sdcard的剩余存储空间大小,这里就需要用到StatFs类。 1....、获取手机外部总空间大小 /**     * 获取手机外部可用空间大小     * @return     */ staticpubliclong getAvailableExternalMemorySize...() 获取到下载的缓存目录 3:getExternalStorageDirectory()     获取到外部存储的目录 一般指SDcard 4:getExternalStorageState()          ...获取外部设置的当前状态 一般指SDcard, android系统中对于外部设置的状态,比较常用的是 MEDIA_MOUNTED(SDcard存在且可以进行读写) MEDIA_MOUNTED_READ_ONLY...5:getRootDirectory()                   获取到Android Root路径 6:isExternalStorageEmulated()    返回Boolean值判断外部设置是否有效

    3.5K50

    7.6 内部函数和外部函数

    01 关于变量的声明和定义 1、一个函数一般由两部分组成:声明部分和执行语句。 2、对变量而言,声明与定义的关系稍微复杂一些。...在声明部分出现的变量有两种情况:一种是需要建立存储空间的,另一种是不需要建立存储空间的。前者称为定义性声明,简称定义;后者称为引用性声明。...在定义内部函数时,在函数名和函数类型的前面加static即: static 类型名 函数名(形参表); 内部函数又称为静态函数,因为它是用static声明的。...3、通常把只能由本文件使用的函数和外部变量放在文件的开头,前面都冠以static使之局部化,其他文件不能引用。’...03 外部函数 1、在定义函数时,在函数首部的最左端加关键字extern,则此函数是外部函数,可供其他文件调用。

    1.4K3129

    内部表和外部表区别

    Hive 默认情况下会将这些表的数据存储在由配置项hive.metastore.warehouse.dir(如,/user/hive/warehouse)所定义的目录的子目录下。...管理表不适合和其他工具共享数据。 外部表:因为表是外部表,所以 Hive 并非认为其完全拥有这份数据。删除该表并不会删除掉这份数据,不过描述表的元数据信息会被删除掉。...两者区别 1.Hive 创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。...2.在删除表的时候,内部表的元数据和数据会被一起删除,而外部表只删除元数据,不删除数据。 管理表和外部表的使用场景 每天将收集到的网站日志定期流入 HDFS 文本文件。...在外部表(原始日志表)的基础上做大量的统计分析,用到的中间表、结果表使用内部表存储,数据通过 SELECT+INSERT进入内部表。

    22310

    java 内部类 静态内部类_java外部类和内部类

    new InnerClass().innerMethod()和new StaticInnerClass().innerMethod()....倒数5行,StaticInnerClass的innerMethod()报错,显示d() Q:什么是内部类?有什么作用?静态内部类和非静态内部类的区别? 总结 内部类就是定义在另外一个类里面的类。...静态内部类和非静态内部类的区别有: 静态内部类是指被声明为static的内部类,可不依赖外部类实例化;而非静态内部类需要通过生成外部类来间接生成。...静态内部类只能访问外部类的静态成员变量和静态方法,而非静态内部类由于持有对外部类的引用,可以访问外部类的所用成员 参考: 从一道面试题开始说起 枚举、动态代理的原理 java内部类有什么好处?...为什么需要内部类? 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

    99450

    Android 存储学习之在外部存储中读写文件

    上节学习了如何在手机内部存储中读写文件,本节学习如何在手机的外部存储中读写文件。那就是如何在Sdcard中读写文件。...那我们还是用以前登录界面的例子举例说明,(登录界面请看上节Android 存储学习之在内部存储中读写文件) 先我们显示写的代码: 当点击确定并且自动登录的钩是选中的,则就会在sdcard文件夹写创建一个...this, "用户名或密码不能为空", Toast.LENGTH_SHORT).show(); } else { //如果选中自动登录,我们就需要保存用户名和密码...fos.write((name + "##" + passwd).getBytes()); } else { Toast.makeText(this, "sdcard存储空间不足...fos.write((name + "##" + passwd).getBytes()); } else { Toast.makeText(this, "sdcard存储空间不足

    2.1K10

    7.6 C语言内部函数和外部函数

    01关于变量的声明和定义 1、一个函数一般由两部分组成:声明部分和执行语句。 2、对变量而言,声明与定义的关系稍微复杂一些。...在声明部分出现的变量有两种情况:一种是需要建立存储空间的,另一种是不需要建立存储空间的。前者称为定义性声明,简称定义;后者称为引用性声明。...在定义内部函数时,在函数名和函数类型的前面加static即: static 类型名 函数名(形参表); 内部函数又称为静态函数,因为它是用static声明的。...3、通常把只能由本文件使用的函数和外部变量放在文件的开头,前面都冠以static使之局部化,其他文件不能引用。’...03外部函数 1、在定义函数时,在函数首部的最左端加关键字extern,则此函数是外部函数,可供其他文件调用。

    1.7K3127
    领券