Android平台根目录文件

摘要:
另外/dev/block/vold据说是设计来替代udev的功能,主要用于支持一些热插拔设备。

> 系统分区

# adb shell

# mount

复制代码
rootfs / rootfs ro 0 0tmpfs /dev tmpfs rw,mode=755 0 0devpts /dev/pts devpts rw,mode=600 0 0proc /proc proc rw 0 0sysfs /sys sysfs rw 0 0none /acct cgroup rw,cpuacct 0 0tmpfs /mnt/asec tmpfs rw,mode=755,gid=1000 0 0none /dev/cpuctl cgroup rw,cpu 0 0
/dev/block/mtdblock0 /system yaffs2 ro 0 0
/dev/block/mtdblock1 /data yaffs2 rw,nosuid,nodev 0 0
/dev/block/mtdblock2 /cache yaffs2 rw,nosuid,nodev 0 0
/dev/block/vold/179:0 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,err  ors=remount-ro 0 0
/dev/block/vold/179:0 /mnt/secure/asec vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf  8,errors=remount-ro 0 0tmpfs /mnt/sdcard/.android_secure tmpfs ro,size=0k,mode=000 0 0
复制代码

以上就是 Android 系统的分区结构,可见其挂载方式和Linux非常类似,熟悉 Linux 的朋友应该能很容易的看出这些分区的作用大概是什么。

其中需要说明一下的可能是 /dev/block/mtdblock* 这几个核心分区(写入 ROM 的),他们都是使用 yaffs2 文件系统(基于 FLASH 存储),

其中是 /system 这个分区只有特殊的 ro 只读权限,由此可见 Android 在安全性设计方面所下的一些功夫。另外 /dev/block/vold 据说是设计

来替代 udev 的功能,主要用于支持一些热插拔设备。

> 目录概览

# ls -l

复制代码
dr-x------ root     root              2011-08-18 10:36config
drwxrwx--- system   cache             2011-06-21 05:32cache
lrwxrwxrwx root     root              2011-08-18 10:36 sdcard -> /mnt/sdcard
drwxr-xr-x root     root              2011-08-18 10:36acct
drwxrwxr-x root     system            2011-08-18 10:36mnt
lrwxrwxrwx root     root              2011-08-18 10:36 d -> /sys/kernel/debug
lrwxrwxrwx root     root              2011-08-18 10:36 etc -> /system/etc
drwxr-xr-x root     root              2010-06-30 21:06system
drwxr-xr-x root     root              1970-01-01 00:00sys
drwxr-x--- root     root              1970-01-01 00:00sbin
dr-xr-xr-x root     root              1970-01-01 00:00proc
-rwxr-x--- root     root        12995 1970-01-01 00:00init.rc
-rwxr-x--- root     root         1677 1970-01-01 00:00init.goldfish.rc
-rwxr-x--- root     root       107412 1970-01-01 00:00init
-rw-r--r-- root     root          118 1970-01-01 00:00 default.prop
drwxrwx--x system   system            2011-08-12 06:54data
drwx------ root     root              2010-01-28 00:59root
drwxr-xr-x root     root              2011-08-18 10:36 dev
复制代码

以上是 Android 根目录下文件目录,根据之前的分区结构可以大致看出每个目录的所处位置和大致功能,

以下是几个重要目录/文件的说明:

1、mnt 挂载点目录

2、etc 系统主要配置文件

3、system Android 系统文件

4、sys Linux 内核文件

5、proc 运行时文件

6、init.rc 启动脚本

7、default.prop 系统属性配置文件

8、data 用户程序目录

9、dev 设备文件

system目录:

# ls -l /system

复制代码
drwxr-xr-x root     root              2010-06-30 21:03usr
drwxr-xr-x root     root              2010-06-30 21:07app
drwxr-xr-x root     root              2010-06-30 21:05lib
drwxr-xr-x root     root              2010-06-30 21:07etc
drwxr-xr-x root     root              2010-06-30 21:06framework
-rw-r--r-- root     root         1532 2010-06-30 20:58build.prop
drwxr-xr-x root     shell             2010-06-30 21:04xbin
drwxr-xr-x root     root              2010-06-30 21:00tts
drwxr-xr-x root     root              2010-06-30 21:00media
drwxr-xr-x root     root              2010-06-30 21:00fonts
drwxr-xr-x root     shell             2010-06-30 21:04bin
drw-rw-rw- root     root              2011-08-18 10:36 lost+found
复制代码

以上是 system 目录下面的主要文件目录下面也简单介绍一下:

1、usr 用户文件夹,包含共享、键盘布局、时间区域文件等

2、app 常规下载的应用程序,这些 apk 包都是受保护的哦

3、lib 系统底层库,如平台运行时库

4、etc 系统的配置文件,比如APN接入点设置等核心配置等

5、framework Android系统平台核心 framework 的文件

6、build.prop Android 系统属性配置文件

7、xbin 常用开发工具,比如 tcpdump/sqlite3 等

8、bin 系统工具,比如 ps/cp/pm 等

data目录:

# ls -l /data

