Androidを少し調査中。
コマンドラインからエミュレータ起動後、別のコマンドラインから
adb shell
とやれば、エミュレータのシェルにリモート接続できる。
とりあえず、エミュレータが起動した時の内部プロセス一覧を見てみた。思ったより少ないな...。エミュレータだからかなぁ。
ハードウェアを叩くような機能も、アプリのプロセスからNativeライブラリ経由ってことだからか?Nativeライブラリからプロセスを生成したりとかそういうことは無いのかな?
まぁ、JNIとどう整合性持たせるのかよく分かってないけど、何かハードウェアからデータを受け取るところと、アプリからJNI経由で呼ばれるread()みたいなものとレイヤを分けたりはしないんだろうか。
androidもそうだし、Linuxでのそういうハードを叩くプログラミングの知識が無いからなぁ。例えばビデオキャプチャーカードが刺さっていたとして、キャプチャデータを認識されたデバイスファイル経由でどんどん読んでいくようなイメージでいいんだろうか。
# ps ps USER PID PPID VSIZE RSS WCHAN PC NAME root 1 0 280 188 c008de04 0000c74c S /init root 2 0 0 0 c004b334 00000000 S kthreadd root 3 2 0 0 c003cf68 00000000 S ksoftirqd/0 root 4 2 0 0 c00486b8 00000000 S events/0 root 5 2 0 0 c00486b8 00000000 S khelper root 10 2 0 0 c00486b8 00000000 S suspend root 42 2 0 0 c00486b8 00000000 S kblockd/0 root 45 2 0 0 c00486b8 00000000 S cqueue root 47 2 0 0 c016f13c 00000000 S kseriod root 51 2 0 0 c00486b8 00000000 S kmmcd root 95 2 0 0 c0065c7c 00000000 S pdflush root 96 2 0 0 c0065c7c 00000000 S pdflush root 97 2 0 0 c006990c 00000000 S kswapd0 root 99 2 0 0 c00486b8 00000000 S aio/0 root 267 2 0 0 c016c884 00000000 S mtdblockd root 302 2 0 0 c00486b8 00000000 S rpciod/0 root 536 1 740 312 c0141bb0 afe0c1bc S /system/bin/sh system 537 1 808 264 c01654b4 afe0c45c S /system/bin/servicemanager root 538 1 836 364 c008e3f4 afe0c584 S /system/bin/vold root 539 1 668 264 c0192c20 afe0cdec S /system/bin/debuggerd radio 540 1 5392 684 ffffffff afe0cacc S /system/bin/rild root 541 1 72416 20856 c008e3f4 afe0c584 S zygote media 542 1 17720 3528 ffffffff afe0c45c S /system/bin/mediaserver root 543 1 800 300 c01f3b04 afe0c1bc S /system/bin/installd root 546 1 840 356 c00ae7b0 afe0d1dc S /system/bin/qemud root 548 1 3336 156 ffffffff 0000e8f4 R /sbin/adbd root 567 548 740 324 c003aa1c afe0d08c S /system/bin/sh root 568 567 680 332 c016674c afe0c1bc S logcat system 569 541 199668 25440 ffffffff afe0c45c S system_server radio 609 541 105624 17316 ffffffff afe0d3e4 S com.android.phone app_3 612 541 100124 18432 ffffffff afe0d3e4 S android.process.acore app_0 636 541 98212 14144 ffffffff afe0d3e4 S com.google.android.apps.maps app_5 640 541 95372 13572 ffffffff afe0d3e4 S android.process.media app_1 659 541 94276 12708 ffffffff afe0d3e4 S com.android.alarmclock app_16 669 541 95520 13236 ffffffff afe0d3e4 S com.android.mms app_3 681 541 97344 13000 ffffffff afe0d3e4 S com.android.inputmethod.latin app_17 699 541 97004 14432 ffffffff afe0d3e4 S com.android.development app_15 707 541 104260 14808 ffffffff afe0d3e4 S com.android.term app_15 714 707 740 328 c0141bb0 afe0c1bc S /system/bin/sh root 719 548 740 328 c003aa1c afe0d08c S /system/bin/sh root 721 719 884 336 00000000 afe0c1bc R ps #
コメント