作者:gzshun. 原创作品,转载请标明出处!


本系列文章,将会详细讲解Android系统的磁盘管理部分,可以通过这个突破口,熟悉整个Android的系统架构与实现原理。


Android磁盘管理总共涉及到四大部分源码:
1.Linux kernel: Android建立在Linux内核的基础上,最底层的部分是由Linux kernel来负责的,用于检测热插拔事件;
2.Vold:Android没有使用Linux平台下的udev来处理,于是Google写了一个类似udev功能的vold,充当了kernel与framework之间的桥梁;
3.Framework:Android的核心框架,(仅仅磁盘管理这部分)负责操作vold,给vold下发操作命令;
4.UI:Androidd的系统应用,与Framework进行交互,用于挂载/卸载SD卡。

Android挂载SD卡,流程如下:
1.用户在“设置”页面的“SD卡和手机内存”中,点击“挂载”;
2.UI从Framework获取操作磁盘的函数(向Framework注册,才能使用的函数),然后调用挂载的处理函数;
3.该处理函数通过广播机制发送挂载命令“volume mount sdcard”,vold接受命令并挂载SD卡后,用广播通知Framework;
4.Framework收到挂载SD卡的回复,通知UI的处理结果;
5.界面显示挂载成功/挂载失败。

从这里可以看出,Android的磁盘管理涉及到整个系统框架,这是Android系统很重要的一个子系统,通过磁盘管理的子系统来熟悉Android系统架构,能够了解到Android的多方面知识。从SD卡的挂载流程可以看出,Android系统大量地使用IPC,从而做到了模块独立的效果。从磁盘管理的那四大部分来看,四个部分之间的相互联系均是使用socket进行通信,没有使用到传统的API调用,整个系统就显得非常的独立。

源码的位置:
Vold:system/vold
Framework: frameworks/base/services/java/com/android/server
UI: android-2.2r2/packages/apps/Settings/src/com/android/settings/deviceinfo/


下篇文章开始分析源码,从下往上走。。

更多相关文章

  1. Android内存管理机制
  2. Android(安卓)-- 无线网络配置信息的管理者WifiConfigStore简介
  3. android的wifi扫描流程及管理(framework层的wifi扫描分析)
  4. Android面试系列文章2018之Android部分之自定义View篇
  5. Android(安卓)中文 API――android.widget合集(上)(20篇)
  6. Android核心分析 之十-------Android(安卓)GWES之基本原理篇
  7. Android4开发入门经典 之 第一部分:Android入门基础
  8. Android进程管理机制及优化(HTC&其它可参考)
  9. 最新Android开发视频教程(共6章)Android(安卓)Studio教程(2017-2018

随机推荐

  1. Android——拖动条SeekBar
  2. android ScrollView 充满屏幕
  3. android selector的使用
  4. Theme.Holo.Light详解
  5. android中View.measure方法详解
  6. Android(安卓)build/envsetup.sh 脚本分
  7. Android(安卓)SDK下载和更新失败的解决方
  8. Beginning Android(安卓)4--Exercises 1
  9. Android简单的Button事件处理
  10. Android(安卓)获取剩余存储空间