• BPnet
  • ビジネス
  • IT
  • テクノロジー
  • 医療
  • 建設・不動産
  • TRENDY
  • WOMAN
  • ショッピング
  • 転職
  • ナショジオ
  • 日経電子版
  • PR

  • PR

  • PR

  • PR

  • PR

Android徹底解説---内部構造,移植,開発

Androidの仕組みを知る(1) (2/4)

シーリス 代表 有山圭二 2009/12/01 日経Linux
出典:日経Linux 2009年10月号63ページ
(記事は執筆時の情報に基づいており、現在では異なる場合があります)
目次一覧

インサイドAndroid

 本連載の第1回として,Androidとは何なのかを理解しよう。以下では,Androidを構成するソフトウエア群の中身をのぞいてみる。

 Androidは5つのスタックで構成される。(1)Linuxカーネル,(2)標準的なライブラリ,(3)AndroidRuntime(アプリケーションを実行するための実行環境),(4)アプリケーション・フレームワーク,(5)アプリケーション,である(図2)。

[画像のクリックで拡大表示]
 これらのスタックごとに見ていこう。

Linuxカーネル

 AndroidはOSとしてLinuxカーネルを採用している。Linuxカーネルは,メモリーやプロセスの管理,ファイル・システム,セキュリティといった基本機能に加え,各種ドライバを提供する。いずれも通常のLinuxディストリビューションと同様,不可欠な機能である。

 Androidのアプリケーションは必ず,AndroidRuntimeやフレームワーク層を介して動作する。そのため,アプリケーションの開発時にカーネルを意識することはない。

 OHAは,Androidの開発に当たってカーネルに独自ドライバを数種追加している。それらの中でAndroidの特徴を表すドライバには次のようなものがある。

●LowMemoryKiller

 このドライバは,メモリーが不足した時に,不要なプロセスを自動的に停止する。LowMemoryKillerを加えたのは,次のような事情がある。

 Androidの各アプリケーションは,システム上の1プロセスとして起動される。通常のLinuxディストリビューションであれば,ソフトウエアの終了はプロセスの停止を意味する。しかし,Androidの場合はユーザーがアプリケーションを終了しても,プロセス自体はすぐには停止しない。

 その理由は,一般的なPCとは違い,携帯端末では消費電力が問題になるからだ。プロセスの生成は一般的な処理に比べて,CPUをはじめとするコンピュータ・リソースの消費量が非常に大きい。ユーザーがアプリケーションを切り替えるたびに,プロセスの終了と生成を繰り返していては,バッテリの持続時間が短くなってしまう。

 そのため,使われなくなったアプリケーションのプロセスも,すぐに終了せず,待機状態にしておく。もし,待機しているアプリケーションの起動が要求されたら,待機中のプロセスを利用し,プロセス生成のコストを低減するのである。

 この際,単に多くのプロセスを起動させていては,メモリーそのものが不足する問題が発生する。そこで,メモリーの不足したタイミングで,使われなくなったアプリケーションのプロセスをLowMemoryKillerが終了させる。これにより,メモリーを解放してシステム全体の負荷バランスを保っている。

あなたにお薦め

連載新着

連載目次を見る

今のおすすめ記事

  • 【Apple Pay最新事情】

    NFC開放から占うApple Payの未来

     WWDC17におけるApple Payの最大の話題は、新機能「個人間(P2P)送金」の提供だった。一方でiOSエコノミーの開発者らの間では、iOS 11で初めて「NFC(Near Field Communication)」機能の開放が行われて大きな話題になっている。

ITpro SPECIALPR

What’s New!

経営

アプリケーション/DB/ミドルウエア

クラウド

設計/開発

サーバー/ストレージ

ネットワーク/通信サービス

セキュリティ

もっと見る