@wikiメニュー編集表示ツールヘルプブックマーク登録RSS登録
このウィキに参加ログイン
新規ページ作成
すでにあるページをコピーして新規ページを作成 スレッドフロート型掲示板から引用して新規ページ作成(α版) ブログの内容から引用して新規ページ作成(α版) ファイルをアップロードして新規ページ作成(α版) 他のホームページから引用して新規ページ作成(α版)
[PR] 無料ホームページ @PAGES [PR] オークション@pedia [PR] 2ch型無料レンタル掲示板 @chs
@wikiで新規wikiを作成
このページを編集 このページを編集(メニュー非表示編集;α) このページをコピーして新規ページを作成 このページのページ名を変更 このページの編集モードを変更 このページの閲覧/編集権限の変更
このページにファイルをアップロード
このウィキにファイルをアップロード(FTP機能/管理者のみ利用可)
メニューを編集(メニュー部分は非表示で編集)
このページの最新版変更点 このページの編集履歴(バックアップ) このページへのリンク元 このページへのトラックバック
このページをPDFで表示(α版)
関連ページ(α版) 関連ホットワード(α版)
このwikiのページ一覧 編集履歴(バックアップ)のあるページ一覧 このwikiのタグ一覧 このwikiの更新情報RSSこのwikiの更新情報RSS このwikiの新着ページRSSこのwikiの新着ページRSS
このwiki内を検索 @wikiパーツ▶  @wiki便利ツール▶  このwikiの管理者に連絡
@wiki助け合いコミュニティ @wiki助け合い掲示板
wiki(ウィキ)って何?
初心者ガイド
ご利用ガイド 良くある質問 プラグイン一覧 編集モードの違いについて 不具合や障害を見つけたら 管理・設定マニュアル
はてなブックマークする FC2ブックマークに追加 Livedoor クリップに追加 Yahoo!ブックマークに登録 del.icio.usに追加
はてなRSSに追加 livedoor ReaderにRSSフィードを登録 Yahoo!にRSSフィードを登録 BloglinesにRSSフィードを登録 NewsGator OnlineにRSSフィードを登録 iGoogleにRSSを追加
@wikiパーツ:あなたのサイトにWikiデータを簡単表示!
最近更新したページの一覧を表示する 最近作成したページの一覧を表示する このwiki内を検索するフォームを表示する このwikiのタグクラウドを表示する 自動リンク辞書を利用する
@wiki便利ツール:トップページ
まとめサイト作成支援ツール RSSかんたん作成 興味キーワードをチェック!!(RSSナビ) いろんなblogのRSSかんたん作成ページ アマゾン商品検索(簡単アフィリエイト) wikiに株式情報(日本)を表示 wikiに株式情報(中国)を表示 かんたんHTML直接入力 Q&Aサイトかんたん連携作成 wikiに為替情報を表示 はてなアンテナと簡単連携

ドキュメント > Androidって何?

Androidって何?

Androidは、オペレーティングシステム、ミドルウェアと鍵となるアプリケーションを含むモバイル端末のためのソフトウェアスタックです。
Android SDKのこの早めのリリースは、Javaプログラミング言語を使用しているAndroidプラットホームでアプリケーションを開発し始めるのに必要なツールとAPIを提供します。

特徴

  • コンポーネントの再利用と置き換えを可能にするアプリケーションフレームワーク
  • モバイル端末に最適化したダルヴィーク(Dalvik)ヴァーチャルマシン
  • オープンソース WebKit エンジンに基づく統合化されたブラウザー
  • カスタム2Dグラフィックライブラリによる最適化されたグラフィックス
  • 3DグラフィックはOpenGL ES 1.0の仕様準拠(ハードウェアアクセラレーションは任意)
  • 構造化されたデータ領域のためのSQLite搭載
  • 一般的なオーディオ、ビデオと静止画フォーマットをサポート(MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF)
  • GSM通話(ハードウェア依存)
  • Bluetooth、EDGE、3G、WiFiに対応(ハードウェア依存)
  • カメラ、GPS、コンパス、加速度計(ハードウェア依存)
  • リッチな開発環境、端末エミュレーター、デバッグ、メモリー、パフォーマンスのプロファイリングのツール、およびEclipse IDE用のプラグイン

Androidのアーキテクチャ

以下は、Androidオペレーティングシステムの主要コンポーネント図です。各々のセクションの詳細は下記に続きます。

アプリケーション

