2011年03月

2011年03月31日

今回はカーネル側のbinderのドライバ(/dev/binder)の話。

プロセス間通信としてはJavaのRMIやGTKやBluetoothのスタックで使用されているD-Busがありますが、これらは通信の下位層としてはsocketを使用しています。このため特別なカーネルのドライバを必要としません。Androidのプロセス間通信は/dev/binderという独自のドライバを使います。それはなぜなのでしょうか?

続きを読む

2011年03月29日

今回はservice managerのメモ。

initはZygoteを起動するより先に /system/bin/servicemanagerを起動します。

init.rcを見るとFroyoまでは"critical"に指定されている唯一のサービスでした。

(Gingerbreadではinitから分化した/sbin/ueventd も"critical"になっていました。)

続きを読む

2011年03月24日

今回はBinder Threadについて。

Eclipseでアプリケーションのデバッグをするとアプリケーションのプロセスの中に、"Binder Thread #1", "Binder Thread #2" などの名前のスレッドがあるのがわかります。これらはいったい何をしているのでしょうか。

続きを読む

2011年03月22日

今回はAIDLとは何かを調べてみました。前回のことがわかっているとAIDLの理解は簡単です。

続きを読む

2011年03月17日

Androidのシステムでは同時にたくさんのプロセスでJava言語で書かれたプログラムがDalvikVMによって動いています。intentを発行して別のプロセスで処理を実行できることがAndroidでのプログラミングの大きな強みです。

このようなプロセスをまたがったメソッド呼び出しは下位レベルではBinderという技術が使われているのですが、私はいままでそれがぼんやりとしか理解できていませんでした。

ソースコードを無理やり追いかけたら、わかりかけてきたのでメモを残します。

続きを読む

2011年03月10日

前回の続きです。

知っていたからといってどうということはないのですが、Javaの内部クラスの理解が深まれば幸いです。

続きを読む

2011年03月08日

先日の記事のスタックトレースをよく見ると、android.app.ActivityThread.access$2300 という不思議な名前のメソッドが呼ばれています。ソースコードをさがしてもこのメソッドは見当たりません。実はこれはjavacが自動生成したメソッドなのです。

続きを読む

2011年03月03日

以前調べたことをもう一度掘り起こしてみました。

続きを読む

記事検索
最新コメント
「最新トラックバック」は提供を終了しました。
アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

QRコード
QRコード