検索
連載

Androidのシステムアーキテクチャ 〜全体像を理解するために〜Android技術者認定試験「ACE」ドリル(1)(1/2 ページ)

Android技術者認定試験制度「ACE」の対策問題を解きながら、Androidアプリケーション開発の“ベーシックなスキル”を養おう! 今回は「システムアーキテクチャ」についてだ。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

Androidとは?

 いま、スマートフォン市場が非常に盛り上がっています。この1年で日本の携帯電話の主役は完全にスマートフォンに変わりました。携帯電話売り場の様変わりもさることながら、各種メディアでも大々的にスマートフォンの特集が組まれているのもよく見かけます。いわば、1つのブーム、“ムーブメント”といっていいでしょう。

 その火付け役となったのは、間違いなくApple社の「iPhone」でしょう。しかし、その風向きは変わりつつあります。iPhoneが(旧バージョンの併売を除いて)1機種しか存在しないためでもありますが、2010年末には日本国内でも「Android」を搭載したスマートフォンの売り上げがiPhoneを上回りました(参考記事)。また、その勢いは一般消費者に対してだけではなく、企業にも加速度的に浸透しています。最も分かりやすい指標が、Androidに関係する開発案件の急増です。それは私自身も強く感じています。このような状況のため、いまソフトウェア業界は、“Androidエンジニアが枯渇している(Androider急募!)”状態になっています。

Androidエンジニアに必要なスキル

 しかし、Androidの歴史が浅いこともあり、Androidエンジニアのスキルを評価する方法が乏しく、各企業は優秀なエンジニアを集めることに非常に苦労しています。

せっかく案件があるのにメンバーを集められない!

Javaの経験は豊富なので大丈夫だと思ったがAndroidの開発は違うスキルも必要で失敗してしまった……。

などの声を、私もたくさん耳にしています。そのため、業界として、Androidエンジニアが必要なスキルを明確に規定し、そのスキルを客観的に認証していく仕組みを作ることが急務でありました。

 そこで、一般社団法人「Open Embedded Software Foundation(以下、OESF)」は“Android開発に必要なスキルは何か”を明確にするためにAndroid技術スキル標準「ATSSAndroid Technical Skill Standard)」を策定・公開し、またそれに基づく客観的なスキルアセスメントの方法として、Android技術者認定試験制度「ACE(OESF Authorized Certification Engineer for Android)」をアプリケーション・ベーシック(注1)から開始しました。

※注1:「アプリケーション・ベーシック」とは、Androidのアプリケーションエンジニアを対象とした試験となります。俗にいう“上周り”を対象とした試験となり、アプリケーションを作るエンジニアを対象としています。



 このようにOESFの動きを中心とし、Androidエンジニアに必要なスキルを可視化、および客観的に評価する取り組みがなされています。本連載では、ACE対策問題を皆さんに解いてもらい、Androidアプリケーション開発の“ベーシックなスキル”を養ってもらうことを目的としています。それでは早速、本編に入りましょう。

 なお、本連載はACEのアプリケーション・ベーシックを対象とし、演習問題を解きながら、Androidの基礎知識を学んでいきます。問題の分類に関してはATSSの第3階層に準拠します。