Androidは電子メールクライアント、SMSプログラム、カレンダー、地図、ブラウザー、コンタクト(アドレス帳)、その他を含む一組のコアアプリケーションを搭載します。すべてのアプリケーションは、Javaプログラミング言語を使用して記述されます。

アプリケーションフレームワーク

開発者はコアアプリケーションに用いられるものと同じフレームワークAPIへ完全にアクセスできます。
アプリケーションのアーキテクチャは、コンポーネントの再利用を単純化するように設計されています。
どのようなアプリケーションでもその能力を公開することができます。そして、他のどのアプリケーションからもそれらの能力(フレームワークによって実施されるセキュリティ制約に制限される)を利用するかもしれません。このようなメカニズムにより、ユーザーによるコンポーネントの入れ替えを可能にします。

すべてのアプリケーションは、以下のサービスとシステムによって成り立っています。

  • リスト、グリッド、テキストボックス、ボタンと組み込み可能ななウェブブラウザを含むアプリケーションを構築するのに用いることができる豊かで拡張可能なViews?のセット
  • アプリケーションが他のアプリケーション(例えばアドレス帳)のデータにアクセスするか、彼ら自身のデータを共有することを可能にするContent Providers?
  • Resource Manager?(ローカライズされた文字列、グラフィックスとレイアウトファイルのような非コード資源を提供する)
  • すべてのアプリケーションがステータスバーでカスタムメイドのアラートを表示することを可能にするNotification Manager?
  • アプリケーションのライフサイクルを管理して、共通のナビゲーション履歴を提供するActivity Manager?

アプリケーションの詳細とウォークスルーについてはAndroidアプリケーションについて?を参照してください。

ライブラリ

Androidは、Androidシステムの多様ななコンポーネントにより用いられるC/C++ライブラリのセットを含みます。
これらの能力は、Androidアプリケーションフレームワークを通して開発者に公開されます。
主なライブラリは以下の通りです。
システムCライブラリ
標準的なCシステムライブラリ(libc)。(組み込み向けLinuxベースのデバイスのために調整した)BSDから派生した実装です。
メディアライブラリ
PacketVideo社のOpenCOREをベースにしています。ライブラリは、多くの一般的なオーディオとビデオ形式(MPEG4、H.264、MP3、AAC、AMR、JPGとPNGのような静止画を含む)の再生とレコーディングをサポートします。
Surface Manager
表示サブシステムへのアクセスを管理して、複数のアプリケーションからシームレスに2Dと3Dグラフィックレイヤーを合成します
LibWebCore
Androidブラウザーと組み込み可能なウェブ表示を可能にする最新のウェブブラウザエンジン
SGL
下位層にある2Dグラフィックエンジン
3Dライブラリ
OpenGL ES 1.0のAPIに準拠しています。ライブラリはハードウェア3Dアクセラレーション(ハードウェア依存)、あるいは標準装備の高度に最適化された3Dソフトウェアラスタライザーを使用します。
FreeType
ビットマップとベクターフォントのレンダリング
SQLite
すべてのアプリケーションで利用可能な強力で軽量なリレーショナルデータベースエンジン

Androidランタイム

Androidは、Javaプログラミング言語のコアライブラリの機能の大部分を提供するコアライブラリを含んでいます。

あらゆるAndroidアプリケーションはDalvik VMのインスタンスをアプリケーション毎に生成することによって、独立したプロセスで動作します。
Dalvik VMはデバイスが効率的に複数のヴァーチャルマシンを走らせることができるように作られています。
Dalvik VMは、省メモリのために最適化されたDalvikで実行可能なフォーマット(.dex)を使用してファイルを実行します。
VMはレジスターに基づいた、Java言語コンパイラによってコンパイルされたクラスを付属の"dx"ツールを使用して.dexフォーマットに変換したものを実行します。

Dalvik VMは、Linuxカーネルの根底にある機能(例えばスレッディングと低レベルのメモリ管理)で成り立っています。

Linuxカーネル

Androidは、Linux 2.6のコアシステムサービス(セキュリティ、メモリ管理、プロセス管理、ネットワークスタックとドライバーモデル)で成り立っています。また、カーネルはハードウェアと残りのソフトウェアスタックの間の抽象レイヤーの働きもしています。



|新しいページ|検索|ページ一覧|RSS|@ウィキご利用ガイド | 管理者にお問合せ
|ログイン|
添付ファイル