いやまぁ、今週末のネタ作りのために色々考えなくてはならないわけで・・・・。考えたネタをさらにkeynoteにまとめなければなので、時間も、ネタも足りない気がしてならないですが。
しかも、話す内容まで考えないと・・・うわぁぁん。てな状況です。はい、まだ資料になってません。
さて、今回のおはなしの肝は、最初のAndroidネタの日記の絵が3枚でほぼ全てなんですが、それだけだと持ち時間30分程度なんて時間はつぶせません。いや、話すのは最後なので、もしかしたら時間が押していて、軽く終わるという可能性もあるのですけど。
# 誰ですか?みんなあまり話すことがなくて、時間が大きく余ってるかもよとかいう人は!
ともかく、とりあえずPF部的アーキテクチャ図について軽くお話した後、ソースの構成まで立ち入って軽く見て、最後に、ソースを追いかける時に便利な、envsetup.shのお話をして、後は、アーキテクチャ図にいちゃもんをつけていただいて、議論がいい感じになったあたりで、ちゃんちゃんと行きたいなと思ってまして。そういう意味では、ちょっと日記が前後してしまいますが、まぁ、今日はソースの構成を軽くおさらいです。
というわけで、Android 2.2のソースコードでトップディレクトリを見てみましょう。
ソースコードは大きく分けると、Androidのシステムを構成するソース・ファイル群と開発環境を構成するファイル群とに分けられます。
* Androidのコード群
種別 | ディレクトリ | 概要 |
---|---|---|
Applications | packages | アプリケーション |
Application Framework | framework | Android Framework |
Android Runtime | dalvik | Dalvik VM |
Library | external | サードパーティ製ライブラリ(正確には、qemuのようなSDK用のプログラムや、pingのようなインストールするコマンドも含まれる) |
HAL | hardware | ハードウェア抽象化レイヤのコード |
System | system | bluetooth tools, システムファイル, wlan等システムに必要なファイル類 |
Bionic | bionic | libcおよびローダ等、基本となるライブラリ・プログラムのコード |
* 開発環境コード
種別 | ディレクトリ | 概要 |
---|---|---|
Build関連 | build | ビルド用のMakefile,シェルスクリプト等 |
prebuilt | バイナリ提供のツール類(クロスコンパイラ等) | |
device | デバイス固有のMakeファイル、スクリプト関連 | |
SDK関連 | sdk | Software Development Kit code |
NDK関連 | ndk | Native Development Kit code |
ツール関連 | development | Platform engineering tools |
テスト関連 | cts | Android CTS (Compatibility Test Suite) |
Bootloader関連 | bootable | ブートローダリファレンスコード |
ポーティングを意識してコードを読んでいくとすると、目を通しておくべき箇所を敢えて選ぶとすると。
- hardware
ハードウェアを有効に利用できるようにするのに実装が必要 - system
デバイスファイルを作っているinit等、いくつかのプログラムに手を入れる必要があるかも。init.rcのオリジナルも置いてあるので個々は意外とよく探索することになります。 - device
デバイスに合わせたビルド環境の構築のために必要 - framework
トラブルが起きた時に、logcatの内容からコードを追いかけて行くのによく読む場所
といった所でしょうか。もう少し詳しく踏み込みたい所ですが、まぁ、アーキテクチャの概要という趣旨から外れるので、PF部での発表ではここまででしょうかねぇ。というわけで、今日、明日は、資料作りに専念するため、更新はなしかと思いますので、あしからず。
0 件のコメント:
コメントを投稿