ML套件需要太多内存[Android]

时间:2018-06-05 20:43:14

标签: android performance firebase firebase-mlkit

我尝试使用图片内容[ onDevice Mode ]来描述一些图片,但它需要太多内存,如果我在同一个应用中尝试了很多图片,那么会崩溃< / strong>即可。

我不知道为什么会发生这种情况,但它总是抛出 OutOfMemoryError 异常。 我的图像大小约为1-2 MB。

当我搜索异常时,我启用了android:largeHeap="true",但在2张图片尝试后仍然崩溃。

我还尝试使用System.gc();从vars中释放内存,但仍占用太多内存。

这是我在onDevice上使用的代码:

in onCreate();
detector = FirebaseVision.getInstance() .getVisionLabelDetector();
当点击按钮

            detector.detectInImage(image)
                    .addOnSuccessListener(
                            new OnSuccessListener<List<FirebaseVisionLabel>>() {
                                @RequiresApi(api = Build.VERSION_CODES.M)
                                @Override
                                public void onSuccess(List<FirebaseVisionLabel> labels) {
                                    Toast.makeText(MainActivity.this, "Done", Toast.LENGTH_SHORT).show();
                                    setResult(labels, "onDevice Result : ", before);

                                    System.gc();
                                }
                            })
                    .addOnFailureListener(
                            new OnFailureListener() {
                                @Override
                                public void onFailure(@NonNull Exception e) {
                                    Toast.makeText(MainActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
                                    System.out.println("Error: " + e.getMessage());
                                }
                            });

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

我的问题是图像质量太高,没有压缩图像

必须先对图像进行压缩,然后再对其进行初始化处理