2

我正在开发一个使用 OpenCV 和 Tesseract 库的 android 应用程序。我只使用这些库的某些功能。但是随着包含的库,应用程序的大小从 4 增长到 50mb。

我显然需要精简库。我该怎么做?

编辑:为了保持用户友好性,我不想使用 OpenCVManager。我不想强迫用户安装另一个应用程序。

EDIT2:我需要为 tesseract 库做同样的事情。我想这以同样的方式工作?

4

2 回答 2

4

我完全不确定我要建议什么,但我最近-gc-sections在 GCC 文档中找到了这些选项。在链接时使用,它应该从最终的可执行文件/库中删除所有未使用的代码部分。这可以避免必须手动修剪 OpenCV,鉴于该库的复杂性,这必须是一项漫长且相当不愉快的任务。

要使用它,您显然必须使用 编译每个依赖项-ffunction-sections -fdata-sections -Os,然后将整个代码与-Wl,--gc-sections. 它可能值得一试!

我在这个页面上找到了一些细节。

如果我错了,请不要犹豫纠正我!

于 2013-01-07T13:27:07.637 回答
-1

如果您不想使用 OpenCVManager,您可以按照这些说明进行操作。

问题是,我不知道它是否仍然适用于 2.4.3 以上的版本,并且不会减少您的 apk 的大小。

如果你想减小这个大小,你必须自己编译 opencv4android 并选择你需要的模块。

于 2013-02-14T14:10:02.487 回答