アンドロイドアプリの基礎知識



アンドロイドについて

アンドロイドは2012年9月現在、Android4.1が最新版となります。
とりあえず、Wikipediaの情報を元に、アンドロイドとはなんぞ?というところから説明をしたいと思います。

Android(アンドロイド)とは、スマートフォンやタブレットPCなどの携帯情報端末を主なターゲットとして開発されたプラットフォームである。Linuxベースのモバイル用オープンソース・オペレーティングシステム、ミドルウェア、主要なアプリケーションからなるソフトウェアスタック(集合)パッケージで構成されている。

2003年にアンディ・ルービン、リッチ ・マイナー、ニック・シアーズ、クリス・ホワイトがアメリカカリフォルニア州パロアルトに携帯電話向けソフトウェアプラットフォームを開発するAndroid社を設立。2005年にグーグルがAndroid社を買収、一時はグーグル社が「gPhone」という独自の携帯電話端末の開発を進めているという憶測が流れた。
2007年11月5日 携帯電話用ソフトウェアのプラットフォームであるAndroidを、グーグル、米クアルコム社、独通信キャリアのT-モバイル(T-Mobile International)社などが中心となり設立した規格団体 「Open Handset Alliance」(オープン・ハンドセット・アライアンス)が発表した。
無償で誰にでも提供されるオープンソースであり、Apache v2ライセンスで配布される。

アプリケーションマーケットであるGoogle Play Storeが提供され、2012年6月時点で有料、無料含め60万を超えるアプリケーションが提供されている。

Androidのロゴには緑色のロボットのキャラクターが使われている。このキャラクターには正式名称はなく、ユーザーによって様々な名前で呼ばれている。日本では「ドロイド君」と称されることが多い。

競合するモバイル向けプラットフォームとしては、マイクロソフトのWindows Phone、アクセンチュアのSymbian OS、クアルコムのBREW、アップルのiOS、Research In MotionのBlackBerry、サムスン電子のBadaなどがある。


アンドロイドの構成

Androidは、カーネルからミドルウェア、ユーザーインターフェース、Webブラウザ、電話帳などの標準的なアプリケーション・ソフトウェア群までを1つのパッケージにして提供されている。

カーネルにはLinuxの関連技術が使用されているが、その他の部分は様々な技術が用いられており、例えば標準Cライブラリの Bionic は NetBSD の libc と Linux の libc を組み合わせたものをベースにしている。

Androidのアーキテクチャ

ソフトウェア

カーネルとライブラリー、ランタイムはほとんどがC言語またはC++で記述されている。アプリケーションとアプリケーション・フレームワークは、グーグル独自に構築した仮想マシンであるDalvik仮想マシン上の「Java Platform, Standard Edition(Java SE)のサブセット+Android拡張」環境で記述することになる。

対応CPU
Google が公式サポートしている CPU は ARM (ARMv5以降)、MIPS、x86である。ただし、端末シェアのほぼ全てが ARMv7 となっている。ARM 以外の環境は Android 2.3 から対応。x86 エミュレータは x86 パソコン上では Intel Hardware Accelerated Execution Manager を使うと高速に動作する。

Dalvik VM
Android用のアプリケーションは、基本的にはDalvik仮想マシン(VM)と呼ばれるAndroid OS上で動作し、プレ・インストール・アプリと、後からインストールするアプリを、公平に扱うのが特徴である。Apache HarmonyからSwingやAWTなどの一部のAPIを除去し、UIなどのAPIを追加したライブラリとなっている。 Java CDCのAPIは、全てではないが、概ね含まれている。Sun Javaの互換性テストを通過していない。
Googleから提供されているSDKでは、Javaプラットフォームによるプログラム環境と、C/C++による開発がサポートされている。Java言語以外にも、Javaプラットフォーム向けの複数の言語(Scala、Hecl)で書かれたプログラムがDalvik上で動作する。
また、.NET Framework互換環境の1つであるMonoについてもDalvikに対応する計画がある。

日本語入力
2011年現在、Android OSには標準で日本語入力システム(日本語IME)が搭載されておらず、国内で発売されている機種については、iWnn、POBox Touch、ATOKなどがメーカーによって搭載されている。
サードパーティー製IMEのインストールが可能なため、日本語IMEが搭載されていない海外向けの機種についても、自分でATOK、Google 日本語入力、OpenWnn、Simejiなどを導入する事で、日本語入力が可能となる。

バージョン
歴代のコードネームのうち、1.5からは頭文字がバージョンの発表順にCからのアルファベット順で始まる菓子の名前が付けられており、それぞれに前述のマスコットのロボットがコードネームの菓子に扮している。

Astro (1.0)
Bender (1.1)
Cupcake (1.5):カップケーキ
Donut (1.6):ドーナツ
Eclair (2.0と2.1):エクレア
Froyo (2.2.x):フローズンヨーグルト
Gingerbread (2.3.x):ジンジャーブレッド
Honeycomb (3.x):蜂の巣ケーキ
Ice Cream Sandwich (4.0.x):アイスクリームサンドイッチ(氷菓)
Jelly Bean (4.1.x):ゼリービーンズ

アンドロイドの開発環境について

アプリケーション・ソフトウェア開発用にはAndroid SDK(Software Development Kit)が、ランタイムとライブラリーの開発用にはAndroid NDK(Native Development Kit)が無償提供されている。

Android SDK によって、Android携帯電話機とホストPCとをUSBで接続して、アプリケーション・プログラムを携帯電話機上で実行しながらPC上でデバッグすることもできるが、グーグル社が有償で提供するSIMロックフリーの開発専用携帯電話機や他社の専用の携帯電話機エミュレータでないと、低レベルのランタイムとライブラリーを書き換えることは出来ない。

対応しているオペレーティングシステムはLinux(Ubuntu 8.04以降など)、Mac OS X v10.5.8 以降(Intel Mac)、Windows XP 以降である。
開発環境には、Eclipseが推奨されている。
IntelliJ IDEAなど他の統合開発環境も対応している。