Androidのスマホで「マウント解除」はしないといけないの?

シェアする

最初に、知識として、

スマートフォンではない携帯電話ですと、SDカードへのアクセスと、本体メモリへのアクセスを切り替える方式になっていたりするため明示的にアクセスされる、されないがはっきりしているのですが、スマートフォンの場合、SDカードのアクセスが明示的ではありません。またいつSDカードの読み書きが発生するのがはっきりしていません。SDカードのアクセスのたびに、画面にSDカードの読み書きの許可の表示をだしていては使い勝手が悪くなります。そのため、スマートフォンでは常にマウントされている状態で使ってます。

以上のことで、この「マウントの解除」をした後は、SDカードのアクセスを拒否するということになり、それ以降でSDカードの読み書きを行うアプリケーションに、SDカードは読み書きできないとエラーを返すようになります。

また、SDカードへの書き込みは一部遅延書き込みを行います。アプリケーションが書いてすぐにSDカードに書かず遅れて書くような書き込みです。遅延書き込みの前に、SDカードを抜いてしまうと、SDカードのデータの整合性が崩れてしまうのでこのように、マウント解除によって、遅延書き込みで残っているものをすべてSDカードに書き出すという処理を行います。

この件の回答としては、

スマートフォンでは、バッテリーをはずさないとSDカードが取り出せないタイプと、すぐに取り出せるタイプ、たとえばタブレットタイプがあります。どちらも同じアンドロイドです。アンドロイドとしてはもともと「マウント解除」機能を持っていますので、そのままの機能が残ってると思います。 アンドロイドでは、明示的でなく、常にSDカードの読み書きをしているというのが分かるように、(たとえばうっかりバッテリーが外れてしまうとSDカードもデータが壊れるなど)ユーザに促すためなのかもしれません。