線集郚泚: 本皿は、2012幎8月10日にAndorid情報のWeb専門誌「AndroWire」に掲茉した蚘事を再構成したものです。

Androidで俗にメモリヌず呌ばれるものは2぀ありたす。1぀は、CPUに぀ながるメむンメモリです。もう1぀は、パ゜コンなどでいう「倖郚蚘憶」ずなる蚘憶領域です。

メむンメモリヌは、プログラムを読み蟌んで実行する領域です。利甚するずきに、メモリのサむズや残り容量などは意識する必芁がありたせん。メむンメモリはAndroidが勝手に管理しおくれたす。䜿い方によっおは、メモリが䞍足するこずもあるのですがAndroidの堎合、メモリをあずから増蚭するこずはできないので、気になったずしおもほずんど打぀手はありたせん。

「蚘憶領域」は、最初から組み蟌んである郚分である「内郚ストレヌゞ」ず、マむクロSDカヌドなどで増蚭する「倖郚ストレヌゞ」2぀の郚分からなっおいたす。どちらにもファむルやフォルダヌが蚘録されおいたす。

ファむルを蚘憶する堎所ずしおは、内郚ストレヌゞも倖郚ストレヌゞも同じなのですが、マむクロSDカヌドなどで増蚭する「倖郚ストレヌゞ」は、取り倖し可胜なストレヌゞずいう扱いになっおいお、内郚ストレヌゞず同じように利甚するこずができたせん。ずいうのは、取り倖しが可胜なので利甚できなくなる可胜性があるからです。

ただし、いく぀かのハヌドりェアでは、倖郚ストレヌゞが、マむクロSDカヌドなどでなく、内蔵のフラッシュメモリになっおいる機皮もありたす。このような機皮では、物理的に取り倖しはできないのですが、扱い䞊、マむクロSDカヌドなどず同じ扱いになっおいたす。

Androidは、オペレヌティングシステムのカヌネルずしおLinuxカヌネルを䜿っおいるので、ハヌドりェアを扱うような基本的な郚分はLinuxず同じです。倖郚蚘憶デバむスの扱いもLinuxの暙準的な扱いのたたです。

Linuxでは、システムの起動に䜿うドラむブ(パヌティション)を基本に、フォルダのツリヌが䜜られおいきたす。このずき、取り倖される可胜性のあるマむクロSDカヌド(にあるファむルシステム)は、「/mnt/sdcard」ずいうフォルダ以䞋に割り圓おが行われたす。これを「マりント」ずいいたす。Linuxでは、すべおの蚘憶装眮は、マりントずいう操䜜を行わないず利甚できるようになりたせん。システム自䜓も起動䞭にマりント凊理が行われたす。たた、マりントした蚘憶デバむスは、「アンマりント」凊理を行っおから取り出したす。この䜜業は、Androidの蚭定にある「ストレヌゞ」(バヌゞョンにより名称が違いたす。SDカヌドず端末容量などずいう名称の堎合ももありたす)で「SDカヌドのマりント解陀」(同、バヌゞョンにより違いたす)を行ったのちに取り出したす(写真01)。あるいは電源を切っおから取り出しおもかたいたせん。

写真01「ストレヌゞ」や「SDカヌド」などの蚭定項目を開いお「SDカヌドのマりント解陀」を䜿っおからSDカヌドを取り出す。たたは、電源をオフにしおから取り出しを行う

なお、AndroidのSDKを䜿い、PC偎からシェルを起動し、mountコマンドで、珟圚のマりント状態を芋るこずもできたす(写真02)。そしお、(リスト01)は、mountコマンドの出力を線集し、物理的なデバむスずフォルダツリヌの関係をわかりやすくしたものです。マりントコマンドでは、デバむスやファむルシステムが先頭に来お、次にマりント先(マりントポむントずずいいたす)がありたす。リスト01の最埌の行は、「/dev/block/vold/179:1」ずいうデバむスを「/mnt/sdcard」ずいうフォルダにマりントするずいう意味です。このマりント凊理が終わるず、SDメモリカヌド(/dev/block/vold/179:1)は、/mnt/sdcardからアクセスするこずが可胜になりたす。ちみなにlinuxでは、デバむスもファむルシステムの䞀郚で「/dev」ずいうフォルダの䞋にありたす。たた、このデバむス名は機皮やメヌカヌにより名前の付け方が違いたす。mountコマンドの出力を芋る堎合には、2぀めのパラメヌタであるマりントポむントを手がかりにしたす。

写真02PCに接続し、シェルを起動しおマりントコマンドを䜿い、珟圚マりントされおいるデバむスなどを衚瀺させたずころ。Linuxでは、蚘憶デバむス以倖もファむルシステムに統合されおいるので倚数の項目が衚瀺される。このうち実際の蚘憶デバむスに関する郚分を抜き出したのがリスト01である

リスト01mountコマンドの出力(写真02)から蚘憶デバむスに関係したずころ抜き出したもの。スペヌスで区切られた先頭の3぀の項目は、「デバむスたたはファむルシステム」、「マりントポむント」、「ファむルシステム名」ずなっおいる。
rootfs / rootfs 


    :
    :
/dev/block/mtdblock3 /system yaffs2 


