首页 > 其他分享 >Android的内部存储和外部存储怎么区分?

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

时间:2023-11-29 20:35:49浏览次数:35  
标签:存储 外部 区分 应用程序 Environment 私有 Android data

1.定义

  内部存储:内部存储位于Android手机系统的data/data/<包名>这个目录下,内部存储是私有的,主要用于存储系统和应用程序的某些数据,对于其他应用程序来说是不可见的,并且会随着应用程序的卸载而被删除。

  外部存储:外部存储可以分为外部私有存储和外部公有存储。外部私有存储位于/storage/emulated/0/Android/data/包名这个目录下,它和内部存储一样是私有的,并且其他应用程序是无法访问的,会随着应用程序的卸载而被清除。

       外部公有存储位于/storage/emulated/0目录下,例如Movies,Music,DCIM等等。它对所有的应用程序都是可见的,前提是该应用程序有外部存储权限,而且外部公有存储中的数据不会随应用程序的卸载而被删除。

2.使用哪些api进行访问?

  内部存储:

  1. context.getFilesDir()
  2. context.getCacheDir()   //   data/data/<包名>/cache

  外部私有存储:

  1. context.getExternalFilesDir(String type)
  2. context.getExternalCacheDir()      //  /storage/emulated/0/Android/data/<包名>/cache

  外部公有存储:

  1. Environment.getExternalStorageDirectory()
  2. Environment.getExternalStoragePublicDirectory(String type)

  参数type用于指定文件夹的类型,可以有以下取值:(getExternalFilesDir和Environment.getExternalStoragePublicDirectory这两个函数的参数type的取值是一样的)

  1. Environment.DIRECTORY_MUSIC
  2. Environment.DIRECTORY_PICTURES
  3. Environment.DIRECTORY_MOVIES
  4. Environment.DIRECTORY_DCIM
  5. Environment.DIRECTORY_DOCUMENTS

   ......

  注:在Android10之后,不能再使用外部公有存储下的两个方法了,应用程序只能访问自己的外部私有目录,所以Android10之后尽量使用外部私有存储下的两个方法。

 

标签:存储,外部,区分,应用程序,Environment,私有,Android,data
From: https://www.cnblogs.com/luqman/p/storage.html

相关文章

  • day06 基于NFS的存储解决方案 2.1
    一、基于NFS的存储解决方案NFS在K8S中的应用及配置1、前言NFS是基于网络共享文件的存储解决方案,及网络文件系统。NFS运行在一个系统网络上与他人共享目录和文件。通过使用NFS,用户和程序可像访问本地文件一样访问远端系统上的文件。nfs:是我们最终的存储nfs-client:用来动态......
  • Oracle数据库 使用存储过程判断索引是否存在,再删除索引
    不多废话DECLAREindex_countNUMBER;BEGIN--判断索引UK_TEST_2是否存在SELECTCOUNT(*)INTOindex_countFROMuser_indexesWHEREindex_name='UK_TEST_2';IFindex_count>0THENEXECUTEIMMEDIATE'DROPINDEXU......
  • Android-ActivityResultAPI
    Android-ActivityResultAPI1.推出目的如果你将项目中的appcompat库升级到1.3.0或更高的版本,你会发现startActivityForResult()方法已经被废弃了。现在更加建议使用ActivityResultAPI来实现在两个Activity之间交换数据的功能。2.传统写法-在两个Activity之间交换数据如......
  • Android踩坑小记-在onResume中申请权限
    Android踩坑小记-在onResume中申请权限最近遇见一个问题,在onResume中申请权限,比如申请定位权限,如下所示:@OverrideprotectedvoidonResume(){super.onResume();requestPermission();}@TargetApi(Build.VERSION_CODES.M)privatevoidr......
  • Android 两种方获取U盘的挂载路径
    第一种publicStringgetUsbPath(){try{StorageManagersm=(StorageManager)MyApplication.getContext().getSystemService(STORAGE_SERVICE);MethodgetVolumePathsMethod=StorageManager.class.getMethod("getVolumePaths&qu......
  • 文档型数据库:非结构化数据存储的最佳实践
    在当今数字化时代,数据的多样性和不断增长使得有效管理和存储变得尤为关键。传统的关系型数据库在处理结构化数据上表现出色,但随着非结构化数据的涌现,它们逐渐显得力不从心。文档型数据库(MongoDB、SequoiaDB等文档型数据库代表)作为一种新型的数据库范式,以其灵活性和高效性,成为解决非......
  • Android项目实战(六十七):自定义圆形进度条
    圆形进度条支持设置:1、圆环背景颜色2、圆管背景宽度3、进度圆环颜色4、进度圆环宽度5、圆环进度6、开始角度7、动画执行时间 自定义类:packagecom.example.mainactivty;importandroid.content.Context;importandroid.content.res.TypedArray;importandroid.......
  • 第7章 存储管理
     1、存储方式1.1存储连接方式存储设备按连接方式可分为以下三种类型:(1) 本地存储直接插在服务器上的硬盘,系统文件存放在本地。介绍主要集中在本地存储。(2)外部存储移动硬盘等设备,使用USB接口连接。外部存储可采用多种接口,如SCSI线、SATA线、SAS线、FC线。(3) 网络存储......
  • 存储机制(Window.sessionStorage 和 Window.locaStorage)
    <!DOCTYPEhtml><html><head><metacharset="utf-8"><title>webStorage</title><!--1.存储内容大小一般支持5MB左右(不同浏览器可能不一样)2.浏览器通过Window.sessionStorage和Window.locaStorage属性来实现本地存储机制3.相关API:1.XXXXXStorage.setItem('......
  • SQLSERVR 查询包含某个字符的存储/视图/表
    selectnamefromsysobjectso,syscommentsswhereo.id=s.idandtextlike'%是否生成SN%'ando.xtype='P'--查询特定的表(字段或者文字)在哪些存储过程中被使用SELECTDISTINCTOBJECT_NAME(id)--,textFROMsyscommentsWHEREidIN(SELECTidFROMsysobjectsWHEREt......