0

学校のプロジェクトでは、画像データのストリーミングを含む Android アプリを作成しています。約 1 か月半早くすべての要件を完了し、アプリを改善する方法を探しています。私が聞いたことの 1 つは、Android NDK を使用して、使用頻度の高いコードを最適化することです。

私のアプリが行うことは、ソケットを介して着信するライブ ビデオをシミュレートすることです。UDP パケットからピクセル データを同時に読み取り、それを int 配列に書き込みます。これを使用して、画面上の画像を更新します。

フレーム レート (現在は約 1 fps であり、プロジェクトには十分です) を上げようとすることが、残りの時間のためにたどる正しい道なのか、それとも代わりに新しい機能の追加に集中すべきなのかを判断しようとしています。

とにかく、ここに私が見ているコードがあります:

public void updateBitmap(byte[] buf, int thisPacketLength, int standardOffset, int thisPacketOffset) {      
    int pixelCoord = thisPacketOffset / 3 - 1;
    for (int bufCoord = standardOffset; bufCoord < thisPacketLength; bufCoord += 3) {
        pixelCoord++;
        pixelData[pixelCoord] = 0xFF << 24 | (buf[bufCoord + 2] << 16) & 0xFFFFFF | (buf[bufCoord + 1] << 8) & 0xFFFF | buf[bufCoord] & 0xFF;           
    }
}   

私はこの関数を 1 秒あたり約 2000 回呼び出しているため、間違いなく私のアプリで最も使用されているコードです。これを最適化する価値があるかどうかについてのフィードバックはありますか?

4

1 に答える 1