上一教程: Clojure 语言下 OpenCV 开发简介
下一教程: OpenCV 在 Android 上开发
| |
原作者 | Rostislav Vasilikhin |
兼容性 | OpenCV >= 4.0 |
本指南旨在帮助您快速学习 Android 开发基础知识和设置运行环境。已在 Ubuntu 22.04 和 Windows 10 上进行过测试。
如果您在认真执行这些步骤后遇到任何错误,请随时通过 OpenCV 论坛 联系我们。我们将尽最大努力来帮助您。
前言
Android 是一个基于 Linux 的开源移动操作系统,由 Google 领导的开放手持设备联盟开发。有关详细信息,请参见 Android 主页。
Android 开发与其他平台开发有很大不同。因此,在开始为 Android 编程之前,我们建议您确保您熟悉以下关键主题
- Java 编程语言作为 Android 操作系统的首要开发技术。另外,您可能会发现 Oracle Java 文档 有用。
- Java Native Interface (JNI) 是一种在 Java 虚拟机中运行原生代码的技术。另外,您可能会发现 Oracle JNI 文档 有用。
- Android Activity 及其生命周期,它是一个重要的 Android API 类。
- OpenCV 开发肯定会需要一些 Android Camera 知识。
Android 开发手动环境设置
在本教程中,我们将使用官方 Android Studio IDE 和一组其他免费工具。
获取工具和依赖项
以下是如何获得工作环境
- 下载并安装 Android Studio
- Ubuntu
- 下载 Android Studio:https://android-docs.cn/studio
- 解压 tar.gz 存档
- 按照
Install-Linux-tar.txt
中的说明进行操作:在终端中打开 android-studio/bin
文件夹并运行 ./studio.sh
- 通过 GUI 执行标准安装
- 或者,您可以通过单击菜单Tools -> Create desktop entry 为快速访问添加桌面快捷方式。在创建或打开任何项目后,将出现该菜单。
- Windows:只需从官方网站下载 Android Studio 并运行安装程序即可。
安装新的 Android SDK 和 NDK
- 在 Android Studio 中打开 Open SDK 管理器(自定义 -> 所有设置 -> 语言和框架 -> Android SDK)
- 启用“显示包详细信息”复选框
- 选中最新版本的 SDK 和 NDK 并按确定
- 确保您的设备支持所选的 SDK 版本
- 为构建安装所有必需的包
sudo apt install git cmake ninja-build openjdk-17-jdk openjdk-17-jre
- 其余必需的包是依赖项,应自动安装
查看 OpenCV 示例
- 从官方 Github 上的发布页面 或 SourceForce下载 Android SDK 中的 OpenCV。
- 使用操作系统工具解压缩 zip 存档。
- 在 Android Studio 中打开项目
<YOUR_OPENCV_BUILD_FOLDER>/OpenCV-android-sdk/samples
。
- 连接您的设备
- 设备上应启用调试,您可以在网上找到相关的说明
- 或者,您可以使用 Android Studio 提供的虚拟设备
- 从下拉菜单中选择一个示例(例如,
15-puzzle
)并运行它。
设置设备用于测试和调试
通常,上述步骤会按预期工作,但在某些情况下需要执行其他操作。在本节中,我们将介绍一些情况。
Windows 主机计算机
如果您使用的是 Windows 10 或更高版本,则无需执行其他操作即可连接手机并在其上运行示例。但是,较早的 Windows 版本需要更长的步骤
- 在 Android 设备上启用 USB 调试(通过设置菜单)。
- 使用 USB 数据线将 Android 设备连接到电脑。
- 转到“开始”菜单并右键单击“计算机”。在上下文菜单中选择“管理”。您可能会被要求提供管理权限。
- 在左侧窗格中选择“设备管理器”,并在列表中找到一个未知设备。您可以尝试拔下它然后再插回去,以检查列表中是否出现了您的设备。
- 尝试不进行任何修改而安装 Google USB 驱动程序:右键单击未知设备,选择“属性”菜单项 -> “详细信息”选项卡 -> “更新驱动程序”按钮。
- 选择“浏览计算机以查找驱动程序软件”。
- 指定
<Android SDK folder>/extras/google/usb_driver/
文件夹的路径。
- 如果您收到安装未验证的驱动程序并报告成功的提示,则您已完成 USB 驱动程序的安装。
- 否则(出现如下所示的失败),请按照以下步骤操作。
- 再次右键单击未知设备,选择属性->详细信息->硬件 ID,并复制像
USB\VID_XXXX&PID_XXXX&MI_XX
这样的行。
- 现在打开文件
<Android SDK 文件夹>/extras/google/usb_driver/android_winusb.inf
。根据您的主机系统体系结构选择 Google.NTx86 或 Google.NTamd64 部分。
- 应该有一个像现有设备的记录,您需要手动添加一个。
- 保存
android_winusb.inf
文件并再次尝试安装 USB 驱动程序。
- 这次安装应成功进行。
- 然后未知设备现在被识别为一部 Android 手机。
- 可以在控制台中通过 adb devices 命令验证成功的设备 USB 连接。
- 现在,在 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 开发教程中学习如何执行此操作。