緊急事態発生!? 起動不能になったPCをAndroidで救出せよ!:実践しながら学ぶ Android USBガジェットの仕組み(6)(2/2 ページ)
今回からAndroid USBガジェットの機能として比較的よく使用されている「USBマスストレージクラス(USB Mass Storage Class)」の仕組みを詳しく解説していく。Androidボードを使って、起動不能になったPCを救出できるか!?
これから作るモノ
雑談タイム
中垣内 ほー、なるほど。USBマスストレージクラスを利用することで、AndroidをUSB CD-ROMドライブ化したってことですね。納得いきました。
村上 でも、これだと一般的には使いにくそうですよね。Androidの端末操作なんて普通のユーザーはやらないですから……。やはり、AndroidをCD-ROMドライブ化させるユーザーインタフェースがないと誰も使えないと思いますよ。
中垣内 それに、このISOファイルですが、SDカードにないとダメですかね? Androidを使うのであればクラウド上にイメージを置いた方が便利じゃないですか?
森 そうだねぇ。まぁ、まだ試作機だから……。でも、そういったことができるようになるとイイよね! 楽しそう!!
要求分析
さて、話が盛り上がってきたところで、一度、これから作るモノの位置付けを整理し、Androidの機能として“何を作る必要があるのか”をまとめておきましょう(注3)。
» これから作るモノの位置付け
まず、これから作るモノの位置付けとして、これまでの内容を以下の5つの視点で分類し、マインドマップ化してみました(図3)。
- ユーザー
- ユーザーがやること
- 使用シーン
- 使用するメリット
- 使用しない場合の代替手段
» ユースケース
これから作るモノに対する要求としては、「ユーザーがやること」が当てはまります。そこで、それらの要求を満たすために必要なユースケースを以下のようにざっくりとまとめてみました(図4)。
(1)要求1.CDイメージをAndroid端末上で管理する
ユースケース名 | CDイメージを管理する |
---|---|
目的 | PCブート可能なCDイメージをAndroid端末上で管理(登録/解除)する CDイメージの配置先は、SDカードもしくはクラウド上とする(注4) |
事前条件 | CDイメージを配置できるサイズのSDカードが挿入されている クラウドサービスアプリがインストールされている |
正常終了条件 | Android端末上で、管理対象CDイメージを操作できるようになる ここでの操作とは「検索」「マウント」「アンマウント」である |
(2)要求2.Android端末上でCDイメージを検索する
ユースケース名 | CDイメージを検索する |
---|---|
目的 | 壊れたPCを復旧するため、PCブート可能なCDイメージを検索する |
事前条件 | ブート可能なCDイメージが管理対象となっている |
正常終了条件 | 管理対象CDイメージをユーザーインタフェース上で検索できる |
(3)要求3.Android端末上でブート対象CDイメージを選択し、PCをUSB接続してブートする
ユースケース名 | CDイメージをマウントする |
---|---|
目的 | 壊れたPCを復旧するため、PCブート可能なCDイメージを選択することで、PCブートできるようにする |
事前条件 | ブート可能なCDイメージが管理対象となっている |
正常終了条件 | PCとUSB接続すると、CD-ROMドライブとして認識され、CDイメージ内のOSでブートできるようになる |
(4)要求4. Android端末上でCDイメージの選択を解除し、USB接続を切る
ユースケース名 | CDイメージをアンマウントする |
---|---|
目的 | 壊れたPCを復旧後、CDイメージのマウント状態を解除する |
事前条件 | CDイメージがマウント状態となっている |
正常終了条件 | PCとUSB接続しても、CD-ROMドライブとして認識されない状態になる |
ユーザーインタフェースのイメージ
最後に、CDイメージを検索するユーザーインタフェースですが、早くも村上さんがアプリを作って、自分のAndroid端末上で試しているようです。さて、どんな感じなのか、ちょっとのぞいてみましょう!
村上 それでは、これから作るモノのイメージを今からお見せしましょう。
……と、その前に、これから作るモノに“命”を吹き込む上で、最も肝心となる“アプリ名称”ですが、「PCRescuroid(ピーシーレスキュロイド)」と命名しました。どうです? PCを救出するドロイド君って感じが伝わってきて、ちょっと購入したくなるでしょう?
ちなみに、PCRescuroidのロゴは、こんな感じにしてみました。
さて、アプリの名称も決まったところで、初期画面のイメージをお見せしましょう。
(1)初期画面
初期画面では、CDイメージをマウント、アンマウントする画面を表示します。シンプルな画面ですが、要求分析で整理した要求3.と要求4.のユースケースを実現する重要な機能であり、分かりやすさと使いやすさを重視しています。
初期画面の仕様は、以下の通りです。
サービス | CDイメージを管理しているサービスの名前を表示する 表示されるものは“SD”もしくは”Dropbox” |
---|---|
ファイル名 | 検索機能で選択したCDイメージのファイル名を表示する |
Mount/Unmountボタン | ボタン名は、マウントされていない場合は“Mount”と表示し、マウントされている場合は“Unmount”と表示する ボタンを押下すると、ボタン表示内容の機能(マウント/アンマウント)を実行する |
別ファイルを選択ボタン | CDイメージを切り替える場合に、このボタンを押下する。ボタンを押下するとサービス選択画面を表示する |
(2)サービス選択画面
この画面では、CDイメージを管理するサービスを選択します。現時点では、2個しかありませんが、サービスの種類を増やすときは、この画面にボタンを増やします。SkyDriveやGoogle Driveなどにも対応できるとイイ感じですよね。
サービス選択画面の仕様は、以下の通りです。
SDカードのファイルを選択 | ボタンを押下するとSDカード内のCDイメージを表示する |
---|---|
Dropboxのファイルを選択 | Dropboxからファイルを選択する 実装イメージとしては、DropboxのAPIを利用してクラウド上のファイルを選択する |
(3)CDイメージ検索画面
SDカード内のファイルを選択する画面は、次のようになります。
ディレクトリをタップすると、ディレクトリ内のCDイメージとサブディレクトリを表示します。CDイメージの行を選択すると最初の画面(マウント/アンマウント画面)に戻ります。
それでは、最初の画面に戻って、[Mount]ボタンを押下してみましょう!
村上 ……っと、見事に失敗していますね。私のAndroid端末で実現できるのはここまで。Android FrameworkのAPIでは、ISOファイルをデバイス化し、マウントしてくれるようなものは提供されていないので、うまくいきません。困りましたねー。
今回は、森さんのAndroidボード(試作機1号)を使って、AndroidでPCを救出させることができました。しかし、今のままではせっかく作ったアプリがうまく動作しません……。
というわけで次回は、ユーザーインタフェースからAndroidのミドル層への改造について解説していきたいと思います。ご期待ください! (次回に続く)
関連キーワード
組み込みAndroid開発 | 実践しながら学ぶ Android USBガジェットの仕組み | USB | Android | 組み込み | Androidケータイ | アプリケーション開発 | Androidがもたらす組み込み開発の新たな可能性 | 組み込み開発 | 作りながら理解するファイルシステムの仕組み
Copyright © ITmedia, Inc. All Rights Reserved.