OpenCV4Android(二)【Android开发简介】

        本指南旨在帮助您学习 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。

        注:国内好像不太好登录,可以来国内网站

        谷歌 SDK 安装指南 (国内网站 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 教程中学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值