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