連載
» 2012年06月27日 09時45分 公開

実践しながら学ぶ Android USBガジェットの仕組み(6):緊急事態発生!? 起動不能になったPCをAndroidで救出せよ! (2/2)

[中垣内勇祐、村上雅彦、森崇、中谷洋一(永和システムマネジメント),@IT MONOist]
前のページへ 1|2       

これから作るモノ

雑談タイム

中垣内 ほー、なるほど。USBマスストレージクラスを利用することで、AndroidをUSB CD-ROMドライブ化したってことですね。納得いきました。

村上 でも、これだと一般的には使いにくそうですよね。Androidの端末操作なんて普通のユーザーはやらないですから……。やはり、AndroidをCD-ROMドライブ化させるユーザーインタフェースがないと誰も使えないと思いますよ。

中垣内 それに、このISOファイルですが、SDカードにないとダメですかね? Androidを使うのであればクラウド上にイメージを置いた方が便利じゃないですか?

 そうだねぇ。まぁ、まだ試作機だから……。でも、そういったことができるようになるとイイよね! 楽しそう!!


要求分析

 さて、話が盛り上がってきたところで、一度、これから作るモノの位置付けを整理し、Androidの機能として“何を作る必要があるのか”をまとめておきましょう(注3)。

※注3:今から作るモノは、単純なシステムではありますが、簡単な要求分析をし、内容をきちんと整理しておきたいと思います。


» これから作るモノの位置付け
 まず、これから作るモノの位置付けとして、これまでの内容を以下の5つの視点で分類し、マインドマップ化してみました(図3)。

  • ユーザー
  • ユーザーがやること
  • 使用シーン
  • 使用するメリット
  • 使用しない場合の代替手段
マインドマップ化 図3 マインドマップ化

» ユースケース
 これから作るモノに対する要求としては、「ユーザーがやること」が当てはまります。そこで、それらの要求を満たすために必要なユースケースを以下のようにざっくりとまとめてみました(図4)。

ユースケース 図4 ユースケース

(1)要求1.CDイメージをAndroid端末上で管理する

ユースケース名 CDイメージを管理する
目的 PCブート可能なCDイメージをAndroid端末上で管理(登録/解除)する 
CDイメージの配置先は、SDカードもしくはクラウド上とする(注4
事前条件 CDイメージを配置できるサイズのSDカードが挿入されている 
クラウドサービスアプリがインストールされている
正常終了条件 Android端末上で、管理対象CDイメージを操作できるようになる 
ここでの操作とは「検索」「マウント」「アンマウント」である

※注4:SDカードのアクセスやクラウドサービスについては、Androidの組み込みAPIやアプリ(Dropboxなど)を利用することで、作り込み範囲を広げ過ぎないようにします。


(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のロゴは、こんな感じにしてみました。

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イメージの行を選択すると最初の画面(マウント/アンマウント画面)に戻ります。

CDイメージ検索画面

 それでは、最初の画面に戻って、[Mount]ボタンを押下してみましょう!

[Mount]ボタンを押下

村上 ……っと、見事に失敗していますね。私のAndroid端末で実現できるのはここまで。Android FrameworkのAPIでは、ISOファイルをデバイス化し、マウントしてくれるようなものは提供されていないので、うまくいきません。困りましたねー。



 今回は、森さんのAndroidボード(試作機1号)を使って、AndroidでPCを救出させることができました。しかし、今のままではせっかく作ったアプリがうまく動作しません……。

 というわけで次回は、ユーザーインタフェースからAndroidのミドル層への改造について解説していきたいと思います。ご期待ください! (次回に続く)


Android コーナー

Androidコーナー
「Android(アンドロイド)」の組み込み機器への適用からアプリ開発、レポート、ニュースなどさまざまな技術情報・最新動向をお届けする!!

>>コーナーTOPはこちらから


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.