根目录(/): 文件结构最顶层,里面放了init和 .rc文件,以及各个重要的子目录等
/system
1 2 3 4uis7863_z6:/ # cd system uis7863_z6:/system # ls apex bin etc framework lib64 product usr xbin app build.prop fonts lib priv-app system_ext vendor- /app /priv-app
- 这个目录存放着系统预装的应用程序(APK 文件)。这些应用是系统的核心应用,如电话、短信、日历等。它们在系统初始化时就被安装,并且用户通常无法直接删除(在未获取 Root 权限的情况下)。例如,系统的拨号应用就位于这个目录中,它提供了基本的通话功能,包括拨打电话号码、查看通话记录等操作。
/system/priv-app中包括 Launcher,SystemUI,SettingsProvider 等,均是系统的核心应用,这些应用能使用系统级的权限,4.4 之前的所有/system/app下的软件都能使用系统级的权限,Google 这样做是把内置到系统的应用也做个级别的区别。放到/system/priv-app下的应用比放到/system/app下的应用可以声明获得更多的权限。在Android中每个应用都有自己的权限声明,比如要使用系统限制的权限(例如android.permission.WRITE_SECURE_SETTINGS),我们就需要把程序安装到/system/app下。手机被 root 后,通过adb push可以把 apk 推送到这两个目录,作为系统应用,用户无法删除。
- /bin
- 包含了许多可执行的二进制文件,这些文件是系统的基础命令工具。例如,
ls(用于列出目录内容)、rm(用于删除文件或目录)等常见的 Linux 命令在这里都可以找到对应的 Android 版本。这些命令工具用于执行各种系统管理和操作任务,如文件系统管理、进程管理等。也可以通过 adb shell +本目录的二进制程序名 来执行。
- 包含了许多可执行的二进制文件,这些文件是系统的基础命令工具。例如,
- /etc
- 主要存放系统的配置文件。其中包括网络配置文件(如 Wi - Fi 配置文件)、音频配置文件(用于设置不同音频场景的参数)等。例如,在这个目录中的
hosts文件用于配置域名解析,它可以帮助系统将域名映射到相应的 IP 地址,类似于在计算机网络中起到本地域名解析的作用。
- 主要存放系统的配置文件。其中包括网络配置文件(如 Wi - Fi 配置文件)、音频配置文件(用于设置不同音频场景的参数)等。例如,在这个目录中的
- /framework
- 存放着 Android 系统的框架层相关文件。包括 Java 类库(
.jar文件)和本地库(.so文件),这些文件为应用程序开发提供了基础的 API 和运行时环境。例如,android.jar文件就位于这个目录,它包含了 Android 开发中常用的类,如Activity、Service等,应用开发者通过引用这些类来构建自己的应用程序。
- 存放着 Android 系统的框架层相关文件。包括 Java 类库(
- /lib /lib64
- 这两个目录主要存放系统的共享库文件。这些库文件支持系统的各种功能,包括图形处理、媒体播放、数据库操作等。例如,
libc.so(C 标准库)在这里存放,它为系统和应用提供了基本的 C 语言函数支持,如字符串处理、内存管理等功能。
- 这两个目录主要存放系统的共享库文件。这些库文件支持系统的各种功能,包括图形处理、媒体播放、数据库操作等。例如,
- /app /priv-app
/data
/app
- 用于存放用户安装的应用程序(APK 文件)。当用户从应用商店下载并安装应用时,这些应用会被存储在这个目录中。与 /system/app 不同,这个目录下的应用可以被用户自由卸载。例如,用户从 Google Play 商店安装的游戏应用就会存储在 /data/app 目录中。
/data
- 每个应用在这个目录下都有自己独立的子目录,用于存储该应用的数据。包括应用的数据库文件、配置文件、缓存文件等。例如,一个具有本地数据库存储功能的笔记应用,它的数据库文件(如 SQLite 数据库)就会存储在 /data/data/[应用包名]/databases 目录下,用于保存用户的笔记内容等数据。
/misc
- 存放各种杂项数据。例如,Wi - Fi 密码、VPN 配置等信息可能会存储在这里。当用户连接到一个 Wi - Fi 网络并输入密码后,系统会将 Wi - Fi 的相关信息(如 SSID、密码等)存储在 /data/misc/wifi 目录下,以便下次自动连接。
/cache
- 主要用于存储系统和应用的缓存数据。这些缓存数据可以加快系统和应用的运行速度。例如,应用的图片缓存、网页缓存等可能会存储在这里。当用户再次访问相同的内容时,系统可以直接从缓存中获取,而不需要重新下载或加载,从而提高了效率。不过,这个目录下的内容可以被系统清理,以释放磁盘空间。
/mnt
- 这是挂载点目录。在 Android 设备中,外部存储设备(如 SD 卡)通常会挂载到这个目录下的某个子目录。例如,当插入一张 SD 卡时,它可能会被挂载到 /mnt/sdcard(在一些旧设备中)或者 /mnt/external_sd 等目录,用于存储用户的照片、视频、文档等文件。
/proc
- 这是一个虚拟文件系统目录,它提供了关于系统进程的信息。在这个目录下的文件和子目录并不是真正存储在磁盘上的,而是由内核在运行时动态生成的。例如,/proc/cpuinfo 文件包含了 CPU 的详细信息,如 CPU 型号、核心数、频率等内容,通过读取这个文件,应用或系统工具可以获取 CPU 的相关参数。
/sys
- 类似于 /proc 目录,也是一个虚拟文件系统。它主要用于和内核进行交互,提供了关于系统硬件设备的信息。例如,/sys/class/power_supply/battery/uevent 文件可以提供电池的相关信息,如电量、充电状态等,系统通过读取这些文件来在状态栏显示电池电量等信息。