OpenCV  4.10.0
开源计算机视觉
正在加载...
正在搜索...
没有匹配项
Android 开发简介

上一教程: Clojure 语言下 OpenCV 开发简介
下一教程: OpenCV 在 Android 上开发

原作者Rostislav Vasilikhin
兼容性OpenCV >= 4.0

本指南旨在帮助您快速学习 Android 开发基础知识和设置运行环境。已在 Ubuntu 22.04 和 Windows 10 上进行过测试。

如果您在认真执行这些步骤后遇到任何错误,请随时通过 OpenCV 论坛 联系我们。我们将尽最大努力来帮助您。

前言

Android 是一个基于 Linux 的开源移动操作系统,由 Google 领导的开放手持设备联盟开发。有关详细信息,请参见 Android 主页

Android 开发与其他平台开发有很大不同。因此,在开始为 Android 编程之前,我们建议您确保您熟悉以下关键主题

  1. Java 编程语言作为 Android 操作系统的首要开发技术。另外,您可能会发现 Oracle Java 文档 有用。
  2. Java Native Interface (JNI) 是一种在 Java 虚拟机中运行原生代码的技术。另外,您可能会发现 Oracle JNI 文档 有用。
  3. Android Activity 及其生命周期,它是一个重要的 Android API 类。
  4. OpenCV 开发肯定会需要一些 Android Camera 知识。

Android 开发手动环境设置

在本教程中,我们将使用官方 Android Studio IDE 和一组其他免费工具。

获取工具和依赖项

以下是如何获得工作环境

  1. 下载并安装 Android Studio
    • Ubuntu
      1. 下载 Android Studio:https://android-docs.cn/studio
      2. 解压 tar.gz 存档
      3. 按照 Install-Linux-tar.txt 中的说明进行操作:在终端中打开 android-studio/bin 文件夹并运行 ./studio.sh
      4. 通过 GUI 执行标准安装
      5. 或者,您可以通过单击菜单Tools -> Create desktop entry 为快速访问添加桌面快捷方式。在创建或打开任何项目后,将出现该菜单。
    • Windows:只需从官方网站下载 Android Studio 并运行安装程序即可。
  2. 安装新的 Android SDK 和 NDK

    1. 在 Android Studio 中打开 Open SDK 管理器(自定义 -> 所有设置 -> 语言和框架 -> Android SDK
    2. 启用“显示包详细信息”复选框
    1. 选中最新版本的 SDK 和 NDK 并按确定
    2. 确保您的设备支持所选的 SDK 版本
  3. 为构建安装所有必需的包
    • sudo apt install git cmake ninja-build openjdk-17-jdk openjdk-17-jre
    • 其余必需的包是依赖项,应自动安装

查看 OpenCV 示例

  1. 从官方 Github 上的发布页面SourceForce下载 Android SDK 中的 OpenCV。
  2. 使用操作系统工具解压缩 zip 存档。
  3. 在 Android Studio 中打开项目 <YOUR_OPENCV_BUILD_FOLDER>/OpenCV-android-sdk/samples
  4. 连接您的设备
    • 设备上应启用调试,您可以在网上找到相关的说明
    • 或者,您可以使用 Android Studio 提供的虚拟设备
  1. 从下拉菜单中选择一个示例(例如,15-puzzle)并运行它。

设置设备用于测试和调试

通常,上述步骤会按预期工作,但在某些情况下需要执行其他操作。在本节中,我们将介绍一些情况。

Windows 主机计算机

如果您使用的是 Windows 10 或更高版本,则无需执行其他操作即可连接手机并在其上运行示例。但是,较早的 Windows 版本需要更长的步骤

  1. 在 Android 设备上启用 USB 调试(通过设置菜单)。
  2. 使用 USB 数据线将 Android 设备连接到电脑。
  3. 转到“开始”菜单并右键单击“计算机”。在上下文菜单中选择“管理”。您可能会被要求提供管理权限。
  4. 在左侧窗格中选择“设备管理器”,并在列表中找到一个未知设备。您可以尝试拔下它然后再插回去,以检查列表中是否出现了您的设备。
  1. 尝试不进行任何修改而安装 Google USB 驱动程序:右键单击未知设备,选择“属性”菜单项 -> “详细信息”选项卡 -> “更新驱动程序”按钮。
  1. 选择“浏览计算机以查找驱动程序软件”。
  1. 指定 <Android SDK folder>/extras/google/usb_driver/ 文件夹的路径。
  1. 如果您收到安装未验证的驱动程序并报告成功的提示,则您已完成 USB 驱动程序的安装。
  1. 否则(出现如下所示的失败),请按照以下步骤操作。
  1. 再次右键单击未知设备,选择属性->详细信息->硬件 ID,并复制像 USB\VID_XXXX&PID_XXXX&MI_XX 这样的行。
  1. 现在打开文件 <Android SDK 文件夹>/extras/google/usb_driver/android_winusb.inf。根据您的主机系统体系结构选择 Google.NTx86 或 Google.NTamd64 部分。
  1. 应该有一个像现有设备的记录,您需要手动添加一个。
  1. 保存 android_winusb.inf 文件并再次尝试安装 USB 驱动程序。
  1. 这次安装应成功进行。
  1. 然后未知设备现在被识别为一部 Android 手机。
  1. 可以在控制台中通过 adb devices 命令验证成功的设备 USB 连接。
  1. 现在,在 Eclipse 中选择运行 -> 运行/调试以在常规或调试模式下运行您的应用程序。设备选择器将允许您在设备中进行选择。

Linux 主机电脑

尽管最新的 Ubuntu 版本与已连接的 Android 设备运行良好,但较旧版本可能会出现问题。但是,其中大多数问题可以轻松修复。您需要创建一个新的 **/etc/udev/rules.d/51-android.rules** 配置文件,其中包含有关 Android 设备的信息。您可以在此处找到一些供应商 ID,或执行 lsusb 命令来查看已插入的 Android 设备的供应商 ID。下面是适用于 LG 设备的一个此类文件示例

SUBSYSTEM=="usb", ATTR{idVendor}=="1004", MODE="0666", GROUP="plugdev"

然后重新启动 adb 服务器(最好重新启动系统),插入您的 Android 设备并执行 adb devices 命令。您将看到已连接的设备列表

savuor@rostislav-laptop:~/Android/Sdk/platform-tools$ ./adb devices
已连接的设备列表
R58MB40Q3VP 设备
savuor@rostislav-laptop:~/Android/Sdk/platform-tools$

Mac OS 主机电脑

无需执行操作,只需通过 USB 连接您的设备并运行 adb devices 来检查连接。

后续步骤

现在,当您已经设置并配置了您的 OpenCV4Adroid SDK 实例后,您可能需要在您自己的应用程序中继续使用 OpenCV。您可以在单独的使用 OpenCV 进行 Android 开发教程中学习如何执行此操作。