1

私は20〜30秒ごとにデータをプッシュし、サーバーから非同期的に更新を受け取るAndroidクライアントを書いています。他の UI コンポーネントも持っているので、メイン スレッドをブロックできません。

以下を使用することの長所と短所 (パフォーマンス、複雑さ、保守性、使いやすい API など) は何ですか?

  1. サーバーにデータをプッシュし、サーバーからイベントを受信するための非同期タスク/スレッドで I/O を同期する
  2. async nio lib ベースの i/o

また、より良いアプローチがあるかどうかを提案します。

4

1 に答える 1

0

Android と UI アプリでは、UI スレッドをブロックすることが想定されていないだけでなく、新しいバージョンの Android では、UI スレッドでネットワークを行うことはまったく許可されていません。

したがって、UI スレッドでの NIO ベースのネットワーキングでさえ、通常は有効なアプローチではありません。

WebSocket については、https ://github.com/tavendo/AutobahnAndroid を参照してください。

これは NIO を行いますが、リーダー/ライターの 2 つのバックグラウンド スレッドで行います。特に、接続の確立を含む、UI スレッドでのネットワーク処理は行いません。

近い将来、バックグラウンド スレッドで昔ながらの IO を実行するように書き直す可能性があります。

a) この状況では NIO は多くを買わない b) NIO を介した TLS の実装は PITA である

免責事項: 私は Autobahn の著者であり、Tavendo で働いています。

于 2012-07-23T15:07:38.240 に答える