作者: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/
下篇文章开始分析源码,从下往上走。。
分享到:
相关推荐
通过深入理解Android磁盘管理的源码分析,可以更全面地了解Android系统架构,特别是涉及IPC通信和系统服务的交互机制。这有助于开发者更好地理解和调试Android系统,尤其是对于需要处理存储设备的开发者来说,是不可...
### Android-vold源码分析:理解U盘挂载机制 在深入探讨Android系统如何通过`vold`(Volume Daemon)管理U盘等外部存储设备的挂载与卸载之前,我们先简要介绍`vold`的角色。`vold`是Android系统中负责管理存储卷的...
【描述】中的"源码参考,欢迎下载"意味着该资源可供开发者研究和学习,通过查看和分析源代码,可以深入理解各种Android编程技巧和最佳实践。 【标签】"android 资料"表明这是一份与Android开发相关的学习材料,对...
通过阅读和分析 "android-volley-master" 中的源码,我们可以深入了解 Volley 的内部工作机制,这将有助于我们在实际项目中更高效地利用 Volley,并解决可能出现的问题。同时,源码学习也有助于我们提升 Android ...
6. **源码分析** 提供的源码对开发者来说是一份宝贵的资料,可以帮助理解图片加载的实现细节,以及如何优化图片加载过程,从而在自己的项目中进行更高效的定制和扩展。 总之,Android-Universal-Image-Loader是一...
四、源码分析 在`Android-Universal-Image-Loader-master`中,我们可以看到项目的源代码结构,包括核心的`library`模块和示例应用`sample`模块。通过对源码的阅读和分析,开发者可以深入理解其工作原理,进一步优化...
Android系统自带的图库源码是开发者深入了解Android平台图片管理和展示机制的重要参考资料,适用于Android 2.3(Gingerbread)及以上版本。这个源码包含了Android系统如何处理图像选择、预览、组织以及用户交互的...
1. 进程管理:Android系统根据内存状态动态管理进程,优化资源分配。 2. 资源优化:了解内存、CPU和磁盘I/O的优化策略,提高应用性能。 3. 安全性:理解权限系统,防止恶意代码和数据泄露。 4. UI线程与工作线程...
源码分析 源码的阅读对于理解库的工作原理至关重要。`Android-Universal-Image-Loader` 的源码提供了以下几个关键组件: - **Configuration**: 库的核心配置类,允许开发者自定义缓存策略、线程池大小、图片加载...
《深入解析Android滴答词典源码》 滴答词典作为一款广受欢迎的移动学习应用,其背后蕴含着丰富的Android开发技术与设计思想...同时,源码分析也有助于了解优秀应用的设计模式,为个人或团队的项目开发提供灵感和指导。
5. **权限管理**:在Android系统中,生成和扫描二维码可能需要申请`CAMERA`权限,确保在运行时获取用户许可。 这个示例项目“imageCodeAndVCode”应该包含了实现这些功能的类和方法,通过学习和分析源码,开发者...
源码分析可以帮助你深入理解Android的内存管理、多线程以及图片处理机制,对于提升个人开发技能非常有帮助。 通过研究和使用 Universal Image Loader,开发者不仅可以解决应用中的图片加载问题,还能学习到如何设计...
通过分析这个基于Android Studio的音乐播放器源码,开发者不仅可以学习到如何构建一个完整的音乐播放应用,还能深入理解Android平台上的多媒体处理、用户界面设计、服务组件使用等核心概念,为今后的Android开发打下...
这个"Android-Universal-Image-Loader.zip"压缩包中的源码分析,可以帮助开发者了解如何在实际项目中应用这些功能,学习图片加载的最佳实践,提高应用性能。通过对源码的学习,开发者还可以根据项目需求进一步定制和...
《深入剖析Android小米文件管理器源码》 ...通过对小米文件管理器源码的深入理解,我们可以学习到如何构建一个高效、稳定、用户体验良好的文件管理系统。这不仅有助于提升个人技能,也有利于在实际项目中应用和改进。
通过阅读和分析源码,开发者可以理解如何构建自己的异步加载逻辑,也可以借鉴其中的缓存策略和错误处理机制。 总之,理解和掌握Android图片异步加载技术对于优化应用性能至关重要。这个压缩包提供的参考源码是深入...
Android系统自带了SQLite库,使得开发者无需额外安装数据库管理系统即可使用。SQLite支持SQL标准,提供了创建、查询、更新和删除数据的基本功能。在Android应用中,SQLite通常用于持久化数据,例如用户设置、应用...
**Android Universal Image Loader (UIL) 源码详解** Android Universal Image Loader (简称UIL) 是一个强大且灵活的图片加载库,广泛应用于Android应用开发中,用于高效地加载、缓存和显示网络、本地资源或者应用...
**Android sp源码分析与优化** 在Android系统中,SharedPreferences是用于存储轻量级数据的一个重要组件,它提供了一个方便的接口来保存和读取用户的首选项或应用配置。本资料将深入剖析SharedPreferences的源码,...