【发布时间】:2011-02-22 18:31:23
【问题描述】:
我在 android 中流式传输视频,我在本机代码中解码帧,然后将像素复制到位图,然后使用 canvas.unlockandpost 在 Java 中显示位图,并为所有位图使用 while 循环。
一切都很好,但是位图的流式传输非常慢并导致崩溃。我只在 logcat 上看到一条消息说“内存不足,没有更多的后台进程”。
我在 eclipse 的分配表上看到,我创建的位图没有从内存中删除,即使我每次都覆盖像素。有什么办法可以清理它保留的内存。
我的代码如下。
C 代码:
AndroidBitmapInfo info;
void* pixels;
int ret;
if ((ret =AndroidBitmap_lockPixels(env, bitmap, &pixels)) < 0) {
}
memcpy(pixels, pictureRGB, 480*320);
AndroidBitmap_unlockPixels(env, bitmap);
Java 代码
Bitmap mBitmap = Bitmap.createBitmap(480, 320, Bitmap.Config.RGB_565);
renderbitmap(mBitmap, 0);
canvas.drawBitmap(mBitmap, 0, 0, null);
【问题讨论】:
标签: android crash bitmap android-emulator android-ndk