階層構造
Androidとはプラットフォーム全体を指す名であり、下はOSから上はアプリケーションまで、様々なものを含む。
Androidの階層構造(上位→下位)は次の通り。
アプリケーション
フレームワーク
Java層
↑これより上はJava↓これより下はC/C++/アセンブリ言語
JNI層
ライブラリ・ランタイム
SQLiteなど、さまざまなライブラリと、Dalvik仮想マシンlibcはこの層にあるが、Bionic libcという独自の実装で、Linuxで一般的なGNU libcとは異なる。
HAL(Hardware Abstraction Layer)
Linuxのデバイスドライバーなどを含め、ハードウェアを抽象化する層Linuxカーネル
ドライバー、デーモンなどのシステム内部ハードウェア
JNI層以下はネイティブコード(非仮想コード)で記載されており、Linuxと同様の構成である。マルチプロセッサー構成では、REX-OSなど他のプロセッサー用コードが含まれる。
ディレクトリ
AOSP/abi
AOSP/bionic – Bionic
AOSP/bootable – ブートローダリファレンスコード
AOSP/build – ビルドツール
AOSP/cts – テストスイート
AOSP/dalvik? – Dalvik VM
AOSP/development – 開発ツール、SDK、サンプルコード
AOSP/device
AOSP/docs?
AOSP/external
AOSP/frameworks – Android/Application Framework
AOSP/hardware – AOSP/hardware/ファイル一覧 – ハードウェア制御ライブラリ(センサ,GPS)、HAL
AOSP/libcore? – Java関連の主要なライブラリ
AOSP/ndk? – Android NDK
AOSP/packages – 標準インストールアプリのソース、壁紙とか
AOSP/prebuilt – ビルドに必要な各種バイナリファイル
AOSP/sdk? – Android SDK
AOSP/system – Androidに必要な実行ファイル、サービス、ライブラリなどのソース。adb、fastboot、init、無線LANのドライバなど
AOSP/system/ファイル一覧
コメント