2016-05-08 20 views
2

いくつかのトランザクションタイプでネイティブバインダーサービスを作成しました。Javaから呼び出されたAndroid Binderネイティブサービス

現時点では、私はクライアント用のネイティブプロキシ(Bp)を持っていますが、Javaクライアントに私のサービスを使用する可能性を与えたいと思います。

基本的に、BpはJavaであるべきだと思います。私はJNIに関するいくつかのものを見つけましたが、不完全です。私はBNの中でJNIを使​​う必要がありますか?

また、コールバックメカニズム(サービスから特定のクライアントメソッドへの散発的なイベント)が利用可能である必要があります。私はネイティブでそれをやった。

+0

私はここからの例を使って簡単な呼び出しを実行できました。https://github.com/cloudchou/NativeBinderJavaClientDemo/blob/master/FClient/src/com/cloud/test/CloudManagerProxy.javaネイティブからコールバックへのコールバックJNIと複雑なデータ構造の移転が問題として残っています。 – Cumatru

答えて

0

はここCumatruで述べたように、これまでの私の最初の答え...

私もhttps://github.com/cloudchou/NativeBinderJavaClientDemoを使用行きます。

私はプロセス全体を完全には理解していませんが、少なくとも機能しており、かなり単純な例で前進する方法です。私は非常に基本的なアンドロイドのレベルにあるので、私と一緒に裸にして、あなたが好きな方法で答えを改善するのを助けてください。

3つの部分があるようです。 1. C++でネイティブに実行されるサーバープロセス。 2.アンドロイドアプリケーションクライアント。 3. .jarファイルに組み込まれる単純なJavaクライアント。

少なくとも単純なJavaクライアントとC++サーバーでは、コードの変更は必要ないと思われます。

  • サーバーアプリケーションをビルドしてターゲットにプッシュします。 adbシェルで実行します。
  • 追加が行われます
  • fclientスクリプトを使用したシステム/フレームワーク/であなたのターゲットにfclient呼ばビルドおよびJavaクライアント(の.jarファイル)を押し、/
  • 実行されるJavaクライアントクライアントから送信された2つの整数に基づいて、サーバに返答します。

うまくいけばうまくいきます。