Android知识体系-基于Linux系统内核-核心目录
Android版本与Linux内核版本对应关系表
Android 版本 | Linux内核版本 |
1.0-1.1 | 2.6 |
1.5 | 2.6.27 |
1.6 | 2.6.29 |
2.0-2.1 | 2.6.29 |
2.2 | 2.6.32 |
2.3 | 2.6.35 |
3.0 - 3.2 | 2.6.36 |
4.0 | 3.0.1 |
4.1 - 4.3 | 3.0.31 |
4.4 | 3.10 |
5.0 - 5.1 | 3.16 |
6.0 | 3.18 |
7.0 - 7.1 | 4.4 |
8.0 - 8.1 | 4.4 |
9 | 4.9 | 4.14 |
10 | 4.9 | 4.14 | 4.19 |
11 | 4.9 | 4.14 | 4.19 | 5.4 |
12 | 5.4 | 5.10 |
核心目录结构图
[/system]
类型:系统级+内部存储
权限:root+只读
说明:系统的核心文件和应用程序
子目录 | 说明 |
/system/app | 系统预装的应用程序 |
/system/bin | 系统命令和可执行文件,例如adb、su等 |
/system/etc | 系统的配置文件,包括网络配置、权限配置等 |
/system/framework | Android系统的核心框架文件,例如android.jar |
/system/lib | 系统的共享库文件,提供给应用程序使用 |
/system/media | 系统的多媒体资源文件,包括铃声、提示音、壁纸等 |
/system/usr | 系统级别的用户文件,例如字体文件、证书文件等 |
/system/vendor | 设备厂商提供的系统文件和库文件 |
/system/xbin | 一些系统级别的可执行文件,例如busybox等 |
[/root]
类型:系统级+内部存储
权限:root+只读
说明:root用户的个人文件和配置
子目录 | 说明 |
/root/.bashrc | bash shell配置文件,用于设置root用户的环境变量和shell行为 |
/root/.bash_history | bash shell命令历史记录文件,记录了root用户在命令行中输入的历史命令 |
/root/.profile | 登录配置文件,用于设置root用户登录时的环境变量和执行特定命令 |
/root/.ssh | SSH密钥文件,用于远程登陆和认证 |
/root/.cache | 缓存文件,例如软件包的缓存、下载文件的缓存等 |
/root/.local | 本地应用程序和相关的配置文件 |
/root/.config | 应用程序的配置文件。 |
/root/.gnupg | GnuPG(GNU Privacy Guard)密钥和配置文件 |
[/dev]
类型:系统级+内部存储
权限:root+只读
说明:设备目录,包含系统中的设备文件,例如硬件设备、输入设备、串口设备等
子目录 | 说明 |
/dev/block | 块设备文件,用于与存储设备(如磁盘、SD卡)进行交互 |
/dev/input | 输入设备文件,用于与输入设备(如键盘、触摸屏)进行交互 |
/dev/tty | 终端设备文件,与串口设备进行通信 |
/dev/graphics | 图形设备文件,与图形硬件进行交互 |
/dev/snd | 声音设备文件,与音频设备进行交互 |
/dev/video | 视频设备文件,与摄像头设备进行交互 |
/dev/pts | 伪终端设备文件,与终端会话进行交互 |
/dev/mem | 物理内存设备文件,与内存进行直接交互 |
/dev/bus | 总线设备文件,与硬件总线进行交互 |
[/proc]
类型:系统级+内部存储
权限:root+只读
说明:虚拟文件系统,进程目录,提供了系统信息和进程信息的虚拟文件系统
子目录 | 说明 |
/proc/cpuinfo | CPU的信息,如型号、频率、缓存大小等 |
/proc/meminfo | 内存的信息,如总内存、可用内存、缓存大小等 |
/proc/filesystems | 列出当前支持的文件系统类型 |
/proc/loadavg | 系统平均负载的信息,包括最近1分钟、5分钟和15分钟的平均负载 |
/proc/mounts | 当前已挂载的文件系统 |
/proc/net | 系统网络配置和统计信息的文件夹,如/proc/net/tcp、/proc/net/udp等 |
/proc/sys | 内核参数和系统配置的文件夹,如/proc/sys/kernel、/proc/sys/net等 |
/proc/PID | 进程PID的信息,其中PID是进程的标识符,如/proc/1表示进程1的信息 |
/proc/sysvipc | 系统IPC(进程间通信)资源的信息,如共享内存、消息队列、信号量等 |
/proc/version | 系统内核版本和编译信息的文件 |
[/sys]
类型:系统级+内部存储
权限:root+只读
说明:虚拟文件系统,系统目录,提供了Linux内核的运行时信息和控制接口
子目录 | 说明 |
/sys/block | 块设备(如硬盘、固态硬盘等)的信息 |
/sys/class | 设备类的信息,如网络设备、USB设备、声卡等 |
/sys/devices | 系统中所有设备的信息,以设备树的形式组织 |
/sys/module | 内核模块(驱动程序)的信息 |
/sys/power | 系统电源管理的信息,如休眠、唤醒等 |
/sys/kernel | 内核的信息,如版本、配置参数等 |
/sys/firmware | 固件的信息,如BIOS、UEFI等 |
/sys/bus | 总线的信息,如USB总线、PCI总线等 |
/sys/fs | 文件系统的信息,如ext4、NTFS等 |
[/mnt]
类型:系统级+内部存储
权限:root+只读
说明:挂载目录,用于挂载外部存储设备,例如SD卡、USB设备等
子目录 | 说明 |
/mnt/cdrom | 挂载光驱,供访问光盘内容 |
/mnt/usb | 挂载USB存储设备,如U盘、移动硬盘等 |
/mnt/network | 挂载网络共享文件夹,如通过NFS(Network File System)或SMB(Server Message Block)协议挂载的共享文件夹 |
/mnt/tmp | 临时挂载文件系统,通常用于解压或临时存储文件 |
/mnt/data | 挂载数据存储设备,如分区、磁盘等 |
/mnt/iso | 挂载ISO镜像文件,以便访问其中的内容 |
/mnt/backup | 挂载备份设备,如备份磁带、网络备份等 |
[/cache]
类型:系统级+内部存储
权限:root+只读
说明:缓存目录,用于存放临时文件和应用程序的缓存数据
子目录 | 说明 |
/cache/apt | 存储APT(Advanced Package Tool)软件包管理器的临时数据和缓存 |
/cache/fonts | 存储字体缓存文件 |
/cache/thumbnails | 存储缩略图缓存,例如图片、视频等文件的缩略图 |
/cache/cups | 存储CUPS(Common Unix Printing System)打印服务的临时数据和缓存 |
/cache/systemd | 存储systemd日志的缓存文件 |
/cache/adb | 存储Android设备上的ADB(Android Debug Bridge)临时数据和缓存 |
/cache/google-chrome | 存储Google Chrome浏览器的缓存文件 |
/cache/yum | 存储Yum软件包管理器的临时数据和缓存 |
/cache/mysql | 存储MySQL数据库的临时数据和缓存 |
/cache/android | 存储Android应用程序的缓存数据 |
[/sbin]
类型:系统级+内部存储
权限:root+只读
说明:系统管理命令和工具,系统二进制目录,包含一些系统级别的可执行文件
子目录 | 说明 |
/sbin/init | 系统的初始化进程,负责启动系统服务和进程 |
/sbin/reboot | 重启系统 |
/sbin/halt | 关闭系统 |
/sbin/ifconfig | 配置和管理网络接口 |
/sbin/ip | 网络配置和管理 |
/sbin/mount | 挂载文件系统 |
/sbin/fsck | 检查和修复文件系统 |
/sbin/fdisk | 分区和管理磁盘 |
/sbin/useradd | 添加用户账户 |
/sbin/userdel | 删除用户账户 |
/sbin/service | 启动、停止和管理系统服务 |
[/tmp]
类型:系统级+内部存储
权限:root+只读
说明:存放临时文件和临时目录,系统重启后会被清空。因此重要的数据不应该放在该目录下
子目录 | 说明 |
/tmp/.ICE-unix | X Window系统的ICE(Inter-Client Exchange)临时文件 |
/tmp/.X11-unix | X Window系统的X11临时文件 |
/tmp/.XIM-unix | X Input Method(X输入法)的临时文件 |
/tmp/.font-unix | 字体服务器的临时文件 |
/tmp/.Test-unix | 测试程序的临时文件 |
[/data]
类型:系统级+内部存储
权限:root+只读
说明:数据可读写目录,存放应用程序的数据和用户数据。包括应用程序的数据库、缓存、配置文件等
子目录 | 说明 |
/data/app | 应用程序的安装包(APK)文件,应用程序被安装时,安装包文件会被复制到该文件夹下 |
/data/dalvik-cache | Dalvik虚拟机的缓存文件,用于优化应用程序的运行 |
/data/system | 系统的配置文件和数据,例如设备的密钥库、系统的运行日志等 |
/data/misc | 一些其他的杂项数据文件,例如Wi-Fi的配置文件、VPN的配置文件等 |
/data/media | 用户的媒体文件,例如照片、音乐、视频等 |
/data/user | 用户相关的数据文件,例如用户的配置文件、用户的下载文件等 |
/data/cache | 应用程序的缓存数据,例如应用程序的临时文件、下载的临时文件等 |
/data/data | 应用程序的数据文件,每个应用程序都会在该文件夹下创建一个以包名命名的文件夹来存放应用程序的数据,在程序中,使用: 获取应用的私有数据目录:[ content.getDataDir(); ] 大部分手机:/data/data 部分手机(小米、华为等):/data/user/0 应用的缓存目录:[ content.getCacheDir(); ] /data/data/packagename/cache 应用的文件目录(内部存储):[ content.getFilesDir(); ] /data/data/packagename/files |
获取外部存储的公共目录
- Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
获取应用的外部存储私有目录
- content.getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS);
获取应用的外部存储私有缓存目录
- content.getExternalCacheDir();
获取应用安装包文件的目录(需注意Android 10及以后版本对访问/Android/data/路径的限制)
- if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
- File apkFilesDirectory = content.getDataDir();
- } else {
- // 在Android 10之前的版本,可能需要使用反射或其他方法
- }
其他系统级目录如 /system, /proc 等,通常不允许应用直接访问,也没有提供相应的API。
但可以构建相应路径的File对象,前提是设备已经root并且你拥有相关权限
- File systemDirectory = new File("/system");
- File procDirectory = new File("/proc");
请注意权限问题。从Android 6.0(API级别23)开始,需要运行时权限才能访问某些目录,如外部存储