android NDK:优化数组副本值得吗?

时间:2013-10-17 08:22:21

标签: android android-ndk

对于学校项目,我正在创建一个涉及流图像数据的Android应用程序。我提前一个半月完成了所有要求,并且正在寻找改进我的应用程序的方法。我听说过的一件事是使用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;           
    }
}   

我每秒调用此函数约2000次,所以它绝对是我应用中最常用的代码片段。关于这是否值得优化的任何反馈意见?

1 个答案:

答案 0 :(得分:0)

为什么不尝试一下呢?有许多使用NDK创建函数的指南,您似乎很好地掌握了这样做的理由并理解其含义,因此应该很容易翻译这个小函数。

比较这两种方法,毫无疑问你会学到一些总是很好的东西,如果你需要编写一份报告来与项目一起使用,它会给你一些东西。