0

对于一个学校项目,我正在创建一个涉及流图像数据的 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 次,所以它绝对是我的应用程序中最常用的一段代码。关于这是否值得优化的任何反馈?

4

1 回答 1

0

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

比较这两种方法,你无疑会学到一些总是好的东西,如果你需要写一份报告来配合项目,它会给你一些东西可写。

于 2013-10-17T08:32:36.577 回答