Build 1 vài module trong Opencv cho java android

Xin chào
Mình đang làm 1 app trên java android (sdk) có sử dụng opencv. Tuy nhiên add thư viện opencv cả cục như hướng dẫn trên mạng thì nặng mà trong khi dùng không hết. Nên mình muốn build 1 vài module liên quan cần dùng để app được nhẹ hơn. Nhưng tìm hướng dẫn toàn thấy build cho win, linux chứ k thấy build cho android. Bạn nào từng build như vậy chưa
Xin cảm ơn

Update:
Mình đã tìm được cách build nhưng bị lỗi, không rành cmake lắm :roll_eyes:

Hi HelloWorld.
Mình thì chưa build Opencv cho android bào giời. Tuy nhiên về cơ bản khi bạn muốn dùng các thư viện C/C++ trên android thì đều có chung nguyên lý build ra file thư viện .so cho arm (Hầu hết các thiết bị android đều chạy chíp arm) sau đó bạn viết một lớp gọi các hàm của C/C++ trên java bằng JNI.

1 Like

Biết là vậy nhưng hiện tại mình gặp vấn đề

  1. Dùng cả thư viện dạng native qua JNI, thì sẽ nặng ứng dụng. Mới cài opencv xong, mình release app ra thì đã nặng rồi, chưa làm giao diện hay code gì cả
  2. Dùng opencv manage thì phải cài thêm 1 ứng dụng khác nữa
    Nên mình muốn build riêng 1 vài module cần dùng và đính kèm native vào qua JNI, như vậy sẽ nhẹ hơn. Mình cũng chỉ dùng có vài module như Core, imgproc, ml, codec…

Qua được bước cài đặt mới xem xét tốc độ ntn rồi tính dùng sdk hay ndk

Hi HelloWorld.

  1. Cái tốc độ không thực sự liên quan đến SDK hay NDK.
    Theo quy trình thì nó như này :
    C/C++ -> build (NDK/gcc/g++ cái gì cũng được) -> .so + interface JNI (NDK) -> gọi lại trên Java.
  2. Dùng cả thư viện dạng native qua JNI, thì sẽ nặng ứng dụng. Cái này có thể là do bạn đang build và dùng toàn bộ thư viện. bạn có thể tìm trong đó các file .so cần và tách dần nó ra dùng riêng từng file một.

P/S Bạn đang có dự án gì mà cần dùng đến OpenCV vậy ?

1 Like

Mình đang cần lắm hướng dẫn này :3

Mình làm mấy cái pet project ấy mà

Mình làm theo cách trên. Add thư viện xong, chưa làm giao diện hay code gì, build ra app là 76mb dùng bản opencv 3.4.0
Còn nữa bản 3.4.0 chỉ hỗ trợ cho api > 21 (android 5.0) mà mình không hạ được ver của opencv xuống vì ver dưới 3.4.0 pca bị lỗi T.T
Bạn có cách nào giảm dung lượng của app không

Help me :smile:
Help me :smile:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?