我正在使用本机代码,我有一个像素缓冲区(即int * buffer)。我想从缓冲区创建一个具有特定宽度和高度的android.util.Bitmap实例。
目前,我将缓冲区返回给Java并使用android.graphics.Bitmap.createBitmap()创建一个Bitmap实例。但它看起来效率不高,它会在我的手机中抛出OutOfMemoryException(资源更少),但在平板电脑上工作(更多资源)。
我的问题是:如何以本机方式创建Bitmap实例(即在C中创建此类实例并使用JNI接口以Java形式返回)?
答案 0 :(得分:1)
位图有多大?如果它在Java中抛出OOM,任何从C传回它的尝试都可能会这样做 - 它仍然需要消耗Java内存。考虑一种位图格式,每个像素占用的空间更少 - 比如RGB_565或ARGB_4444。