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

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

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/MiniGui Gralloc+SurfaceFlinger/Minui
蓝牙驱动 BluZ BlueDroid

Android4.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.看到其它地方说GooglePlay会将软件包下载到些处.

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

完整包升级:

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

boot-recovery

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

--wipe_cache

reboot

执行rebootrecovery 即可升级.



更多相关文章

  1. NPM 和webpack 的基础使用
  2. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  3. Android(安卓)studio 添加第三方库(转载)
  4. [原]如何在Android用FFmpeg解码图像
  5. Android高手进阶教程(七)----Android(安卓)中Preferences的使用!
  6. Android(安卓)Studio报错adb不是内部命令
  7. 系出名门Android(1) - 在 Windows 下搭建 Android(安卓)开发环境
  8. Android(安卓)操作SQLite数据库(初步)-在程序中删除数据库
  9. Android输入系统与Qwerty物理键盘的支持

随机推荐

  1. 解决Android(安卓)自定义RatingBar 不能
  2. Android(安卓)如何实现手机震动
  3. Android中贪吃蛇游戏的学习(五)
  4. Android(安卓)毛玻璃效果的实现
  5. Android(安卓)启动分析 init进程 init.rc
  6. Android的界面设计工具——DroidDraw
  7. 详解 Android(安卓)的 Activity 组件 -
  8. Android(安卓)数独游戏 记录
  9. android webview调用js完全解析(所有坑都
  10. Android中文API(132) —— GpsSatellite