修剪OpenCV库

时间:2013-01-06 19:05:46

标签: android opencv tesseract

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

我显然需要减少库。我该怎么做?

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

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

2 个答案:

答案 0 :(得分:4)

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

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

我在this page找到了一些细节。

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

答案 1 :(得分:-1)

如果您不想使用OpenCVManager,可以follow these instructions.

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

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