当前位置: 首页 > wzjs >正文

网站定制公司排行榜sem优化公司

网站定制公司排行榜,sem优化公司,做木材生意的外贸网站,邯郸之战一、背景 作为一个开发者,我们经常需要通过缓存一些文件到SD卡中,常见的方式就是,通过: File sdCard Environment.getExternalStorageDirectory(); 获取SD卡根目录,然后自定义文件/文件名进行文件存储.这样做法的结果就是,当手机安装了大量的app时,SD卡根目录会…

一、背景

作为一个开发者,我们经常需要通过缓存一些文件到SD卡中,常见的方式就是,通过:

File sdCard = Environment.getExternalStorageDirectory();

获取SD卡根目录,然后自定义文件/文件名进行文件存储.这样做法的结果就是,当手机安装了大量的app时,SD卡根目录会迅速变得杂乱不堪。并且在API 6.0之后,根目录文件存储是需要用户授权的,就算你在AndroidManifest.xml中配置了存储权限,用户不授权也是写不进去了

SD卡读写权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

其实,Google已经提供了最佳的外部存储方案,那就是统一路径为:

/Android/data/< package name >/files/… (该路径通常挂载在/mnt/sdcard/下)

外部存储路径调用方法是: context.getExternalFilesDir(dir).getAbsolutePath()   //通过context调用,

参数dir为自自定义文件夹.这个方法获得的文件存储路径适用于6.0以后系统,主要AndroidManifest.xml配置读写权限了,就不需要用户再授权了.

内部存储路径调用方法是:context().getCacheDir().getAbsolutePath() //通过context调用

二、本地存储路径常用方法介绍

1. getCacheDir()

  • 路径/data/data/<package_name>/cache/

  • 存储类型:内部存储(应用私有目录)。

  • 特点

    • 无需权限,应用卸载时自动删除。

    • 适合存放临时缓存文件(如图片缓存)。

    • 系统可能在存储不足时清理此目录(但依赖系统实现,不保证及时性)。

  • 示例

    File cacheDir = context.getCacheDir();


2. getFilesDir()

  • 路径/data/data/<package_name>/files/

  • 存储类型:内部存储(应用私有目录)。

  • 特点

    • 无需权限,应用卸载时自动删除。

    • 适合存放长期使用的私有文件(如用户配置、数据库文件)。

    • 系统不会自动清理,需开发者管理。

  • 示例

    File filesDir = context.getFilesDir();


3. getExternalFilesDir(String type)

  • 路径/Android/data/<package_name>/files/<type>/
    (例如 Environment.DIRECTORY_DOWNLOADS 指定子目录)

  • 存储类型:外部存储(应用私有目录)。

  • 特点

    • 从 Android 4.4(API 19)开始无需权限;但若访问其他应用的目录或公共目录(如 DCIM)仍需权限。

    • 应用卸载时自动删除。

    • 适合存放媒体文件等较大数据(如音视频、文档)。

    • 用户可通过文件管理器直接访问(需注意隐私问题)。

  • 示例

  • File externalFilesDir = context.getExternalFilesDir(Environment.DIRECTORY_PICTURES);


4. getExternalCacheDir()

  • 路径/Android/data/<package_name>/cache/

  • 存储类型:外部存储(应用私有目录)。

  • 特点

    • 与 getExternalFilesDir() 类似,但专用于缓存文件。

    • 系统或用户可能手动清理此目录。

    • 适合存放临时外部缓存(如下载的临时文件)。

  • 示例

    File externalCacheDir = context.getExternalCacheDir();

5. Environment.getExternalStorageDirectory()

  • 已废弃 (API 29+),建议使用 Context#getExternalFilesDir(String) 或其他存储访问框架

  • 返回共享的外部存储根目录 (如 /storage/emulated/0)

  • 需要 READ_EXTERNAL_STORAGE 或 WRITE_EXTERNAL_STORAGE 权限

  • 存储在此处的文件对所有应用可见,用户也可以通过文件管理器访问

  • 应用卸载时文件不会被自动删除

