我正在開發一個使用OpenCV和Tesseract庫的android應用程序。我只使用這些庫的某些功能。但隨着圖書館,應用程序的大小從4增加到50mb。修剪OpenCV庫
我明顯需要修剪庫。我將如何做到這一點?
編輯:爲了保持用戶友好性我不想使用OpenCVManager。我不想強制用戶安裝其他應用程序。
EDIT2:我需要爲tesseract庫做同樣的事情。我猜這是以同樣的方式工作?
我正在開發一個使用OpenCV和Tesseract庫的android應用程序。我只使用這些庫的某些功能。但隨着圖書館,應用程序的大小從4增加到50mb。修剪OpenCV庫
我明顯需要修剪庫。我將如何做到這一點?
編輯:爲了保持用戶友好性我不想使用OpenCVManager。我不想強制用戶安裝其他應用程序。
EDIT2:我需要爲tesseract庫做同樣的事情。我猜這是以同樣的方式工作?
我絕對不確定我要建議什麼,但我最近在GCC文檔中找到了-gc-sections
選項。在鏈接時使用,它應該從最終的可執行文件/庫中去除所有未使用的代碼段。這可以避免不得不手動修剪OpenCV,鑑於這個庫的複雜性,這必須是一個漫長而不愉快的任務。
要使用它,您顯然必須使用-ffunction-sections -fdata-sections -Os
編譯每個依賴項,然後將整個代碼與-Wl,--gc-sections
鏈接。它可能值得一試!
我在this page上找到了一些細節。
不要猶豫,糾正我,如果我錯了!
如果你不想使用OpenCVManager可以follow these instructions.
的問題是,我不知道它是否仍然適用於上述版本2.4.3,它不會降低您的apk的大小。
如果你想縮小這個尺寸,你必須爲自己編譯opencv4android並選擇你需要的模塊。
感謝您的回答。我的確在尋找這個方向的答案。我會試試看看它是否能解決我的問題。 –
你可以向我解釋如何在eclipse中使用它嗎? –
我不知道如何直接在Eclipse中執行此操作。我想你必須用這些標記編譯你自己的OpenCV版本,我從來沒有直接在Eclipse中做過這些標記。 – mbrenon