Android的文件基础知识

内部存储和外部存储

在这里插入图片描述

在Android4.4以前,内部存储(Internal Storage)就是指手机机身存储,而外部存储(External Storage)则指外置SD卡。

而在Android4.4及以后,在没有外置SD卡的情况下机身存储分为了内部存储(Internal Storage)和外部存储(External Storage);如果加上外置SD卡则外置SD卡和机身存储的外部存储都算作外部存储(External Storage)

//在Android4.4及以后提供了getExternalFilesDirs方法来获取所有的外置存储
File[] files =  getExternalFilesDirs("");

Android系统中的文件夹

在这里插入图片描述

data目录

/data目录就是所谓的内部存储(ROM),但是当手机没有root的时候不能打开此文件夹。

  1. data/app/

存放所有用户安装的apk文件,不包括系统默认应用文件

  1. data/data/包名/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jv9LwiLm-1661177297780)(https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2020/3/29/171257f84ba6265b~tplv-t2oaga2asx-image.image)]

每个应用的数据都存放在以包名为命名的文件夹下,如图:

  • cache:缓存目录
  • databases:数据库目录
  • files:文件存储目录
  • shared_prefs:SharedPreferences文件存储目录
  1. /data/misc/

这里存放着大部分的WIFI、VPN信息。

  1. /data/user/0/

/data/data目录实际上软连接到/data/user/0目录,相当于/data/data目录是一个指针指向
/data/user/0目录.

在Android4.2之后,Android推出了一个“多用户”的功能特征,意味着一台设备可能被多个人同时应用,因此需要将每个人的数据、应用、个性配置分开。为了区别数据就用数字来区别多用户,这里的0就是指第一个用户

软连接可用看Linux软连接和硬链接

system

Android系统文件,需要root权限

  1. /system/app/

这里存放一些系统的app

  1. /system/fonts/ 目录

这里存放系统的字体文件

  1. /system/lib/ 目录

这里存放的几乎是所有的共享库(.so)文件。

  1. /system/media/ 目录

这里用来保存系统铃声、系统提示音。

storage

storage目录就是外部存储,包括了机身内部存储和外置SD卡。注意不同的版本存储数据的位置不同,例如:

Androidr4.4.2 带SD卡(没有Android4.4的手机,数据来自网络)

位置 路径 获取路径的api
机身外部存储 /storage/emulated/0/Android/data/packname/files getExternalStorageDirectory()
外置SD卡 /storage/sdcard1 getExternalFilesDirs()

Android 8 小米

位置 路径 获取路径的api
机身外部存储 /storage/emulated/0/Android/data/packname/files getExternalStorageDirectory()
外置SD卡 /storage/sd_name getExternalFilesDirs()

sdcard

详情看Android内、外存储易混淆点剖析(/mnt/sdcard、/storage/sdcard0、/storage/emulated/0等区别)

获取Andorid中的目录

以下api返回的值均为Android O下返回的值

内部储存目录

    //创建/data/user/0/packagename/files文件夹,随着应用位置的改变,位置可能改变
      context.getFilesDir();
       //创建/data/user/0/packagename/cache文件夹当需要空间时,
       //系统会自动删除其中的文件(先删除存在最长时间的)
      context.getCacheDir(
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Android的系统架构 6 一、应用程序 6 二、应用程序框架 6 三、Android Runtime 7 四、系统库 7 五、Linux 内核 8 Webkit浏览器引擎简介 9 Dalvik虚拟机简介 11 什么是Dalvik虚拟机 11 Dalvik和Android系统 11 Dalvik虚拟机的主要特征 12 Android应用开发和Dalvik虚拟机 15 Activity生命周期 16 一、Activity栈 16 二、Activity的4种状态 16 三、Activity的生命周期 17 四、实例说明 18 Android控件的继承关系 22 一、View与ViewGroup关系 22 二、各控件的继承关系 23 界面布局 25 LinearLayout(线性布局) 25 TableLayout(表格布局) 28 RelativeLayout(相对布局) 31 AbsoluteLayout(绝对布局) 34 FrameLayout(框架布局) 34 Toast 36 Notification 38 对话框 42 一、带三个按钮的对话框 42 二、简单列表对话框、单选列表对话框、多选列表对话框 44 三、水平进度对话框和圆形进度对话框 47 四、自定义对话框 49 Menu菜单 52 选项菜单 52 上下文菜单 53 三、子菜单 54 4种响应菜单项单击事件的方式 56 显示和编辑文本的控件 57 TextView 57 CheckedTextView 60 EditText 60 ExtraEditText 61 AutoComplteteTextView、MultiAutoCompleteTextView (自动完成输入内容) 61 Button 63 ImageButton 65 ZoomButton 65 日期和时间控件 66 DatePicker、TimePicker 66 AnalogClock、DigitalClock 68 单选框、复选框、开关状态按钮 69 单项选择(RadioGroup、RadioButton) 69 复选框(CheckBox) 71 开关状态按钮(ToggleButton) 73 下拉列表框Spinner 74 ScrollView、HorizontalScrollView 77 垂直滚动(ScrollView) 77 水平滚动(HorizontalScrollView) 78 两个方向均可滚动 78 TabHost 79 ProgressBar、SeekBar、RatingBar 81 进度条(ProgressBar) 81 拖动条(SeekBar) 83 评分组件(RatingBar) 86 GridView、Gallery和ImageSwitcher 88 GridView 88 Gallery和ImageSwitcher 91 ListView 94 一、普通的ListView 94 可以单选和多选的ListView 95 使用SimpleAdapter建立复杂的列表项 97 自定义Adapter来建立复杂的列表项 99 动态添加、删除ListView列表项 102 改变ListView列表项选中状态的背景颜色 102 可展开的列表组件 102 数据的存取 103 SharePreferences 6.1 103 文件的存储6.2 103 SQLite数据库6.4 103 ContentProvider、ContentResolver 6.5 105 Intent 106 用Intent启动Activity,并在Activity之间传递数据 106 调用其他应用程序中的Activity(打电话、浏览网页、发Email等) 109 接收和发送广播 113 接收系统广播 113 在自己的应用程序中发送广播 117 Android服务 118 系统服务 8.2 118 时间服务 8.3 118 跨进程访问 8.4 118 网络 119 图形、音频、视频 120 图形 10.1 120 音频、视频 10.2 120 2D动画 121 帧动画 121 补间动画 121 OpenGL ES编程 122 Android支持的各种资源 123 窗口小部件(App Widget) 124 NDK编程 125

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值