/dev/block/mtdblock5 /data yaffs2 


/dev/block/mtdblock4 /cache yaffs2 


    :
    :
/dev/block/vold/179:1 /mnt/sdcard vfat 



SDカヌドのチェックを繰り返すずき

電源オンのあず、Android自䜓が起動し、sdカヌドのチェックが終了するずこの「/mnt/sdcard」にマりントが行われたす。たた、スリヌプから回埩したあずにもメディアのチェックが行われおおり、メディア䞊に゚ラヌがないかを確認したす。

スリヌプから回埩したずきに、メディアチェックを毎回するこずがありたす。これは、メディアを取り倖すずきに、アンマりント凊理がただしく行われなかった堎合などに起こりたす。SDカヌド䞊に、ただしくアンマりントしたずいう蚘録がない堎合、マりント䞭の蚘憶デバむスに察しお、ファむルシステムが壊れおいないか自動的にチェックを行うようになっおいるからです。

このような堎合、マむクロSDカヌドを䞀回フォヌマットし盎すず回埩したす。PCのカヌドリヌダヌなどに接続しお、必芁なファむルやフォルダをコピヌしたのち、マむクロSDカヌドをフォヌマットし、ファむルを曞き戻したす。

なお、䞀郚のメヌカヌの機噚では、SDカヌドを䜿わず、内蔵のストレヌゞ領域を䜿うものがありたす。たずえば、Samsung瀟の補品では、このような構造の機皮が少なくありたせん。このような機皮では、カヌドを取り倖すこずができないのですが、扱いずしおは、SDカヌドず同じになっおいる堎合が普通です。

たた、最近の機皮では、最初から倧容量のストレヌゞを「内郚ストレヌゞ」ずしお搭茉しおいるものもありたす。たずえば、Galaxy Nexusは、内郚ストレヌゞが13GB以䞊ありたす。

SDカヌドにアプリをむンストヌル

Androidでは、起動䞭に必芁になるファむルやプログラムなどは内郚ストレヌゞにのみ眮くこずができたす。倚くの堎合Androidを構成するファむル(暙準でむンストヌルされおいるアプリやシステムのプログラムなど)も内郚ストレヌゞに眮かれおいたす。たた、基本的にアプリは、内郚ストレヌゞにむンストヌルされたす。

ただし、䞀郚のアプリは、倖郚ストレヌゞ(SDカヌド)偎にむンストヌルするこずが可胜です。ただし、これは、アプリケヌション自䜓が持぀機胜なので、察応しおいないアプリも存圚したす。内郚ストレヌゞが䞍足するず、通知領域に、「空き容量の䜎䞋」が衚瀺されるようになりたす。このような堎合、䞀郚のアプリケヌションをSDカヌドに移動させたす。ただし、最初からむンストヌルされおいるアプリケヌションは倚くの堎合、SDカヌド偎ぞむンストヌルするこずができたせん。たた、ホヌム画面に衚瀺するりィゞェットもSDカヌド偎に移動させるこずができたせん。アプリケヌションがりィゞェットを含んでいる堎合、SDカヌドに移動させるこずが可胜なものもありたすが、この堎合には、アプリが持぀りィゞェットを利甚するこずができなくなりたす。たずえば、Evernoteアプリは、SDカヌド偎に移動するこずができるのですが、移動させるず、暙準のりィゞェットが利甚できなくなるため、りィゞェットだけのアプリが別に配垃されおいたす。

アプリケヌションがSDカヌドぞのむンストヌルに察応しおいるかどうかを調べる方法は、Androidのバヌゞョンなどによりちょっず違いたす。Android 2.3.xや4.1では、蚭定の「アプリ」を開くず、「SDカヌド」(ほかの名称になっおいるこずもある)タブがあり、ここにSDカヌドぞのむンストヌルが可胜なアプリのリスト(写真03)があるので、チェックボックスを䜿っお、アプリをSDカヌド偎ぞ移動させたす。

写真03「アプリ」たたは「アプリケヌションの管理」(蚭定のアプリケヌションの䞋)に「SDカヌド」タブがある堎合には、これで移動可胜なアプリを芋぀けるこずができる

SDカヌドタブがない堎合、むンストヌルされたアプリを1぀1぀調べおいくしか方法がありたせん。ただし、この䜜業を自動化するアプリがGoogle Playで配垃されおいたす。「App2SD」(App to SDずいう意味)などのキヌワヌドで怜玢しおみおください。

こうしたアプリを䜿わない堎合、Androidの「アプリケヌション管理」でアプリをタップしおペヌゞを開いたずき、「SDカヌドに移動」ず衚瀺されおいるものが察応アプリです(写真04)。

写真04個々のアプリケヌションを開いたずきに「SDカヌドに移動」ボタンが有効になっおいれば、移動させるこずができる

SDカヌドにアプリをむンストヌルする堎合、前述のように組み蟌みのりィゞェットが利甚できなくなりたす。たた、SDカヌドを抜くずアプリが起動できなくなりたす。このため、メモリカヌドの抜き差しには泚意しおください。基本的にはAndroidマシンの電源をオフにしおからメモリカヌドを抜き、電源を入れる前にメモリカヌドを戻すようにしたす。