Android OpenCV(七十六): OpenCV 4.9.0 更新,终于有一点Android平台的调整了

前言

太感动 ing,OpenCV 4.9.0 版本更新,官方 ChangeLog 里终于出现久违的 Android 平台变更。

具体内容如下:

  • Android
  • New Android Archive Package (AAR) distrubuted with Maven Central
  • Finally removed API for OpenCV manager. OpenCVLoader.initLocal() should be used to initialize OpenCV.
  • New Android samples: QR code detector, video IO sample. DNN and Face Detector samples refresh.
  • Switch to Gradle 7.6.3, modern Android tools.

百年难得一见的变更,我们必须逐条看看。

强行细品

1. AAR 发布至 Maven Center

New Android Archive Package (AAR) distrubuted with Maven Central

4.9.0 版本之前,我们需要使用 opencv android 平台能力,只能通过手动引入 opencv sdk module 的方式。以后我们可以名正言顺的使用 Maven 依赖库了。

Android OpenCV(七十六): OpenCV 4.9.0 更新,终于有一点Android平台的调整了_第1张图片

无比亲切的引用方式

  • Gradle
implementation 'org.opencv:opencv:4.9.0' // Gradle Short
implementation group: 'org.opencv', name: 'opencv', version: '4.9.0'  // Gradle
implementation("org.opencv:opencv:4.9.0") // Gradle Kotlin
  • Maven
<dependency>
    <groupId>org.opencvgroupId>
    <artifactId>opencvartifactId>
    <version>4.9.0version>
dependency>

2. 移除 OpenCV Manager 废弃 API,调整初始化方式

Finally removed API for OpenCV manager. OpenCVLoader.initLocal() should be used to initialize OpenCV.

初始化 OpenCV 方式调整,移除之前冗余的代码。现在初始化直接调用 OpenCVLoader.initLocal() 即可。源码里面的 OpenCVLoader 与 StaticHelper 两个类文件也做了大量简化。核心就是调用 System.loadLibrary()

if (OpenCVLoader.initLocal()) {
    Log.i(TAG, "OpenCV loaded successfully");
} else {
    Log.e(TAG, "OpenCV initialization failed!");
    (Toast.makeText(this, "OpenCV initialization failed!", Toast.LENGTH_LONG)).show();
    return;
}

3. 新增 Android 平台示例代码

New Android samples: QR code detector, video IO sample. DNN and Face Detector samples refresh.

新增部分示例工程,为开发者提供常见场景的参考案例,是非常好的学习材料。

Android OpenCV(七十六): OpenCV 4.9.0 更新,终于有一点Android平台的调整了_第2张图片

4. Gradle 版本升级

Switch to Gradle 7.6.3, modern Android tools.

Android OpenCV(七十六): OpenCV 4.9.0 更新,终于有一点Android平台的调整了_第3张图片

以前的版本是 5.6.4

你可能感兴趣的:(android,opencv,webpack)