Android知识体系-基于Linux系统内核-核心目录

本文详细介绍了Android系统的各个核心目录结构,如/data、/system、/proc等,以及它们与Linux内核版本的关系,并着重讨论了权限、系统级目录和应用程序文件的存放。同时,提到了不同目录的访问权限变化和AndroidAPI的使用注意事项。
摘要由CSDN通过智能技术生成

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

获取外部存储的公共目录

  1. Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);

获取应用的外部存储私有目录

  1. content.getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS);

获取应用的外部存储私有缓存目录

  1. content.getExternalCacheDir();

获取应用安装包文件的目录(需注意Android 10及以后版本对访问/Android/data/路径的限制)

  1. if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
  2.     File apkFilesDirectory = content.getDataDir();
  3. else {
  4.     // 在Android 10之前的版本,可能需要使用反射或其他方法
  5. }

其他系统级目录如 /system, /proc 等,通常不允许应用直接访问,也没有提供相应的API。

但可以构建相应路径的File对象,前提是设备已经root并且你拥有相关权限

  1. File systemDirectory = new File("/system");
  2. File procDirectory = new File("/proc");

请注意权限问题。从Android 6.0(API级别23)开始,需要运行时权限才能访问某些目录,如外部存

自学草稿版,持续更新中,如有错误,请您留言...

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值