5

私はAndroid用のネットワークベースのUIアプリを開発中です。これは次のような機能を実行します

  1. n / wベースの組み込みデバイスで実行されているTCPサーバーと通信する必要があります(一度に> 100)。
  2. 更新された情報を取得するために定期的にこれらのデバイスをポーリングする
  3. それらのデバイスとの間で情報を送受信する
  4. 上記のすべての情報は、アプリケーションのUIによって制御および管理されます

上記の状況を考慮すると、アプリはおそらく複数の接続のために複数のスレッドを生成し、それらを管理する必要があります。したがって、私のクエリは

  1. Boost.Asioライブラリを使用してネットワークモジュールを開発するのは良いアプローチですか?または、接続用に最大100個のソケットスレッドを開いても問題ありませんか?

  2. Boost.Asioを使用すると、ネットワークモジュールがNDKを使用して個別に開発され、JNIにアクセスできるようになり、応答が遅くなる可能性がありますか?

あるいは、他のより良いオプションがありますか?ご入力をお待ちしております!

よろしくお願いします。

4

1 に答える 1

2

AndroidでサポートされているNewI /Oをご覧になることをお勧めします。これを使用すると、単一のスレッドで複数の接続を処理できます。APIは、原則としてPosixselect()呼び出しに似ています。

2番目のオプション(C / C ++で実装されたネットワークコード)を選択する場合は、JNIのパフォーマンスについて心配する必要はないと思います。Android APIの重要な部分は、とにかくC /C++上にある薄いJNIラッパーです。

于 2012-12-14T08:28:57.310 に答える