我有一个本机方法,它调用 Java 函数来创建位图,然后将位图数据作为 int 数组返回。
该方法效率不高,因为我需要创建一个 Bitmap,然后是一个 IntBuffer 来复制位图数据,然后 native 方法创建一个新的 int 数组来存储数据。然后回收 IntBuffer(可以重用 Bitmap 对象),当我创建超过 10 个位图时,垃圾收集器开始减慢应用程序的速度。
我可以在 JNI 中创建 int 数组,将其包装成 jintarray 并直接在 Java 中使用它吗?
我有一个本机方法,它调用 Java 函数来创建位图,然后将位图数据作为 int 数组返回。
该方法效率不高,因为我需要创建一个 Bitmap,然后是一个 IntBuffer 来复制位图数据,然后 native 方法创建一个新的 int 数组来存储数据。然后回收 IntBuffer(可以重用 Bitmap 对象),当我创建超过 10 个位图时,垃圾收集器开始减慢应用程序的速度。
我可以在 JNI 中创建 int 数组,将其包装成 jintarray 并直接在 Java 中使用它吗?