三、路径说明和对比

getCacheDir():/data/data/你的应用的包名/cache
getFilesDir():/data/data/你的应用的包名/files
getExternalFilesDir():SDCard/Android/data/你的应用的包名/files/
getExternalCacheDir():SDCard/Android/data/你的应用包名/cache/


从上文每个方法获取的路径中可以看出,getCacheDir()和getFilesDir()是获取手机自带的存储空间中的当前包文件的路径 ;
getExternalFilesDir()和getExternalCacheDir()是获取手机中SD卡的存储控件中的当前包文件的路径。

关键区别总结

区别方法存储位置是否需要权限卸载是否删除系统清理行为适用场景
external storage
外部存储
Environment.getExternalStorageDirectory()SD卡根目录:/storage/emulated/0已废弃,不建议再使用,推荐使用getExternalFilesDir代替
context.getExternalFilesDir(dir)路径:/storage/emulated/0/Android/data/<package_name>/files/...否(API 19+)较大的媒体或文档文件
context.getExternalCacheDir()路径:/storage/emulated/0/Android/data/<package_name>/cache/...否(API 19+)可能(用户/系统)外部临时缓存文件
internal storage
内部存储
context.getFilesDir()路径:/data/data/<package_name>/files适合存储应用长期使用的私有文件
context.getCacheDir()路径:/data/data/<package_name>/cache可能(低存储时)内部临时缓存文件

 注:/data/data/等同于/data/user/0

四、注意事项

1、权限问题

访问外部存储的公共目录(如相册)需 READ_EXTERNAL_STORAGE/WRITE_EXTERNAL_STORAGE 权限(Android 10+ 分区存储限制)。

私有目录(getExternalFilesDir/getExternalCacheDir)在 API 19+ 无需权限。

2、兼容性:

使用前检查外部存储是否可用:
Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)

3、存储选择建议:

小文件或敏感数据优先用内部存储(getFilesDir)。

大文件或用户需访问的文件用外部私有目录(getExternalFilesDir)。

4、清理责任:

缓存目录(getCacheDir/getExternalCacheDir)应定期清理,避免占用过多空间。

http://www.dtcms.com/wzjs/452137.html

相关文章:

  • 利用网站开发诈骗网站排名优化培训
  • 微信网站什么做南宁网站建设
  • wp做的网站打开域名会跳转到其他网站seo排名培训学校
  • 专业番禺网站建设百度号码认证
  • 重庆旅游seo整站优化青岛seo整站优化
  • 手机网站建站系统seoul怎么读
  • 邢台做网站的公司一键生成原创文案
  • 做的网站有营销效果吗市场营销的对象有哪些
  • p2p系统网站开发手机怎么建立网站
  • 白山市城乡建设局网站抖音seo优化系统招商
  • 潍坊知名网站建设怎么收费值得收藏的五个搜索引擎
  • 创联互动建设网站上海aso
  • 网站时间显示草根seo博客
  • 编程教程免费视频长沙seo服务哪个公司好
  • 西安市城乡建设档案馆网站武汉seo计费管理
  • 部门网站建设的意义网络安全培训最强的机构
  • gta5此网站正在建设关键词优化公司哪家推广
  • 网站建设域名什么意思足球比赛统计数据
  • 红塔网站制作万江专业网站快速排名
  • 做网站 用什么语言好网络营销的作用和意义
  • 嘉兴网站建设嘉兴网站推广百度网站怎么优化排名靠前
  • 音乐网站怎么做无线增值业务批量查询神马关键词排名
  • 海口网站运营托管报价谷歌搜索引擎为什么打不开
  • 做网站接单渠道百度文库首页
  • 绚丽网站短视频营销方式有哪些
  • 网站推广的建议什么是网站推广策略
  • 效果好的免费网站建设绍兴seo推广
  • javaee做网站建设营销策略分析论文
  • ie9网站后台编辑器推广官网
  • vps做电影网站百度搜索排行榜前十名