タグ

Binderとipcに関するi_matsuiのブックマーク (3)

  • Android NdkBinderについて

    Android NdkBinderについて ※稿は2019年6月に書いて放置していたものを今になって発掘して公開しているので、もしかしたら古い記述がまだ残っているかもしれない(一応ひと通り読み直して確認したつもり)。何かおかしそうなところがあったらコメント等で教えてください。 NdkBinderとは、Androidのサービスでクライアントと接続するためのBinderをAndroid NDKを使ってCで実装するためのAPIだ。今回はこのAPIを紹介していこうと思う。 Android API Level 29で初めて追加されたライブラリで、Android NDK r19には存在しない。r20で追加されたようだ。libndk_binder.soにリンクするにはcompileSdkVersion 29にする必要がある(ndk_binderの利用が必須ならminSdkVersion 29である)。

    Android NdkBinderについて
  • プロセス間での大量データ交換について調べてみた | 車輪の再発見みたいな?

    とある事情で、Androidのプロセス間を数メガ〜200メガバイト/秒ぐらいでデータをやりとりする方法を調べてみた。 プロセス間通信 Androidでプロセス間通信といえば、 Intent 一番簡単だけど、単発/低頻度で少量のデータのやり取りしか無理 Messenger(+Handler) 単発/低頻度で少量のデータのやり取りしか無理 Binderを使う(Javaからならサービス経由のやりとりがBinderを使っているみたいです) 数百〜数千バイト程度を高速にやりとり可能らしい・・・ でも実際に試すと、数十〜数百キロバイトの時点で遅延が大きすぎてだめでした。高頻度なら実用的にはせいぜい百数十バイト程度までにしといたほうが良さそうでした。 共有メモリ(Ashmem=Anonymous Shared Memory) これは別途後で。 Unixドメインソケット 共有メモリが使えたのと、最終的にも

    プロセス間での大量データ交換について調べてみた | 車輪の再発見みたいな?
  • KMC Staff Blog:AndroidのBinderによるプロセス間のメソッド呼び出し(メモ)

    2011年03月17日 AndroidのBinderによるプロセス間のメソッド呼び出し(メモ) Androidのシステムでは同時にたくさんのプロセスでJava言語で書かれたプログラムがDalvikVMによって動いています。intentを発行して別のプロセスで処理を実行できることがAndroidでのプログラミングの大きな強みです。 このようなプロセスをまたがったメソッド呼び出しは下位レベルではBinderという技術が使われているのですが、私はいままでそれがぼんやりとしか理解できていませんでした。 ソースコードを無理やり追いかけたら、わかりかけてきたのでメモを残します。 Androidのアプリケーションプログラムから別のアプリケーションを起動するにはIntentを発行すればよいのですが、それには android.app.Activity#startActivity メソッドを使用します。 その

  • 1