本指南旨在帮助您学习 Android 开发基础知识,能够快速配置工作环境。虽然它是基于 Windows 7 编写的,但它可以与 Linux (Ubuntu)、Mac OS X 和Android SDK 支持的任何其他操作系统兼容。
如果您在按照下面的操作步骤配置后遇到问题,请通过 OpenCV4Android 讨论组或 OpenCV 问答论坛 与我们联系。我们会尽最大努力帮助您。
另:欢迎博客下留言,如能解决很乐意为您效劳。
开发之前的知识准备
Android 是谷歌领导的开源手机联盟开发的基于 Linux 的开源移动操作系统。详情见 Android网站主页。
Android 开发与其他平台的开发有很大的不同。所以在开始 Android 开发前,我们建议您具有以下知识储备:
1、Java 编程语言,是进行 Android 开发的主要语言。详细使用可参照 Oracle 官方文档 。
2、Java Native Interface (JNI) 是一种在Java虚拟机中运行本机代码的技术。详细使用可参照 JNI的Oracle文档 。
3、Android Activity 和它的生命周期,这是一个基本的Android API类。
4、OpenCV的开发要求熟悉 Android摄像头 开发。
Android开发的快速环境设置
如果您在一个干净的环境中安装,可以尝试NVIDIA发布的 Tegra 安卓开发包 (TADP)。
注意:从 2.0版本开始,TADP 包包括用于Tegra SDK的OpenCV,这是一个常规的 OpenCV4Android SDK 扩展,带有 Tegra 特定的东西。
在解包时,TADP将自动覆盖所有环境设置,您可以跳过本指南的其余部分。
如果你是Android开发的初学者,那么我们也建议你从TADP开始。
注意:NVIDIA的Tegra Android开发包包含了一些针对 NVIDIA Tegra 平台的特殊功能,但它的使用并不仅限于Tegra设备。
+ 安装需要至少1.6 Gb的空闲磁盘空间。
+ TADP将从谷歌服务器下载Android SDK平台和Android NDK,因此安装时需要连接互联网。
+ TADP可能会要求您在安装过程结束时显示开发工具包。如果您没有 Tegra开发工具包,请跳过此步骤。
+ (UNIX) TADP会在安装过程中要求您提供root用户,因此您需要是sudo组的成员。
手动配置Android开发环境
Java开发
注:android studio 直接去4.
为了在 Java 中为 Android 开发,您需要安装以下软件:
1. Sun公司的Java开发包 JDK 8 或者以上版本(想看原版说明可至 链接)
访问 Java SE 下载 页面,下载操作系统的安装程序。
注:针对 Ubuntu 和Mac OS的详细JDK 安装指南 (只有JDK部分适用于OpenCV)。
注意:OpenJDK 不适合 Android 开发,因为 Android SDK 只支持 Sun JDK 。如果您使用Ubuntu,在安装 Sun JDK 后,您应该运行以下命令来设置 Sun java 环境(注意版本):
sudo update-java-alternatives --set java-6-sun
Window 环境下 JDK 1.8 安装及环境配置,可参照 bigdargon 的 JDK1.8安装和环境配置。
2. Android SDK
从 Android 开发者平台 下载Android SDK。
注:国内好像不太好登录,可以来国内网站。
注意:您可以选择下载ADT捆绑包,该软件包除Android SDK工具外,还包括Eclipse+ADT+NDK/CDT插件、Android平台工具、最新的Android平台和用于模拟器的最新Android系统映像-这是首次设置Android开发环境的人的最佳选择!(我都是用 Android Studio,建议也使用这个)
注意:如果您运行的是x64版本的Ubuntu Linux,那么需要安装用于amd64和ia64系统的ia32共享库。您可以使用以下命令安装它们:
sudo apt-get install ia32-libs
对于基于Red Hat的系统,以下命令可能会有所帮助:
sudo yum install libXtst.i386
3. Android SDK 组件
下面介绍的是eclipse怎么安装。我不怎么用eclipse,有机会补充一下 Android Studio 如何安装 Android SDK 组件。
4. Android Studio
① 下载安装包,在这儿。不建议下载最新版,下载最新稳定版即可。
② 解压或安装。不多做介绍。可以参照 xw-何妨吟啸且徐行 的 Android Studio安装及环境配置教程 。
安装完就完事了。
原生C++开发
注:Android Studio 直接去3.
为了在 Android 开发中使用 C++ 语言,需要安装以下软件:
1. Android NDK
要为 Android 平台编译 C++ 代码,您需要 Android Native Development Kit(NDK)。
你可以从 下载页面 获得 NDK 的最新版本。要安装 Android NDK,只需将存档文件解压缩到计算机上的某个文件夹中。 安装说明 。
注意:在开始之前,您可以阅读 Android NDK 官方文档,该文档位于 Android NDK 归档文件的 docs/ 文件夹中。关于使用 Android NDK 构建系统的主要文章在 Android-MK.html 文件。您可以在 APPLICATION-MK.html,NDK-BUILD.html 文件和 CPU-ARM-NEON.html,CPLUSPLUS-SUPPORT.html,PREBUILTS.html 中找到一些其他信息。
2. 为 Eclipse 安装 CDT 插件
如果您选择安装 Eclipse ADT 插件的 NDK 插件组件,您的 Eclipse IDE 应该已经有 CDT 插件(这意味着 C/C++ 开发工具)。有几种可能的方法可以将 Android NDK 编译 C++ 代码集成到 Eclipse 编译过程中。我们建议使用基于 Eclipse CDT Builder 的方法。
3. Android Studio 安装 NDK
本着不重复造轮子(其实就是懒!!!)的原则。
Window 下参照 xiaoyaoyou.xyz 的 AndroidStudio NDK开发环境配置及示例。
Mac 下请参照 Android唐浮 的 Mac下Android Studio NDK 环境搭建并运行。
安卓应用结构
通常 Android 应用程序的源代码具有以下结构:
说明:
*src 文件夹包含应用程序的Java代码
*res 文件夹包含应用程序的资源(图像、描述 UI 布局的 xml 文件等)
*libs 文件夹将包含原生代码编译后的生成文件
*jni 文件夹包含 C/C++ 应用程序源代码和 NDK 构建脚本 Android.mk 和 Application.mk 生成的原生库文件
*AndroidManifest.xml 文件提供了有关 Android 系统应用程序的基本信息(应用程序的名称、主应用程序包的名称、应用程序的组件、所需的权限等)
可以使用 Eclipse 向导或 android SDK 中的 android 工具创建。
*project.properties
是一个包含有关目标 Android 平台和其他构建细节的信息文本文件。
该文件由Eclipse生成,也可以使用 android SDK 中包含的 android 工具创建。
Android.mk
与 Application.mk 脚本
通常 Android.mk
脚本具有以下结构:
这是构建了 Android 应用程序 C++ 源代码的最小文件。
请注意,前两行和最后一行在 Android.mk 文件中是必需的。
通常 Application.mk 文件是可选项,但在使用了 OpenCV 的项目中,当在C++中使用 STL 和异常时,应该创建它。
Application.mk 文件示例如下:
注:我们建议为所有目标设置APP_ABI:=all。如果要显式指定目标,请对 ARMv5/ARMv6 使用 armeabi 架构,对 ARMv7 使用 armeabi-v7a 架构,对 Intel Atom 使用 x86 架构,对 MIPS 使用 mips 架构。
从命令行构建应用程序原生部分
以下是编译Android应用程序C++部分的标准方法:
警告:我们强烈建议使用cmd.exe(标准Windows控制台),而不是Windows上的Cygwin。如果你对自己正在做的事情有绝对的把握,就使用后者。Cygwin实际上并不受支持,如果您遇到一些问题,我们不太可能帮助您。因此,只有当你自己有能力处理后果时才使用它。
1. 打开控制台并转到Android应用程序的根文件夹
cd <工程根目录>/
2. 运行以下命令
<NDK路径>/ndk-build
注意:在Windows上,我们建议使用ndk构建。标准Windows控制台(cmd.exe)中的cmd,而不是Cygwin shell中类似的bash脚本。
3. 执行编译C++部分源代码的命令
执行完之后,Java部分应用程序将被(重新)编译(使用Eclipse或Ant构建工具)。
注:可以为ndk构建设置一些参数:
示例1:详细编译
<NDK路径>/ndk-build V=1
示例2:全部重建
<NDK路径>/ndk-build -B
从Eclipse构建应用程序原生部分(CDT Builder)
基本都不用Eclipse了,还有人用吗?
想看的去看原文吧,好吗?
调试与测试
在本节中,我们将为您提供一些易于遵循的指导,关于如何设置模拟器或硬件设备来测试和调试 Android 项目。
安卓虚拟设备
原文中介绍的是Eclipse中如何使用,此处就不翻译了。想看的去看原文吧,好吗?
Android Studio 请参照 iterhui 的 Android Studio的安装,史上最详细(超多图)!!
硬件设备
如果您有一个 Android 设备,您可以用它来测试和调试您的应用程序。这种方式更真实,虽然有点难设置。您需要为 Windows 和 Linux 操作系统执行配置,以便能够在 Android 设备上工作。Mac OS 不需要额外的配置。关于配置硬件设备的详细信息请参见下面的小节。
您也可以参考官方的 Android开发者网站说明 来获取更多信息。
Windows 主机计算机
原文中这一块讲的是如何进行真机连接调试的,感觉里面的东西太陈旧了。 想看的去看原文吧。
Android Studio 的同学请走这边——
小米9 真机调试 不识别 安装失败_孜然公子的博客-优快云博客
Linux 主机计算机
默认情况下,Linux不能识别Android设备,但是很容易解决这个问题。在Ubuntu Linux上,你必须创建一个新的 /etc/udev/rules.d/51-android.rules 包含 Android 设备信息的配置文件。您可以在 这里 找到一些 VendorID,或者执行 lsusb 命令查看插入的 Android 设备的 VendorID 。下面是 LG 设备的一个例子:
SUBSYSTEM=="usb", ATTR{idVendor}=="1004", MODE="0666", GROUP="plugdev"
然后重启adb服务器(重启系统更好),插入 Android 设备并执行 adb devices 命令。您将看到附加设备的列表:
Mac 主机计算机
不需要任何操作,只需通过 USB 连接您的设备,并运行 adb devices 进行连接。
接下来。。。
现在,当您设置并配置了开发环境后,您可能想继续安装 OpenCV4Android SDK。您可以在 OpenCV4Android SDK 教程中学习。