1

サーバー通信用に flex 4 を使用してモバイルアプリケーションを開発しています。Java Web サービスを使用しています。実際には、ファイルをサーバーからモバイル、モバイルからサーバーに転送する必要があります。この操作を行うと、アプリケーションが非常に遅くなりました。そのため、ファイルを圧縮して送信することにしました。しかし、GZIPOutputStreamまたはを使用して圧縮する場合ZIPOutputStream、ファイルを .zip として圧縮するだけです。ファイルサイズをあまり縮小できませんでした。しかし、ファイルサイズをできるだけ小さくする必要があります。ファイル形式は、画像、ビデオ、またはオーディオです。Javaを使用してこの操作を行うためのアイデアを誰かが提案してください。

4

2 に答える 2

2

ほとんどのオーディオ、ビデオ、および画像形式はすでに圧縮されているため、転送前にコンテンツを再度圧縮してもあまり役に立ちません。また、圧縮はCPUを集中的に使用する可能性があるため、問題が増える可能性があります。

速度が低下するのはクライアントですか、それともサーバーですか。実行速度の遅いアプリケーションでCPUプロファイラーを実行して、何が起こっているのかを特定することをお勧めします。

http://netbeans.org/kb/docs/java/profiler-intro.htmlをご覧ください。

于 2012-08-13T07:49:34.860 に答える
2

あなたは私たちにいくつかのアイデアを提案するように頼みました。良い、。Webサービスを介してデータを転送するときは、データをバイト配列として変換する必要があると思います。私は、あなたはバイト全体を受け取り、ファイルとして変換してから、エンコード/デコードすると思います。そのため、一部の画像またはビデオファイルをエンコードしようとすると、ファイルサイズを小さくすることはできません。したがって、ここでの私の考えは、Base64EncodingとBase64Decodingを使用して、ポケットごとにデータをエンコードできる方がよいということです。つまり、ファイルをバイトとして変換し、バイトをエンコードして送信し、バイトを受信して​​デコードしてからファイルとして変換します。これはあなたの助けになるはずだと思います。

于 2012-08-27T02:52:21.850 に答える