复制代码
drwx------ root     root              2011-06-22 02:32property
drwxrwx--t system   misc              2011-06-21 05:32misc
drwxrwx--x shell    shell             2011-06-21 05:32local
drwxrwx--x system   system            2011-06-21 05:32 app-privatedrwx------ system   system            2011-06-21 05:33backup
drwxrwxr-x system   system            2011-08-12 06:54anr
drwxrwx--x system   system            2011-08-20 06:50app
drwxrwx--x system   system            2011-08-20 06:50data
drwxr-x--- root     log               2011-06-21 05:32dontpanic
drwxrwx--x system   system            2011-08-20 06:50 dalvik-cache
drwxrwxr-x system   system            2011-08-22 06:40system
drwxrwx--- root     root              2011-06-21 05:32 lost+found
复制代码

可以看到 /data 目录下结构都和应用有关,平时安装的用户应用/游戏程序,对应APP的数据,

都被安装在 /data/app 下就可以了。

查看系统变量:

# set

复制代码
ANDROID_ASSETS=/system/app
ANDROID_BOOTLOGO=1ANDROID_DATA=/data
ANDROID_PROPERTY_WORKSPACE=9,32768ANDROID_ROOT=/system
ASEC_MOUNTPOINT=/mnt/asec
BOOTCLASSPATH=/system/framework/core.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar
EXTERNAL_STORAGE=/mnt/sdcard
IFS='
'
LD_LIBRARY_PATH=/system/lib
OPTIND=1PATH=/sbin:/system/sbin:/system/bin:/system/xbin
PS1='# 'PS2='> 'PS4='+ 'PWD=/_=/system/xbin
复制代码

从系统变量我们也可以看到一些系统使用中的重要目录。

> 进程分析

# ps

复制代码
USER     PID   PPID  VSIZE  RSS     WCHAN    PC         NAME
root      1     0     312    220   c009b74c 0000ca4c S /init
root      2     0     0      0     c004e72c 00000000S kthreadd
root      3     2     0      0     c003fdc8 00000000 S ksoftirqd/0root      4     2     0      0     c004b2c4 00000000 S events/0... ...
root      27    1     740    196   c0158eb0 afd0d8ac S /system/bin/sh
system    28    1     808    204   c01a94a4 afd0db4c S /system/bin/servicemanager
root      29    1     3736   372   ffffffff afd0e1bc S /system/bin/vold
root      30    1     3716   336   ffffffff afd0e1bc S /system/bin/netd
... ...
system    59    33    183396 25580ffffffff afd0db4c S system_server
app_0     108   33    134184 14876ffffffff afd0eb08 S com.android.inputmethod.pinyin
radio     112   33    147300 15804ffffffff afd0eb08 S com.android.phone
app_25    122   33    149408 19932ffffffff afd0eb08 S com.android.launcher
system    124   33    136708 13172ffffffff afd0eb08 S com.android.settings
app_0     148   33    148892 18044 ffffffff afd0eb08 S android.process.acore
复制代码

从这里我们可以看出和 Linux 一样所有进程的入口都是 init,接下来的系统进程也和 Linux 类似,

再接下来就是一些系统的守护程序(Native Service),最后是系统重要的应用程序。

通过这个列表大家也可以看出 Android 启动过程的一些端倪。

来自:http://blog.csdn.net/shagoo/article/details/6709430

免责声明:文章转载自《Android平台根目录文件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C# winform 多线程中创建等待窗体微信小程序 云开发中部分用户获取不到unionId下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux 和Windows之间命令行实现目录或文件互传

Linux 和Windows之间命令行实现目录或文件互传 在linux中,我们常用scp命令传输文件: 如以下实例,我们想把当前服务器文件abc.sql传输到192.168.1.1服务器上 我们可以执行以下命令: scp /home/person/hww/abc.sql root@192.168.1.1:/home/person/hww  回车后输入...

CentOS系统安全配置

一、账号安全及权限 1.1、禁用root以外的超级用户 1.1.1、检测方法 Cat /etc/passwd 查看口令文件,文件格式如下: Login_name : password: user_ID: group_ID: comment: home_dir: command 若user_ID = 0,则该用户拥有超级用户的权限,查看此处是否有多个ID=0...

转:openwrt 框架分析

本文是本人对OpenWrt的Makefile的理解,并非转载。OpenWrt是一个典型的嵌入式Linux工程,了解OpenWrt的Makefile的工作过程对提高嵌入式Linux工程的开发能力有极其重要意义。OpenWrt的主Makefile文件只有100行,可以简单分为三部分,1~17行为前导部分,19~31为首次执行部分,33~101为再次执行部分。前...

HDFS的Java客户端操作代码(查看HDFS下所有的文件或目录)

1.查看HDFS下所有的文件或目录 1 packageHdfs; 2 3 importjava.io.IOException; 4 importjava.net.URI; 5 importorg.apache.hadoop.conf.Configuration; 6 importorg.apache.hadoop.fs.FileStatus; 7 im...

github中git bash基础命令行

今天来讲一下关于github命令行相关知识。呵呵,其实github都没太明白就把git bash摆上来当道菜。看来,我有当程序员的天赋,让我再装一会。 前提:你已经在github上已经注册了账号。 特别注意: 括号内均为提示信息 1、常用命令行工具: ①cmd ②powershell ③git bash 2、命令行常用命令(在git bash上生效,部分在...

Java 程序员常用的个Linux命令

1. 查找文件 find / -name filename.txt 根据名称查找/目录下的filename.txt文件。 2. 查看一个程序是否运行 ps –ef|grep tomcat 查看所有有关tomcat的进程 3. 终止线程 kill -9 19979 终止线程号位19979的线程 4. 查看文件,包含隐藏文件 ls -al 5. 当前工作目录...