AI 요약
chineseocr_lite의 안드로이드 Java/JNI 레이어를 제거하고 순수 C++로 aarch64 네이티브 실행파일로 포팅한 과정을 상세히 기록했다. main() 함수로 진입점을 변경하고, 사용자 정의 .raw 이미지 포맷을 도입했으며, CMake로 4가지 ABI(arm64-v8a, armeabi-v7a, x86, x86_64)를 지원한다. 성능 최적화를 통해 Debug 모드 14.6초에서 Release 모드 380ms로 38배 이상 속도를 개선했으며, ncnn과 OpenCV-mobile을 활용한 경량화가 핵심이다.
핵심 포인트
- JNI 제거: JNI_OnLoad → main(), bitmapToMat → readImg()로 대체
- 사용자 정의 .raw 포맷: 4바이트 너비 + 4바이트 높이 + 8바이트 예약 + RGBA 픽셀 데이터
- 성능 최적화: Debug 14.6초 → Release 380ms (O2 최적화, -DNDEBUG)
- 4가지 ABI 지원: arm64-v8a(기본), armeabi-v7a, x86, x86_64
향후 전망
- 모바일 기기에서 경량 OCR 엔진의 네이티브 실행 수요 증가
- Rust 등 다른 언어로의 포팅 사례 확장 가능성
출처:juejin
