GoogleのAndroidモバイルプラットフォームが発表されて以来、Androidをプラットフォームとした携帯電話やタブレットがますます普及しています。Androidの開発はまだ比較的簡単に始めることができます。
アンドロイドとは?
Android SDKは、JaVa言語を使ってAndroidプラットフォーム上でAndroidアプリケーションを開発するために必要なツールとAPIインターフェースを提供します。
アンドロイドの特徴
- アプリケーションフレームワークはコンポーネントの再利用と置き換えをサポート
- モバイルデバイスに最適化されたDalvik仮想マシン
- 統合ブラウザは、オープンソースのWebKitエンジンをベースにしています。
- カスタム2Dライブラリ、OpenGL ES 1.0ベースの3Dライブラリを含む最適化されたグラフィックスライブラリ
- 構造化データ保存用SQLite
- GSM電話技術
- Bluetooth、EDGE、3G、WiFi
- カメラ、GPS、コンパス、加速度センサー
- 豊富な開発環境には、デバイス・シミュレータ、デバッグ・ツール、メモリおよび性能解析チャート、Eclipse IDEプラグインが含まれます。
アプリケーションフレームワーク
開発者は、コアアプリケーションで使用されるAPIフレームワークにもフルアクセスできます。アプリケーション・アーキテクチャは、コンポーネントの再利用を簡素化するように設計されています。どのアプリケーションもファンクション・ブロックを公開でき、他のアプリケーションは公開されたファンクション・ブロックを使用できます。同様に、アプリケーションの再利用メカニズムにより、ユーザーはプログラムコンポーネントを簡単に置き換えることができます。
各アプリケーションの背後には、一連のサービスやシステムなどが隠されています;
- リッチで拡張性の高いビューを使用して、リスト、グリッド、テキストボックス、ボタン、さらには埋め込み可能なウェブブラウザを含むアプリケーションを構築できます。
- コンテンツ・プロバイダは、アプリケーションが他のアプリケーションのデータにアクセスしたり、自身のデータを共有したりできるようにします。
- エクスプローラでは、ローカルの文字列、グラフィック、レイアウトファイルなど、コード以外のリソースにアクセスできます。
- Notification Manager アプリケーションがカスタマイズしたアラートメッセージをステータスバーに表示できるようにします。
- アクティビティマネージャー アプリケーションのライフサイクルを管理し、一般的なナビゲーションのフォールバックを提供します。
プログラムライブラリ
Androidには、Androidシステムのさまざまなコンポーネントで使用できるC/C++ライブラリが多数含まれています。これらは、Android Application Framework
開発者向けです。コアとなるライブラリをいくつか紹介します:
- System C Library - BSD から受け継いだ標準 C システムライブラリで、組み込み linux ベースのデバイス用にカスタマイズされています。
- SurfaceManager - ディスプレイ・サブシステムを管理し、複数のアプリケーションに2Dと3Dレイヤーのシームレスな統合を提供します。
- LibWebCore - Android ブラウザと埋め込み可能なウェブビューをサポートした *** ウェブブラウザエンジンです。
- SGL - 基礎となる2Dグラフィックスエンジン
- 3Dライブラリ - OpenGL ES 1.0 APIに基づいて実装されており、ハードウェア3Dアクセラレーションまたは3Dソフトアクセラレーション用に高度に最適化されています。
- FreeType - ビットマップとベクターフォントの表示。
- SQLite - あらゆるアプリケーションで利用可能な、強力で軽量なリレーショナルデータベースエンジンです。
Androidランタイムライブラリ
Androidには、JAVAプログラミング言語のコアライブラリのほとんどの機能を提供するコアライブラリが含まれています。
各Androidアプリケーションは独自のプロセスで実行され、Dalvik仮想マシンの個別のインスタンスを持っています。
Dalvik仮想マシンで実行されるDalvik仮想マシン実行ファイルで、複数の仮想システムを同時に効率的に実行するようにフォーマットされています。
コンポーネントはメモリ使用量が少なくなるように最適化されています。仮想マシンもレジスタベースで、すべてのクラスはJAVAコンパイラによってコンパイルされ、SDKを通過します。
dx "ファイル内の "dx "ユーティリティは、VMが実行するために.dex形式に変換されます。
Dalvik VMは、スレッド機構やメモリ管理機構など、Linuxカーネルの多くの機能に依存しています。
Linuxカーネル
Androidのコアシステムサービスは、セキュリティ、メモリ管理、プロセス管理、ネットワークスタック、ドライバーモデルなど、Linux 2.6カーネルに依存しています。
Linuxカーネルは、ハードウェア・スタックとソフトウェア・スタックの間の抽象化レイヤーとしても機能します。
Androidアプリケーションとフレームワーク
以下の図は、Androidシステムの主なコンポーネントを示しています。
連絡先、電子メール、電話、ブラウザ、カレンダー、マップ、...などのコアアプリケーション。
すべてのコアアプリケーションフレームワークAPIへのフルアクセス
C/C++ライブラリ:アプリケーションフレームワークを通じて様々なAndroidコンポーネントで使用され、開発者はその機能を使用することができます:
メディアライブラリー: MPEG4 H.264 MP3 JPG PNG ....
WebKit/LibWebCore: ウェブブラウジングエンジン
SQLiteリレーショナルデータベースエンジン
2D、3Dグラフィックライブラリ、エンジン
Androidは開発言語としてJavaを使用しており、ライブラリの大部分はJava SEと共通ですが、Java MEとは異なり、Dalvik仮想マシンはJava仮想マシンではありません。EclipseはAndroidの推奨開発IDEであり、連絡先、電子メール、電話、ブラウザ、カレンダー、マップなど、Androidプラットフォームに付属するさまざまなアプリケーションはすべて書き換えることができます。マップは書き換え可能です。





