雑記帳 Androidの覚え書き
FC2ブログ

2009'03.25 (Wed)

Androidの覚え書き

とりあえず調べたことを覚え書き程度に書いておく。

ソースの取得方法、x86用にビルドする方法は以下の記事を参照
http://itpro.nikkeibp.co.jp/article/COLUMN/20090219/325052/

起動は普通のLinuxと同じっぽい。
init.rcから各種プロセスが起動される模様。
eePC用のinitrcはvendor/asus/eee_701以下に入ってる。
やってるのはモジュールのロードやら、シンボリックリンクをはったりいろいろ。

で、AndroidのFrameworkを起動しているらしい。のだが。。。
どこでGUI起動してるんだろう。。。
あとは入力デバイスの設定。タッチパネルの入力をどこかで拾っているはずだが。。。
Type-UXで使ってみたいの。。。
とりあえず起動処理の参考ページなど。。。
http://techon.nikkeibp.co.jp/article/NEWS/20081022/159959/?P=5

途方に暮れてinitのソースを眺めてみる。
普通のinitだと思ったら、Androidオリジナルなんだね。。。

このinit.rcスクリプトはこのinit専用の書式で動作するみたい。
コマンドの実装はsystem/core/init/builtins.cに実装されている。
キー入力のテーブルファイルはこの中のsetkey()でセットされる。デバイスは/dev/tty0にセットされる。

その他でバイスファイルの設定はdevices.cで実行されている??
init.rcのパースはparser.cで実行されているけど、未実装なコマンドが多そうな感じに見える。。。

てな感じで整理して流れを書いてみる。

1.各種システム関連のマウントポイントを作る
  /dev, /proc, /sysなど
2.システムファイルをマウントする
3. /dev/__null__を標準出力に設定
4. logを初期化
5. /init.rcを読み込み、パースして処理を実行する。
6. qemu初期化、カーネルコマンドラインを取得
7. H/Wの固有名称を取得し、専用のinit.rcを実行する。
 ファイル名はinit.hw名.rc1で設定されるファイル。
8. Trigger "early-init"で指定されたイベント(コマンド)を実行
Queにたまったアクションを処理する
9. デバイスを初期化。該当するのは/sys/class, /sys/service, /sys/devices
10.propertyの初期化
11.デバッグ用などでコンソールなどの設定を行う
12.ロゴ表示
13.property service用に値をセット。
14. Trigger "init"で指定されたアクションを実行
15. property serviceスタート
16. signal handler用のソケットを開く
17. Triger "eary-boot", "boot"で指定されたアクションを実行する
18. 残ってる起動アクションをすべて実行する。
19. Property Triggerを有効にする
20. 以降無限ループでイベント/プロセスを監視

てな感じの流れに見える。

これを追っていけば最初の疑問が解決するかしら。。。


テーマ : コンピュータ関連 - ジャンル : コンピュータ

22:50  |  未分類  |  TB(0)  |  CM(0)  |  EDIT  |  ↑Top

Comment

コメントを投稿する


 管理者だけに表示  (非公開コメント投稿可能)

▲TOP

Trackback

この記事のトラックバックURL

→http://kobayuta.blog47.fc2.com/tb.php/181-ba8e2f8b

この記事にトラックバックする(FC2ブログユーザー)

この記事へのトラックバック

▲TOP

 | HOME |