玖叶教程网

前端编程开发入门

【Android小纸条】Android的内部存储与外部存储

Android的存储的分为:

  • 内部存储
  • 外部存储(SDCard、移动U盘等)

内部存储:内部存储指的是App的内部存储空间,路径通常为:/data/data/<包名>/...,Android中的SharedPreferences、database、so库文件等都存放于此。

  1. /data/data/<包名>/cache:缓存部分APP运行中产生的临时文件
  2. /data/data/<包名>/databases:数据库默认的生成目录(可以通过重写ContextWrapper修改)
  3. /data/data/<包名>/files:App项目的assets中的文件
  4. /data/data/<包名>/lib:存放so库文件
  5. /data/data/<包名>/shared_prefs:存放SharedPreferences产生的xml文件
  6. /data/data/<包名>/app_webview:webView的缓存目录(HTML5使用的LocalStorage也是存放于此)

外部存储:外部存储指的是Android手机自身扩展的存储空间或者外部插入SDCard的存储空间,路径通常为:/storage/sdcard、/mnt/sdcard、/storage/emulated/0、/sdcard等,这些路径全部都是指向同一个存储空间地址。

在访问外部存储时,需要声明SDCard的读写权限。

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

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

存储数据路径的选择:

会随着App的删除而移除的数据,会被系统设置中的“数据清理”功能所清除。此时应该选用私有目录

1.内部存储:/data/data/<包名>/...
2.外部存储: /storage/emulated/0/Android/data/<包名>/... 
 
1.内部存储:context.getFilesDir()、context.getCacheDir()等
2.外部存储:context.getExternalFilesDir(type)、context.getExternalCacheDir()等 

注意点:由于内部存储空间有限,较大的文件应该优先缓存在外部存储的项目私有目录中。

共享给系统其它App且不随App删除而移除的文件。此时选用公共目录

外部存储:/storage/emulated/0/type
外部存储:Environment.getExternalStoragePublicDirectory(type)

其中的type指的是Android系统提供的标准目录类型(其实就是文件夹名称):

- android.os.Environment.DIRECTORY_MUSIC //音乐存放的标准目录
- android.os.Environment.DIRECTORY_PODCASTS //系统广播存放的标准目录
- android.os.Environment.DIRECTORY_RINGTONES //系统铃声存放的标准目录
- android.os.Environment.DIRECTORY_ALARMS // 系统提醒铃声存放的标准目录。
- android.os.Environment.DIRECTORY_NOTIFICATIONS //系统通知铃声存放的标准目录
- android.os.Environment.DIRECTORY_PICTURES //图片存放的标准目录
- android.os.Environment.DIRECTORY_DCIM //相机拍摄照片和视频的标准目录
- android.os.Environment.DIRECTORY_MOVIES //电影存放的标准目录
- android.os.Environment.DIRECTORY_DOCUMENTS //文档
- android.os.Environment.DIRECTORY_DOWNLOADS //下载的标准目录E

END

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言