検索
連載

Androidアプリ開発で役立つマルチメディアとテストの知識Android技術者認定試験「ACE」ドリル(10)(2/2 ページ)

今回の演習は、リッチコンテンツを取り扱うようなアプリの開発に必須の「マルチメディア」と、単体テストを自動化でき品質向上の助けとなるJUnitに関する「テスト」の知識についてだ。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

解答

演習1:答え(4)

 「android.media」パッケージのクラスを問う問題です。解答から示しますと、MediaManagerは存在しません。よって、選択肢(4)が誤りとなり、ここでの正解となります。

 (1)の「MediaPlayer」は、オーディオやビデオファイルの操作(再生/停止など)を行うためのクラスになります。(2)の「MediaRecorder」は、録画と録音に用いるクラスです。具体的には以下のメソッドを持ち、これらを設定することにより録音が可能になります(表1)。

メソッド名 概要
setAudionSource 入力ソースの指定
setOutputFormat 出力フォーマットの指定
setAudioEncoder エンコーダーの指定
setOutputFile 出力先の指定
prepare 録音準備
start 録音開始
stop 録音停止(再開始可能)
release リソースの開放(再開始不可)
表1 MediaRecorderクラスのメソッド(一部)

 注意点として、MediaRecorderのオブジェクトは状態遷移を持っています。そのため、呼び出し順を守らなければ正しく動作しません。上記の表1で示したメソッドを上から順番に呼び出せば、正しく録音することが可能です。せっかくなので、この機会にメソッド名だけでなく順番も覚えてしまいましょう。

 残りの選択肢(3)の「AudioManager」は、音量や音の種類の設定、また現在の設定の取得を行うクラスとなります。

演習2:答え(3)

 Androidでサポートしているビデオフォーマットを問う問題です。まずは、サポートしているビデオフォーマットを一覧で確認しましょう(表2)。

フォーマット ファイルタイプ
H.263 3GPP(*.3gp)、MPEG-4(*.mp4)
H.264/AVC 3GPP(*.3gp)、MPEG-4(*.mp4)、MPEG-TS(*.ts:Android 3.0以上)
MPEG-4 SP 3GPP(*.3gp)
VP8 WebM(*.webm)、Matroska(*.mkv:Android 4.0以上)
表2 Androidでサポートしているビデオフォーマット

 表2より、選択肢(3)の「H.265」が誤りとなり、ここでの正解となります。

 このフォーマット一覧は、開発そのもので覚えておく必要はないのですが、ACE対策として覚えておいて損はないでしょう。

演習3:答え(3)

 演習3は、Androidのテストフレームワークに関する問題です。ここでの正解となる誤っている選択肢は、(3)となります。

 Androidのテストフレームワークを起動するには、「AndroidManifest.xml」にテスト用の記述をする必要があります。しかし、そのテスト用の記述をリリースするアプリケーションに直接記載してしまうことは好ましくありません。また、リリースするアプリケーションにテストコードを入れ込んでしまうことも避けなければなりません。

 このような観点から、Androidではテストプロジェクトを作成するのが一般的です。開発環境として使われるEclipseにおいてもテストフレームワークをサポートするようになっています。

 ちなみに、AndroidManifest.xmlに指定するタグは<instrumentation>タブと<uses-library>タグになります。本連載では取り上げませんが、ご興味のある方は調べてみましょう。

 (1)に関しては、JUnitの通常のパッケージ名である「junit.framework」でなく「android.test」であることに注意しましょう。(2)に関しては、以下にAndroidで用意されている拡張したTestCaseクラスの表を示します(表3)。JUnit経験者はこれを機会に覚えておきましょう。

クラス 概要
ActivityInstrumentationTestCase2 画面操作のテストに利用
ActivityUnitTestCase Activityのテストに利用
SingleLaunchActivityTestCase 各テストメソッドでどういうインスタンスのActivityを用いたい場合に利用
ServiceTestCase Serviceのテストに利用
ProviderTestCase2 Providerのテストに利用
ApplicationTestCase アプリケーションのテストに利用
表3 Androidで用意されているTestCase

 (4)に関しては、「JUnit4」でないことに注意してください。Androidに用意されているテストフレームワークは、「JUnit3」ベースとなります。



 以上で、マルチメディアとテストに関する演習は終了です。今回のナレッジ・スキルは開発現場で非常に役立つものなので、しっかりと理解しておきたいですね。

 一方で、本連載の主目的であるACE対策という観点で見ると、この単元は学習の優先度を下げるべき単元だと筆者は考えます。なぜなら、マルチメディアは単純な知識を問う問題なら太刀打ちできても、コードを問う問題は実際に開発経験がないと非常に難しいからです。また、テストに関しては、そもそもJUnitを使ったことがない方にしてみれば、JUnitそのものを学ぶところから始めなければなりません(もちろんJUnitを理解していれば、後はAndroidで拡張された機能を理解すればよいだけです)。よって、ACE対策という観点では、この2つの単元は優先度を低くして臨むべきだといえるでしょう。

 さて、Android技術スキル標準「ATSSAndroid Technical Skill Standard)」の順に従えば、次は「ネイティブ」を取り上げるわけですが、この単元は実際の開発経験がないと非常に難しく、C言語の知識も必要になります。そのため、「ベーシック」レベルを標ぼうする本連載では割愛することにします。

 というわけで、次回は1つ飛ばして、「アプリケーション管理」と「アプリケーション配布」について学んでいきます。お楽しみに! (次回に続く)

ACEアプリベーシック試験対応イーラーニング(サンプルIDプレゼント中)


Androidコーナー

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

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


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る