Trim down OpenCV library



我正在开发一个使用OpenCV和Tesseract库的android应用程序。我只使用这些库的某些函数。但随着库的加入,应用程序的大小从4mb增加到50mb。

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

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

EDIT2:我需要为tesseract库做同样的事情。我想这也是同样的道理吧?

我绝对不确定我要建议什么,但我最近在GCC文档中找到了-gc-sections选项。在链接时使用,它应该从最终的可执行文件/库中剥离所有未使用的代码段。这可以避免手动修改OpenCV,考虑到这个库的复杂性,手动修改OpenCV肯定是一个漫长而令人不快的任务。

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

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

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

如果你不想使用OpenCVManager,你可以遵循这些说明。

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

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

相关内容

  • 没有找到相关文章

最新更新