搭建 Android 開發(fā)環(huán)境1

(注意:本文是 OpenCV4Android "Introduction into Android Development" 這篇文章的翻譯,主要講解使用 Eclipse IDE 作為開發(fā)工具,搭建 SDK 和 NDK 的開發(fā)環(huán)境。目前 Android 開發(fā)官方推薦使用 Android Studio 來代替 Eclipse,并且停止了對 Eclipse 的繼續(xù)支持,所以這篇文章講解的內(nèi)容已經(jīng)過時,對依舊使用 Eclipse 的開發(fā)者仍有參考價值 )

Android 開發(fā)

本指南旨在幫助您快速學習 Android 開發(fā)環(huán)境的搭建。雖然 Android SDK 可以在 Linux(Ubuntu),Mac OS X和任何其他操作系統(tǒng)上使用,但這里假設你用的 Windows 7。如果在遵循這些步驟后仍然遇到錯誤,請通過 OpenCV4Android 討論組或 OpenCV QA 平臺與我們聯(lián)系。

前言

Android 是由 Google 領(lǐng)導的開放手機聯(lián)盟開發(fā)的基于 Linux 的開源移動操作系統(tǒng)。有關(guān)詳細信息,請參閱 Android 主頁。Android 開發(fā)與其他平臺開發(fā)有顯著的不同。因此,在開始為 Android 編程之前,我們建議您確保對下面的關(guān)鍵知識點已經(jīng)非常熟悉:

  1. Java 編程語言是 Android 平臺的主要開發(fā)技術(shù)。您可以在 Oracle文檔 上找到 Java 相關(guān)的資料。
  2. Java Native Interface (JNI)是一種在 Java 虛擬機中運行 Native 代碼的技術(shù)。您可以在 Oracle文檔 上找到有用資料
  3. Android Activity 及其生命周期,這是一個非常重要的 Android API 類
  4. OpenCV 開發(fā)還需要一些 Android Camera 相關(guān)的知識

Android 開發(fā)環(huán)境快速設置

如果你想要快速自動的搭建 Android 開發(fā)環(huán)境,你可以嘗試由 NVIDIA 發(fā)布的 Tegra Android 開發(fā)包(TADP)。TADP 解壓完成后,將自動配置所有環(huán)境設置,然后您就可以跳過本指南的其余部分直接開始開發(fā)了。如果你是一個 Android 開發(fā)初學者,我們建議你從 TADP 開始。

Android開發(fā)環(huán)境手動設置

?注意:Eclipse 已經(jīng)過時,用 Android Studio 代替

Java 開發(fā)環(huán)境的配置

您需要安裝以下軟件才可以用 Java 來開發(fā) Android 應用:

Eclipse 版本:

  1. Sun JDK 6(也可以是Sun JDK 7和8)
  2. Android SDK
  3. Android SDK components
  4. Eclipse IDE
  5. ADT plugin for Eclipse

Android Studio 版本:

  1. Sun JDK 6(也可以是Sun JDK 7和8)
  2. Android Studio

C++ Native 開發(fā)環(huán)境配置

您需要安裝以下軟件才可以用 C++ 來開發(fā) Android 應用:

Eclipse 版本:

  1. Android NDK
  2. CDT plugin for Eclipse

Android Studio 版本:

  1. Android NDK
  2. LLDB
  3. CMake

Android 應用程序項目的結(jié)構(gòu)

Eclipse 版本:

- rootfolderoftheproject/
  - jni/
  - libs/
  - res/
  - src/
  - AndroidManifest.xml
  - project.properties
  - ...otherfiles...
  • src 文件夾包含應用程序的Java代碼
  • res 文件夾包含應用程序的資源(圖像,描述UI布局的xml文件等)
  • libs 文件夾將在成功構(gòu)建之后包含 native 庫和 jar 包
  • jni 文件夾包含 C / C++ 應用程序源代碼和NDK的構(gòu)建腳本 Android.mk 和Application.mk,這些將生成 Native 庫
  • AndroidManifest.xml 文件提供關(guān)于應用程序到 Android 系統(tǒng)的基本信息(應用程序名稱,主應用程序包的名稱,應用程序組件,所需的權(quán)限等)。它可以使用 Eclipse 向?qū)Щ?Android SDK 中的 Android 工具創(chuàng)建。
  • project.properties 是一個包含目標 Android 平臺和其他構(gòu)建詳細信息的文本文件。此文件由 Eclipse 生成或可以使用 Android SDK 中包含的 Android 工具創(chuàng)建。

Android Studio 版本:

Android.mk 和 Application.mk 腳本

Android.mk 腳本文件通常如下面結(jié)構(gòu)

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE    := <module_name>
LOCAL_SRC_FILES := <list of .c and .cpp project files>
<some variable name> := <some variable value>
...
<some variable name> := <some variable value>

include $(BUILD_SHARED_LIBRARY)

這是構(gòu)建 android 應用 c++ 源碼需要的最小的 Android.mk 文件,注意前兩行和最后一行對于任何 Android.mk 都是必需的。

通常 Application.mk 文件是可選的,但是當在項目種使用了 OpenCV ,在 C++ 中使用 STL 和異常時,也應該創(chuàng)建它。文件 Application.mk 的示例:

APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_ABI := all

從命令行構(gòu)建應用程序 Native 部分

下面是編譯 Android 中 C++ 部分代碼的標準方式

  1. 打開命令行,來到 Android 項目的根目錄
cd <root folder of the project>/
  1. 運行下面命令
<path_where_NDK_is_placed>/ndk-build
  1. 執(zhí)行上面的命令后 C++ 部分的源碼就會被編譯

從 Eclipse 構(gòu)建應用程序 Native 部分(CDT Builder)

有許多種方式可以把 NDK 編譯 Native C++ 代碼的功能集成到 Eclipse 的構(gòu)建器里面,我們推薦使用 EclipseCDT Builder。

  1. 定義 NDKROOT 環(huán)境變量包含 Android NDK 在系統(tǒng)中的路徑(比如"X:\Apps\android-ndk-r8"or"/opt/android-ndk-r8" )

  2. 重啟 Eclipse

  3. 打開 Eclipse ,加載 Android app 項目

  4. 通過 Eclipse 菜單 New -> Other -> C/C++ -> Convert to a C/C++ Project 給項目添加 c/c++ 性質(zhì)

    轉(zhuǎn)換項目為 c/c++類型1

    轉(zhuǎn)換項目為 c/c++類型2

  5. 選中要轉(zhuǎn)的項目,設置 Project type” =Makefileproject, “Toolchains” =OtherToolchain

設置c/c++項目
  1. 打開 Project Properties -> C/C++ Build ,不要勾選 Usedefaultbuildcommand ,在 Windows 上設置 Build command 為 "${NDKROOT}/ndk-build.cmd",在 Linux 和 MacOS 上設置為 "${NDKROOT}/ndk-build"
Build command設置
  1. 打開 Behaviour 標簽按下圖設置“Workbench build type”
設置“Workbench build type”
  1. 點擊 ok 保存配置
保存配置
  1. 如果你在 Eclipse 編輯器中打開 c/c++ 源碼文件,你會看到很多語法錯誤通知,它們不是真正的錯誤,你還需要對 CDT 進行配置
語法錯誤通知
  1. 打開"Project Properties -> C/C++ General -> Paths and Symbols",為 C++ 添加下列 path
# for NDK r8 and prior:
${NDKROOT}/platforms/android-9/arch-arm/usr/include
${NDKROOT}/sources/cxx-stl/gnu-libstdc++/include
${NDKROOT}/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a/include
${ProjDirPath}/../../sdk/native/jni/include
# for NDK r8b and later:
${NDKROOT}/platforms/android-9/arch-arm/usr/include
${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.6/include
${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi-v7a/include
${ProjDirPath}/../../sdk/native/jni/include
為 C++ 添加path

調(diào)試和測試

在本節(jié)中,我們將為您介紹如何設置 Android 模擬器或硬件設備,來測試和調(diào)試 Android 項目。

AVD

創(chuàng)建 Android 模擬器,省略......

硬件設備

如果您有 Android 設備,可以使用它來測試和調(diào)試應用程序。這種方式更加真實,雖然有點難以設置。您需要對 Windows 和 Linux 操作系統(tǒng)進行一些設置才能使用 Android設備。 Mac OS 不需要任何額外的操作。有關(guān)配置硬件設備的詳細信息,請參閱下面的小節(jié)。
您還可以參考 Android 官方開發(fā)者網(wǎng)站的說明來獲取更多信息。

Windows

windows 下 Android 設備驅(qū)動的安裝,省略......

Linux

省略......

Mac OS

省略......

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容