テスト用のAVDを作成する

テスト用のAVDを作成する

前々回で述べたように、HT-03Aはトラックボールを搭載していますが、Xperiaには有りません。従って、トラックボール操作を前提とするアプリは、 Xperiaでは利用できません。

この場合、トラックボールのない端末向けに代替の操作手段を用意しておく必要があります。

サンプル・プロジェクトのMainActivityは、トラックボールが押されるとexecuteメソッドを実行し、画面に「execute」または「実行」と表示します。

エミュレータでは、PCのキーボードから「F6」キーを押すと「トラックボール・モード」に切り替わります(図2-1)。

トラックボール・モードに切り替えると、マウス操作をトラックボールの回転として、マウスをクリックするとトラックボールを押したと認識します。

トラックボールが無い端末をエミュレートするには、別途エミュレータのイメージ(AVD)を作成する必要があります。

なぜなら、通常作成するAVDは、標準でトラックボールに対応した設定で作成されるためです。トラックボールが無い端末をテストするためのAVDは、その旨を明示して作成する必要があります。

Eclipseの「Window」->「Android SDK and AVD Manager」からAVD Managerを開いて、「New」からAVDの新規作成を行います(図2-2)。

大まかな設定は、これまでと同じです。ここでは、作成するAVDに「Xperia」と名前を付けました。

次に、トラックボールを搭載しないことを明示する必要があります。

まず、「Hardware」->「New」でエミュレータがサポートするハードウエア設定の追加ダイアログを開き、「Track-ball support」を選択します(図2-3)。

「Track-ball support」は、リストに追加された状態では、サポートする「yes」に設定されています。セルをクリックして、サポートしない「no」に設定を変更します(図2-4)。

設定が終わり、「Create AVD」を押すと、トラックボールを搭載していない端末用のAVDが作成されます。

できあがったAVDをエミュレータで選択し、サンプル・プロジェクトを実行後、F6でトラックボール・モードに切り替えます。トラックボールの入力を、アプリが受け取っていない(画面に何も表示されない)ことを確認してください。

トラックボールの有無で表示レイアウトを切り替える

テスト環境ができたので、サンプル・アプリを、トラックボールの有無に依存しない形に改変します。

対応の方法はいくつか考えられますが、ここではトラックボールが無い端末に限って画面にボタンを表示し、ボタンを押すとトラックボールを押したのと同じ動きをするようにします。

サンプル・プロジェクトの「res/」に、新しいディレクトリ「layout-nonav」を追加します。「nonav」は、トラックボールやホイールのような操作方法が無いことを示す修飾子です。

layout-nonavの作成後、サンプル・プロジェクトの「res_sample/layout-nonav/」のmain.xmlを、作成した layout-nonavディレクトリにコピーしてください。

layout-nonavに追加するmain.xmlには、Buttonが追加されています。

変更したサンプル・プロジェクトを、トラックボールをサポートしていないエミュレータ上で実行すると、画面にボタンが表示されます。

同じアプリを、トラックボールをサポートしたエミュレータ上で実行すると、ボタンは表示されません。

表示されたボタンを押しても何も起こらないのは、コード側で、ボタンを押したときの処理を書いていないからです。

しかし、ただ処理を書くと言っても、トラックボールの有無に応じて、ボタンがある場合と無い場合の2つのパターンが生じます。コード側は、どのように対応すればいいのでしょうか。

次のページでは、環境に応じて画面の部品が変わる場合に、どのように対応するのかを説明します。

この記事のキーワード :

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30