第3階層 スキル項目 概要
システムアーキテクチャ システムアーキテクチャ概要
ライセンス形態
ユーザーインタフェース メニュー オプションメニュー、ダイアログメニュー
ダイアログ 各種ダイアログ
イベント処理 ボタン、キー、モーションなどのイベント
ノティフィケーション 時計などが表示されている通知バー
スタイルとテーマ カラーセットなど
ビュー ビューオブジェクト
Graphics(2D&3D) キャンバスでの描写、OpenGLでの描写
リソースファイル AndroidManifest アプリケーション名、起動方法、メインActivityなどを定義
XMLの書式
リソースの代替設定と国際化 Alternativeオプションによるリソースの切り替え
SecurityとPermissions セキュリティの概念
アプリケーションコンポーネンツ IntentとIntent Filter Intentの役割、アプリケーション間の連携、明示的・暗示的インテント
Activity ライフサイクルなど
Content Providers
Service ライフサイクルなど
BroadcastReceiver
ストレージ ファイル入出力の概要
Preferences アプリケーションのデータ保存・読み込み
SQLite SQL(データベース)の利用
通信 ネットワークプロトコル(HTTP TCP/IP) java.netパッケージとandroid.netパッケーシ
Bluetooth android.bluetoothパッケーシ
Wi-Fi androidのWi-Fiパッケーシ
外部機器とセンサー GPS GPSセンサーパッケーシ
センサー センサーパッケーシ
マルチメディア オーディオ メディアファイルの利用
ビデオ メディアファイルの利用
テスト JUnitフレームワーク 自動テスト
ネイティブ JNI
スクリプト言語(ASE)
NDKの概要
アプリケーション管理 バージョニング マニフェストファイルにバージョンを記載
プライベートキーの生成 keytoolを使用した秘密鍵の生成
Map API Keyの登録 MapViewを使用している場合に登録
アプリケーション配布 署名 apkアーカイブに署名をする(ないものはインストールできない)。
アップデート バージョニングにより、AndroidMarketから自動UPDATE
開発機能 Eclipse
Android Development Tools Plugin(adt)
layoutopt レイアウトファイルの問題検出ツール
Draw 9-patch 画像編集ツール
Android Asset Packaging Tool(aapt) apkファイルの生成、アーカイブ化を行うツール
Android Interface Description Language(aidl) 下位層とのインタフェース
sqlite3 SQLite
dx classファイルをdexに変換するツール
zipalign apkファイルの最適化ツール
デバッグ機能 Android Emulator
Android Virtual Devices(AVDs)
Hierarchy Viewer レイアウトファイルの階層表示ツール
Dalvik Debug Monitor Service(ddms)
Android Debug Bridge(adb)
Traceview Androidアプリケーションのトレース
mksdcard SDカードイメージの生成を行うツール
UI/Application Exerciser Monkey モンキーテストツール
android AVDおよびSDKの管理ツール
表1 ATSSの第3階層−アプリケーションスキル定義

システムアーキテクチャ

 今回はAndroidのシステムアーキテクチャについて学びましょう。いわばAndroid全体の“設計図”となる基礎知識ですので、Androidにかかわるエンジニアは必ず知っておくべき必要がある項目です。これを学ぶことにより、Androidの全体像を理解できるようになります。なお、ACE対策としてはATSSの第3階層「システムアーキテクチャ」に該当します。

 それでは、早速演習に入りましょう。

今回の演習問題

演習1:フレームワーク構成

演習1:フレームワーク構成
図1 演習1:フレームワーク構成

演習1 図1の空欄(a)〜(d)を埋める語句として、正しい組み合わせ選択してください。

(1)(a)Linuxカーネル2.6、(b)ライブラリ、(c)Javaランタイム、(d)アプリケーションフレームワーク、(e)アプリケーション


(2)(a)Linuxカーネル2.6、(b)ライブラリ、(c)Androidランタイム、(d)アプリケーションフレームワーク、(e)アプリケーション


(3)(a)Linuxカーネル2.6、(b)ライブラリ、(c)Androidランタイム、(d)Androidフレームワーク、(e)アプリケーション


(4)(a)Linuxカーネル2.4、(b)ライブラリ、(c)Javaランタイム、(d)アプリケーションフレームワーク、(e)アプリケーション



演習2:アプリケーション

演習2 Androidアプリケーションを開発する際に用いるプログラミング言語を選択してください。

(1)C

(2)Objective-C

(3)C++

(4)Java



演習3:ライセンス

演習3 Androidのライセンス形態を選択してください。

(1)Apache License 2.0

(2)GNU General Public License(GPL)

(3)Lesser General Public License(LGPL)

(4)BSD License



Copyright © ITmedia, Inc. All Rights Reserved.

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