Android与标准Linux对比

               

     这篇文章布局好乱呀,有时间得整理一下。

声明本文是积累式的写法,不会为去写而写,是先总结一些写一些:

Android文件系统与linux文件系统层次结构标准(FHS)对比:

 FHS Android
 /tmp /data/local/tmp
 /bin /system/bin
 /etc /etc -> /system/etc
 /lib /system/lib
 /var 无,可用/data/local/tmp代替先
 /sys /sys
 /proc /proc
 /mnt /mnt
 /media 无,可用/mnt代替
 /root 无,无可替代
 /sbin /sbin
  
  
  
一般的linux程序都是按照FHS来的,如果要直接编译到Android中用,一些目录就要按照上边对应的改。


Android底层功能与标准linux对比:

 功能 Linux Android
 管理动态设备文件 udev/mdev ueventd(init) [好文章]
 管理动态存储挂载 udev/mdev Vold
 管理静态存储挂载 fstab Vold
 向上层报告 无 Vold
 init进程 init/linuxrc init
图形界面X Windows/Qt/MiniGuiGralloc+SurfaceFlinger/Minui
蓝牙驱动 BluZ BlueDroid

Android 4.2蓝牙介绍-Android中的Bluetooth

 音频库 libalsa tinyalso《Android音频系统之音频框架-TinyAlsa
   
   
   
   
   
   

遇到一些记录一些。弄明白了这些,从底层向Android出发就方便多了。

很多文章都在说它代替了udev,这个真是一个不负责人的说法,Vold全称Volume Daemon,顾名思义,它是管理卷的,所谓卷也就是硬盘/Flash/sdcard之类的存储设备,它负责将上述的存储设备自动挂载到指定目录。
在Android中与udev相提并论的是ueventd,它是管理/dev/下设备文件的。
而Vold只会检测是否为存储设备,如果是就会挂载。


---------------------------------------
Udev的工作中包括管理/dev下设备文件和自动挂载文件系统,不过Vold全称是Volume Daemon专门的卷管理,它是没有管理/dev下的设备文件的,这个功劳不是它的,创建设备文件的是ueventd。
在Android中不能和其它linux进行一对一的对应了,因为Vold甚至还包括和上层的通信,而udev没有,管理好设备文件和挂载动态的存储设备就完了。还有一个区别是Vold是管理了所有的卷无论静态还是动态,而udev只管理动态的,管理静态的是fstab。

关于/tmp目录的问题,这个是最直接的问题了,一般的开源软件都是直接用hardcode的方法默认将临时文件放到/tmp目录中的,这点一定要注意,编译一个开源的软件到Android上时首先创建一个/tmp目录。没有/tmp目录会出现很多问题。等到测试好发布的时候要把hardcode的/tmp目录调整到自己新创建的目录一般在/data/misc/${func}/tmp一般${func}为自己的功能的名字。


Android源码目录:

/cts 兼容性测试套件

/kernel 内核


Android系统目录功能介绍

/cache分区

使用:在进行OTA升级(俗称:刷机)的时候会用到/cache/recovery目录

1.利用/cache/recovery/command会传递参数.如:update.zip的路径.

2.升级过程产生的Log文件也会放到/cache/recovery目录中.如:last_install,last_locale,last_log,一般供调试人员使用.

3.当然/cache目录也可以存放update.zip包.

4.看到其它地方说Google Play会将软件包下载到些处.

这些是我在工作中遇到的.

完整包升级:

将以下内容写入到/cache/recovery/command

boot-recovery

--update_package=/data/media/0/update.zip

--wipe_cache

reboot

执行reboot recovery 即可升级.



           
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值