目录
前言
书接上回,在上一章Native层分析vold框架的最后我们使用setState接口将doMount的返回结果通过binder机制调用了Framework层StorageManagerService的onVolumeStateChanged接口,所以本章将围绕vold框架在Framework层的代码进行梳理。
1、接收VolumeInfo状态
在JNI方法onVolumeStateChanged中根据vold和doMount的返回状态值获取VolumeInfo对象,设置
H_VOLUME_STATE_CHANGED信号,并被handleMessage接收:
frameworks/base/services/core/java/com/android/server/StorageManagerService.java
@Override
public void onVolumeStateChanged(String volId, final int newState) {
synchronized (mLock) {
final VolumeInfo vol = mVolumes.get(volId);
if (vol != null) {
final int oldState = vol.state;
vol.state = newSt