thanks for attention, I am working in project where it capture frames fps
from camera of mobile phone. after each frame is processed to get bitmap
using a native library with opencv SDK and after this bitmap is showed in
an ImageView. this process to consume heap memory and to affect the
performance the app. I add the next tag in the manifest.xml to increase the
heap memory:
<application
android:name="app"
android:largeHeap="true" />
With this, the app work fine when to generate an apk version in debug modem
but when to generate an apk version in release mode, the app is very slow
and doesn't fine, there is issues in the performance.
I worked with a logic using a SurfaceView component to get frames from
camera, I use a SurfaceView because I need to use in background inside of
the app, I want to ask you, how do I solve this problem, counting on your
help.
I am using this logic to get frames:
public synchronized void onPreviewFrame(final byte[] data, final Camera
camera) {
executorService.execute(new Runnable() {
public void run() {
android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_BACKGROUND);
Camera.Parameters parameters = camera.getParameters();
orientation =
OrientationDevice.getOrientationDevice().getOrientation();
orientation = normalize(orientation);
//converter yuv to bitmap
int width = parameters.getPreviewSize().width;
int height = parameters.getPreviewSize().height;
YuvImage yuv = new YuvImage(data,
parameters.getPreviewFormat(), width, height, null);
ByteArrayOutputStream out = new ByteArrayOutputStream();
yuv.compressToJpeg(new Rect(0, 0, width, height), 80, out);
byte[] bytes = out.toByteArray();
Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0,
bytes.length);
// rotate image
if (cameraId == Camera.CameraInfo.CAMERA_FACING_FRONT) {
matrix.setScale(-1, 1);
matrix.postTranslate(bitmap.getWidth(), 0);
matrix.postRotate(rotation + 90);
} else {
matrix.postRotate(rotation + 90);
}
// process bitmap from method jni
....
if (bitmap != null && !bitmap.isRecycled()) {
bitmap.recycle();
bitmap = null;
}
camera.addCallbackBuffer(data);
return;
});
}
};
Thanks for your attention, can you help me, please.
--
You received this message because you are subscribed to the Google Groups
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/android-developers.
To view this discussion on the web visit
https://groups.google.com/d/msgid/android-developers/7453281f-ca9a-4a8b-9f9e-96242604ff5a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.