OpenCV开发之——集成人脸识别后APP体积增大解决办法

博客探讨了在Android项目中导入人脸检测和人脸识别库opencv、javacv后,Apk体积从10M激增至700M的原因。通过分析发现,问题主要出在javacv-platform和javacpp-platform包含了所有平台的依赖。解决方案是精简依赖,仅保留arm64-v8a ABI的库,通过修改构建配置,最终将Apk体积降至16.2M。
摘要由CSDN通过智能技术生成

一 现象

  • 原有项目(导入人脸检测和人脸识别前),打包体积不到10M
  • 导入人脸检测和人脸识别后,打包体积竟然700M左右

二 问题分析(体积增大来自哪里)

2.1 opencv官方示例打包(10M左右)

2.2 apk包分析(Build——>Analyze APK)

2.2.1 opencv官方apk分析

影响apk大小的主要是lib下arm64-v8a

2.2.2 导入(opencv和javacpp及javacv)

影响apk大小的因素:org包及lib下各种ABI

2.3 分析结果

javacv-platform和javacpp-platform将各平台的依赖都添加了进来

三 解决办法(去除其他平台依赖)

3.1 保留人脸检测(opencv和人脸识别),替换platform为指定ABI

依赖

//人脸检测
implementation project(':opencv')
//人脸识别
implementation 'org.bytedeco:javacv:1.5.5' //javac
implementation group: 'org.bytedeco', name: 'openblas', version: '0.3.13-1.5.5', classifier: 'android-arm64'
implementation group: 'org.bytedeco', name: 'opencv', version: '4.5.1-1.5.5', classifier: 'android-arm64'

打包后结果

arm64-v8a-release.apk:37.4M

3.2 只保留人脸检测(opencv),将本地人脸识别去掉,结果放云端识别结果返回

依赖

//人脸检测
implementation project(':opencv')
//人脸识别处理
implementation 'org.bytedeco:javacv:1.5.5' //javac

打包后结果

arm64-v8a-release.apk:16.2M
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值