TGViewer
Kotlin Adept Notes Kotlin Adept Notes @kotlin_adept · 2.42K subscribers
Post #253 2.72K
Сколько стоит отказ от OpenCV

Весь препроцессинг в сканере, о котором я рассказывал в прошлых постах, держится на OpenCV — библиотеке компьютерного зрения, написанной на C++.

Нам из неё нужно меньше десятка функций: гомография, ресайз, гауссово размытие, CLAHE, Otsu и другое. Платим за это мы, конечно, размером: библиотека добавляет к APK около 200 МБ 😱

Здесь сразу оговорюсь, что это цифра для универсального APK со всеми ABI внутри, и очевидно, что App Bundle столько не весит: на устройство прилетает один ABI из четырёх, то есть пятьдесят мегабайт. Вот только это всё ещё много, так что AAB проблему полноценно не решает.

Идея кажется очевидной: функций немного, может быть, переписать всё это на Kotlin и выкинуть зависимость целиком? Благо теперь, в мире AI, это можно сделать почти бесплатно. Как ни странно, по бенчмаркам удалось добиться почти того же качества, но вот по времени препроцессинг стал работать в 9 раз дольше на 95-м перцентиле. Кто бы мог подумать 😲

Этот вариант, очевидно, не подходит. Поэтому появилась идея собрать свою урезанную версию OpenCV, только у своей сборки есть и минусы:

🔘Обновление OpenCV перестаёт быть сменой одной цифры в зависимостях: нужно пересобрать под все ABI, прогнать сборку в CI, проверить, что ничего не отвалилось.
🔘Сложный порог входа, даже с AI-агентами можно будет прикурить после очередного апдейта NDK или AGP.
🔘Готовые обёртки OpenCV написаны и отлажены, а если мы где-то накосячим с жизненным циклом, то получим серьёзную утечку памяти в нативе.
🔘И наконец, нет гарантий, что не понадобятся ещё какие-то методы из OpenCV и потом может быть очень больно всё заново пересобирать и обновлять.

Так что остаётся либо мириться с размером, либо усложнять поддержку. А что бы выбрали вы?
  • ❤ 11
  • 👍 2
More from @kotlin_adept
  1. Sep 18, 2026Как подружить строгий Java-энтерпрайз со всеми ИИ изменениями? Сбер поможет разобраться 24…
  2. Sep 17, 2026Мифы и заблуждения в AI-разработке Забавно, как в мире AI-разработки постоянно появляются…
  3. Sep 15, 2026Тем временем мы с командой подготовили для вас новый сезон Podlodka Android Crew при подде…
  4. Sep 12, 2026Прошло уже более полугода с того момента, как я рассказывал вам о реализации Android-прило…
  5. Sep 2, 2026Если вы тоже городили костыли для поддержки смены системной темы внутри Compose Multiplatf…
  6. Aug 5, 2026Как читать плохо пропечатанные коды В прошлый раз я упомянул, что returnErrors в ZXing под…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →