0

一部の C# コードを Java/Android コードに変換しました。基本的に、sdcard 上のファイル (a.mp4.enc など) を復号​​化し、プライベート データ フォルダー (/data/app/a.mp4) に書き戻します。デスクトップシステムでも同じことが起こり、コードはそうです

byte[] buffer = new byte[1024*10];
int len;
while ((len = cryptostream.Read(buffer, 0, buffer.Length)) > 0)
{
    outputStream.Write(buffer, 0, len);
    buffer = new byte[1024*10];
}

Androidエミュレーターでは、次を実行します。

byte[] buffer = new byte[1024 * 10];
int len = cryptoStream.read(buffer, 0, buffer.length);
while (len > 0) {
    out.write(buffer, 0, len);
    len = cryptoStream.read(buffer, 0, buffer.length);
}

しかし、エミュレーターが 20 分かかるのに対し、C# コードは 6 MB のファイル変換に 0.1 秒かかります! 私のコードに何か問題がありますか、それともエミュレーターと Android の方法が長すぎるためですか? 私が別のことをする必要があることはありますか?SD カードからではなく、アプリ データ フォルダー自体から読み取ろうとしましたが、パフォーマンスに大きな改善はありません。

4

0 に答える 0