1、mnt 挂载点目录 2、etc 系统主要配置文件 3、system Android 系统文件 4、sys Linux 内核文件 5、proc 运行时文件 6、init.rc 启动脚本 7、default.prop 系统属性配置文件 8、data 用户程序目录 9、dev 这里是Linux系统常规文件夹,里面的文件很多都是设备模拟的文件系统,一般用户无需理会。
Android系统中很重要的几个目录结构就是/system,/data,/mnt,开发中较多的是/data,/mnt,/sdcard,/storage。下面对这五个文件目录一一介绍,以Android4.2.2的目录结构为例。
|– lost+found//存放系统检查结果,yaffs文件系统都会有这个类似回收站的文件夹 |– app//主要存放的是系统应用程序,区别于存放自己安装应用程序的目录/data。 |– bin//从bin文件夹名称可以看出是binary二进制的程序,里面主要是Linux系统自带的组件 |– build.prop//Android系统重要的属性文件,记录了系统的设置和改变,类似於/etc中的文件。 |– etc//系统配置文件,保存的都是系统的配置文件,比如APN接入点设置等核心配置。 |– fonts//字体文件夹,除了标准字体和粗体、斜体外可以看到文件体积最大的可能是中文字库,或一些unicode字库 |– framework//主要是一些核心的文件,从后缀名为jar可以看出是是系统平台框架.是JAVA平台的一些核心文件,属於JAVA平台系统框架文件。里面的文件都是.jar和.odex文件。 |– lib//存放的主要是系统底层库,如平台运行时库 |– media//铃声音乐文件夹,除了常规的铃声外还有一些系统提示事件音 |– sounds//默认的音乐测试文件,仅有一个test.mid文件,用于播放测试的文件。 |– usr//用户文件夹,包含共享、键盘布局、时间区域文件 |– vendor |– xbin//存放了很多系统管理工具,这些工具不是到toolbox的链接,每个都是可执行程序。
正常情况下,/system是不允许写操作的,但可以root后使用root用户进行写操作
Environment.getRootDirectory() = /system
|– app//system/app 放的是系统预载的应用程式执行档。而这里放的是使用者自己安装的应用程式执行档(*.apk) |– dontpanic |– misc |– local |– data//当用Context.openFileOutput()所建立的档案,都放在该目录下的files内。Context.getSharedPreferences()所建立的preferences 档(*.xml),放在shared_pref目录中,而且只能被app以自己的默认的方式访问,存在此文件夹中各自包下的文件不能被用户和其他app访问 |– app-private |– app-asec |– app-lib |– property |– ssh |– dalvik-cache// |– resource-cache |– drm |– media |– lost+found |– smc |– radio |– user |– system |– backup |– NVM0 |– NVM1 |– NVM2 |– NVM13 |– NVM3 |– NVM6 |– anr 当你的应用程式发生ANR (Application is Not Responding) 错误时,Android 会自动将问题点的code stack list 写在anr/traces.txt内,你直接用cat 命令就可以看他的内容 |– NVM5 |– cal.bin |– tombstones
Context.getFilesDir(),该方法返回/data/data/youPackageName/files的File对象。
Context.openFileInput()与Context.openFileOutput(),只能读取和写入files下的文件,返回的是FileInputStream和FileOutputStream对象
Context.fileList(),返回files下所有的文件名,返回的是String[]对象。
Context.deleteFile(String),删除files下指定名称的文件。
Context.getCacheDir(),该方法返回/data/data/youPackageName/cache的File对象。
它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。
其存储位置在/data/data/<包名>/shared_prefs目录下。 SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。 实现SharedPreferences存储的步骤如下: 一、根据Context获取SharedPreferences对象 二、利用edit()方法获取Editor对象。 三、通过Editor对象存储key-value键值对数据。 四、通过commit()方法提交数据。 12345678910111213141516Sqlite创建的数据库,默认地址是在/data/data/yourpackagename/database/目录下,。 Android 开发中使用 SQLite 数据库 Activites 可以通过 Content Provider 或者 Service 访问一个数据库。
|– sdcard//指向/sdcard目录 ,SD卡中的EXT2分区的挂载目录 |– obb// |– asec// |– secure// |– |–asec// |– |–staging// |– shell// |– |–emulated// |– |–legacy//
Environment.getExternalStorageDirectory() = /mnt/sdcard context.getExternalCacheDir() = /mnt/sdcard/Android/data/com.mt.mtpp/cache 123456|– Music |– Podcasts |– Ringtones |– Alarms |– Notifications |– Pictures |– pris |– Download |– DCIM//图库,相机随机缓存文件夹,记录功能设置的参数,需要及时清理。一些第三方相机软件拍出的相片也会保存在这里,比如360或晕影相机等。 |– |–Camera// |– |–100ANDRO// |– android_secure//官方app2sd的产物,存储了相关的软件使用认证验证,删除之后SD卡中的软件将无法使用。 |– Android//存放重要的程序数据,比如google:map的地图缓存,误删掉后地图还需重新下载。 |– backups//包含重要的备份文件,比如联系人导出到SD卡会导入到此文件夹。 |– bugtogo//系统出现问题的时候会形成一些报告文件,存放在此文件夹。 |– data//缓存数据文件夹,与Android类似。例如,“截图助手”截图保存在 |– LOST.DIR//卡上丢失或出错的文件会移动到这里,此目录删了会自动生成。 |– SystemAppBackup//SystemApp remove(深度卸载)备份系统文件后,备份文件保存的目录。 |– bugreports//升级系统或刷机,系统和程序发生兼容错误报告列表(包括内存使用全部内容)将保存在这个文件,重起机器可以删除。 |– .keepsafe//隐藏类的软件、加密保存文件地址存放于此。 |– .thumbs//浏览或使用某一软件,以及使用某一文件夹后用于记录次数和内容的文件,随机产生,需要定期不断清除,长时间不清理会大量占用储存卡的有效空间。 |– openfeint//打开联接网络后的一个启动程序,它广泛植入移动类平台发布的软件或游戏,是更新下载或评论反馈信息的记录地址,可删除。 |– com//播放类软件在收看播放影视节目生成的文件将存放于此,可以对制作方反映回馈信息,可以删除。 |– Download(download)//大写字母的是网络联接下载文件目录,小写字母的是手机自身(蓝牙,近场等)存放下载传输文件,不要误删。 |– albumart//音乐专辑封面的缓存文件夹。 |– albums//相册缩略图的缓存文件夹。 |– cmp//音乐的缓存文件夹。 |– Playlists//播放列表的缓存文件夹。 |– VPN//VPN数据的缓存目录。 |– My documents//手机启用各种程序任务记录的文档,需要定期清除,长时间不清理会占用SD卡较大内存。 |– .nomedia//手机中隐藏的音频、图片文件夹都会在这里显示,可以自设在相关文件夹中。 |– media//使用电话通话录音软件或在线浏览视频等媒体产生的音频文件记录存档将保存在此。 |– .medieval_software//启用蓝牙传输软件时,记录任务保存文件的目录。 |– extracted//解压缩软件默认的解压目录。 |– .xxx//XXX的缓存文件。 |– libs |– Vlog.xml |– bugreports |– burstlyImageCache |– com.sinyee.babybus |– msf |– Amap |– data |– tmp |– detect |– lehe_yy_s |– aquery |– movie |– extensions |– zh-CN |– classic
storage// |– sdcard0//指向/sdcard目录 ,SD卡中的EXT2分区的挂载目录 |– emulated// |– |–legacy//指向/sdcard目录,SD卡中的EXT2分区的挂载目录
/sdcard是/mnt/sdcard的符号链,指向/mnt/sdcard,/storage/sdcard0 是sdcard的分区
参考: https://wenku.baidu.com/view/efd5593916fc700aba68fc2f.html https://my.oschina.net/limiaoneu/blog/543169
