1.android sdcard挂载/卸载方法
2.深入理解Android内容简介
android sdcard挂载/卸载方法
研究Android设备中sdcard的源码挂载与卸载方法,首先需了解vold的源码源码。可访问
android.googlesource.com
或国内源代码库
git clone aosp.tuna.tsinghua.edu.cn
vold中有一个调试工具vdc,源码对应源码中的源码vdc.c或vdc.cpp。通过研究vdc的源码源码,可揭示Android系统的源码飞鸽传书源码分析演变过程。
对于Android 4.2-5.1版本,源码研究jb-release分支,源码发现vold支持的源码命令在CommandListener中定义。vdc的源码存储命令方法如下:
1、vdc volume list
查看volume信息。源码
2、源码vdc volume mount sdcard
挂载sdcard,源码但sdcard的源码具体名称难以确定。
3、源码vdc volume unmount sdcard force
卸载sdcard,同样,sdcard名称难以确定,且需要使用force选项。宝塔面板源码
在Android 6.0/7.0/8.0版本中,checkout marshmallow-release分支,观察到vold对volume命令进行了重大重构,引入了reset和shutdown功能。此时,list功能消失,但mount和unmount功能依然存在,unmount功能简化,不再需要force选项。微电影源码
测试vdc volume unmount sdcard时,发现结果不佳。研究后得知,sdcard现在使用标签名为emulated。通过使用emulated尝试,可以成功挂载和卸载sdcard。因此,对于Android 6.0版本,挂载和卸载方法为:
挂载:vdc volume mount emulated
卸载:vdc volume unmount emulated
对于Android 9.0/.0版本,塔防源码取消了CommandListener,命令直接查看vdc.cpp文件。遗憾的是,仅保留卸载sdcard命令,挂载功能消失。
在Android .0版本中,同样取消了CommandListener,命令直接在vdc.cpp中查看。发现最新版中只保留了shutdown和reset两个命令,netty 源码解析相比Android 9.0版本,将reset功能添加回来。
深入理解Android内容简介
深入理解Android系统,可以从《深入理解Android(卷1)》这本书开始。这本书以一种情境化的形式,对Android的源代码进行详尽剖析,覆盖了Framework层、Native层和Application层。其内容全面,每部分代码分析都力求深入,旨在满足实际应用开发的需求,书中涵盖的知识点对Android开发者来说至关重要。
书共分为章,第一章为预备知识,介绍了阅读所需的系统架构理解及源码阅读技巧;第二章详细解析了MediaScanner,讲解了Android中的核心JNI技术;第三章分析了init进程,揭示了Zygote启动和属性服务工作原理的底层过程;第四章深入剖析了Zygote、SystemServer等关键进程,涉及Android启动速度、HeapSize调整和Watchdog的工作原理等话题。
第五章讲解了Android系统中的重要类,如sp、wp、RefBase、Thread等,以及Java中的Handler和Looper类,掌握这些内容有助于后续代码分析的顺利进行;第六章以MediaServer为核心,全面剖析了Binder,揭示其核心机制;第七章深入研究Audio系统,包括AudioTrack、AudioFlinger和AudioPolicyService的工作原理;第八章讲解Surface系统的实现原理,涉及Surface与Activity、SurfaceFlinger的关系及数据传输流程;第九章对Vold和Rild进行深入分析,还探讨了Phone设计优化的问题;最后,第十章详细阐述了MediaScanner在多媒体系统中的作用。
这本书适合有一定Android开发基础的工程师阅读,通过阅读,读者能更深入地理解Android系统,为实际开发中的挑战提供强大支持。