为了一个学校项目,我正在创建一个涉及流媒体图像数据的android应用程序。我已经提前了一个半月完成了所有的要求,正在寻找改进我的应用程序的方法。我听说过一件事,就是使用android NDK来优化大量使用的代码。
我的应用程序所做的是模拟通过套接字传入的实时视频。我同时从UDP包中读取像素数据,并将其写入一个int数组,然后使用该数组更新屏幕上的图像。
我正在试着决定提高我的帧率(现在大约是1fps,这对我的项目来说已经足够了)是不是我剩余时间应该遵循的正确路径,或者我是否应该专注于添加新功能。
无论如何,下面是我正在查看的代码:
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次,所以它绝对是我的应用程序中使用最多的代码。对于这是否值得优化,有什么反馈吗?
发布于 2013-10-17 16:32:37
为什么不试一试呢?有很多使用NDK创建函数的指南,你似乎很好地掌握了这样做的理由,并且理解了其中的含义,所以翻译这个小函数应该很容易。
比较这两种方法,你无疑会学到一些总是很好的东西,如果你需要写一份报告来配合这个项目,它会给你一些东西来写。
https://stackoverflow.com/questions/19421563
复制相似问题