ワーキンググループ/ハンズオンセッション

アンドロイドとは

 アンドロイドとは、Googleが中心となって開発を行っている、携帯電話上でアプリケーションを開発するためのソフトウェアプラットフォームです。パソコンでいうところのWindowsやMac OSなどをイメージすると理解しやすいと思います。  公式の開発ページは、Google Codeで管理されています。

特徴

アンドロイドとは、Googleが中心となって開発を行っている、携帯電話上でアプリケーションを開発するためのソフトウェアプラットフォームです。 以下のように、階層型のアーキテクチャを採用しています。

Intro.001.Architecture.png
  • OSとして、Linux Kernel 2.6を採用しています。
    • ただし、採用しているのはカーネルだけで、glibcではなく独自のlibcを採用するなど、通常のデスクトップLinuxとは大きく異なっています
  • アプリケーション開発は、Java言語を採用していますが、独自のバーチャルマシンであるDalvik(ダルビック)を採用しています。
    • Javaの標準パッケージも一部しかサポートしていないため、Javaとは呼べません。
  • WebKitやSQLiteなどのいくつかのネイティブライブラリーを搭載しています。
    • ライブラリの機能は、アプリケーションから利用できるようにJava言語のライブラリが提供されています。

ライブラリ

Javaから利用可能なライブラリとしては以下のようなものがあります。

Javaライブラリ概要
Android Core Packageandroid.os, android.app, android. graphicsなどコアとなるパッケージ
android.telephony電話用API
android.webkitウェッブブラウザー用API
android.provider電話帳、音楽、写真などのストレージ情報へのアクセスAPI
org.apache.httpApacheのHTTPコンポーネント
org.json軽量オブジェクトテキスト表現 (XMLよりも軽量)
org.xmlpullXMLプルパーサー
Java SEサブセットjava.io,java.math, java.net, java.nio, java.security, java.sql, java.util, javax.crypto, javax.net.ssl, javax.security.auth, etc

また、以下のようなネイティブライブラリが組み込まれています。

ネイティブライブラリ概要
System C library組込みに最適化されたBSD ライセンスのC システムライブラリ(libc)
Media LibrariesPacketVideoのOpenCOREベースのイメージ、音声、ビデオのメディアライブラリ。MPEG4, H.264, MP3, AAC, AMR, JPG, PNGをサポート
Surface Manager複数のアプリケーションから使用可能なディスプレイ管理
LibWebCoreブラウザエンジン
SGL2Dのグラフィックエンジン
3D librariesOpenGL ES 1.0 APIベースの3Dエンジン。ハードウェア、ソフトウェアのレンダリングを含む
FreeTypeビットマップ、ベクターのフォントのレンダリング
SQLiteデータベースエンジン

開発環境

QEMUを使用して実機と同じバイナリでEclipseを使用して開発可能

Intro.002.Environment.png
開発ツール概要
Android Emulator携帯電話をPC上で開発可能にするエミュレータ
Android Development Tools PluginEclipse上でAndroidのアプリケーションをJava言語で開発するためのプラグイン
Android Debug Bridge通称adb。コマンドラインからエミュレータやデバイスにアクセスするデバッグツール
Dalvik Debug Monitor Service通称ddms。アンドロイド上のアプリケーションを実行するバーチャルマシン用のデバッグツール