ndk的环境配置 练习笔记

Android  c++开发环境主要由以下几个部分构成:
? Android 软件开发包(software Development Kit,SDK)
? Android 原生开发包(Native Development Kit,NDk)
? Android Studio 安卓集成开发工具,类似Eclipse ADT
? Java 开发包(Java Development Kit,JDK)

下面就循序渐进的讲解配置Android C++ 开发环境的步骤,Android开发工具可以在以下三种操作系统平台上运行
Microsoft Windows
Apple Mac OS
Linux
不同的操作系统之间的操作除了配置路劲不大一样,其他没多大区别。

1 配置好相关软件
按照现在的主流电脑配置,软件都尽量考虑采用64位的。
? Java JDK 8
? Android Studio

1.1 下载并安装JDK开发包
Android 开发工具要求必须安装JDK(Java Development Kit) 在安装 android studio 之前需要先安装java JDK 8。

Android studio 支持多种发行版本的JDK,例如:IBM JDK,Open JDK以及 Oracle JDK。因为Oracle 支持的平台较多,是开发者通常采用的版本。

(1)通过访问oracle官网的以下页面

http://www.oracle.com/technetwork/java/javase/downloads/index.html

(2) 单击Java Platform (JDK)  的download 进入平台的安装包清单页面
(3)选中 Accept License Agreement 选项并下载 Windows x64安装包。

下载完成,双击安装向导首先安装JDK,然后安装JRE。在安装过程中,安装向导会让你指定目录以及要安装的组件。 安装过程中,使用notepad记录安装的路径,后面会用到。

程序接下来会停留在jre的安装界面上,同样的可以自己修改路径。

安装完成后,通过运行窗口进入cmd命令控制界面,输入 java -version,如果已经配置到环境变量中,就可以看到版本的详细信息

javah没有调用到,就需要用到上面记录的路径,在环境变量的path中配置。

1.2 安装Android studio
    Android Studio 是一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。  在国内,可以访问http://www.android-studio.org/网站下载。现在已经更新到3.0 版本,内置了kotlin支持。处于稳定考虑,还是暂时使用2.3版本。

下载完成,双击打开,如果是第一次安装,就一直按照提示,在安装过程中,会顺便下载最新的sdk。
   如果本地已经有sdk了,那么可以切换路径。

1.2.1 sdk manger 下载工具

? The Android Native Development Kit (NDK):这套工具集允许您为 Android 使用 C 和 C++ 代码。
? CMake:一款外部构建工具,可与 Gradle 搭配使用来构建原生库。如果您只计划使用 ndk-build,则不需要此组件。
? LLDB:一种调试程序,Android Studio 使用它来调试原生代码。

在打开的项目中,从菜单栏选择Tools->Android->SDK Manager 打开
2 点击 SDK Tools标签
3 选中LLDB、CMake和NDK 旁的复选  

完成这步,一些基本的配置就完成了。
  
   2 创建项目
  在应用开发中,Android studio有两种方式进行c++的开发。
?  采用和eclipse相同的方式,javah生成相应文件,编写编译脚本android.mk
?  采用android studio内置的cmake功能

创建两个实例作为参考,里面涉及到的语法暂不考虑,后面再来分类分析。

2.1 使用传统方式创建的项目
创建一个正常的项目
(1)编写一个jni的java接口类,在内部声明native方法。

public class JniTest{
    static {
        System.loadLibrary("nativelib");
    }
    public native String getString();
}

然后build project 生成中间文件。查看是否已经生成.class文件。

重新编译之后就可以在对应的文件夹看到编译后的 JniTest.class在项目根目录\app\build\intermediates\classes\debug\包路径>

在android studio打开terminal命令行工具,当前路径切换到main目录下,使用javah 生成c语言头文件,并将文件输出到jni文件夹中。

javah -d jni -classpath 项目根目录\app\build\intermediates\classes\debug> 包路径.JniTest

这个 .h 文件可不做修改 ,默认就行。写一个测试的 C 文件nativelib.c 同 .h 文件一样放到 jni 文件夹下。

#include <jni.h>
#include "com_example_elvin_testjni_JniTest.h"

JNIEXPORT jstring JNICALL Java_com_example_elvin_testjni_JniTest_getString
        (JNIEnv *env, jobject job){
    return env->NewStringUTF("from jni");
}

当然光些这些事编译不过的。

还需要在app路径下配置build

android {
        defaultConfig {
               ndk {
            moduleName "nativelib"         //生成的so名字
            abiFilters "armeabi", "armeabi-v7a", "x86"  //输出指定三种abi体系结构下的so库。
            stl "stlport_static"    //打开.c 的 debug ,
        }
    }
    buildTypes {
        debug {
            jniDebuggable true //此句不加在真机上 debug 不受影响,但是在虚拟机上不能 debug
        }

    }
}

重新编译就会在项目根目录\app\build\intermediates\ndk\debug\> 生成相应的 架包文件

自动生成的目录和文件,实际上还需要将这些包移动到 jniLibs文件夹中,方便后续的c代码跟踪编译打断点:

libs:包含指定的目标及体系结构的独立子目录,在打包过程中该目录被包含在apk文件中。

obj: 这是一个中间目录,编译源代码后所产生的目标文件都保存在该目录下。开发人员最好不要访问该目录。

最下面的Android.mk其实就是我们在用eclipse编译jni文件时的配置。这个文件就是之前根据build配置的信息系统生成的。

备注:
  可能会编译出现问题,添加一个空的c的语言文件。如果想避免这种情况,请将实现文件名字后缀设置为cpp。这样就可以很自然的编译通过。

备注:
  javah   用法:
   javah [options] <classes>
   其中, [options] 包括:
    -o <file>                输出文件 (只能使用 -d 或 -o 之一)
    -d <dir>                 输出目录
    v  -verbose             启用详细输出
    -h  --help  -?           输出此消息
    -version                 输出版本信息
    -jni                     生成 JNI 样式的标头文件 (默认值)
    -force                   始终写入输出文件
    -classpath <path>        从中加载类的路径
    -cp <path>               从中加载类的路径
    -bootclasspath <path>    从中加载引导类的路径
    <classes> 是使用其全限定名称指定的

时间: 2024-10-27 07:11:20

ndk的环境配置 练习笔记的相关文章

Android NDK R9环境配置,开发教程

最近,在学习android ndk开发,配置环境的时候遇到了些问题,总算不负有心人--在这里记录哈过程,与筒子们分享哈--想学NDK的筒子们有福啦-- 教程本人亲测,非copy的-- 如有什么不明白的地方,可以留言 大神也可以进来瞧瞧有什么不对的地方,请指教两招 ----------------------------------------------------------------------------------------------------------------------

Eclipse下Android的NDK开发环境配置

摸索了一周,走了很多弯路,磕磕绊绊,总算是弄好了NDK的开发环境,在这里总结一下吧. 一.Android NDK开发环境 首先下载安装JRE.JDK,不必多说.然后下载NDK包,建议下载r10版本后的,自带C/C++的编译器,不需要使用外部编译器的麻烦了.下载完NDK包后,解压缩即可,需要之后关联到Eclipse.然后下载ADT Bundle,即安卓开发工具套装,里面集成好的Eclipse的安卓开发环境,但是,里面的版本可能较低而且没有集成NDK功能,可以通过SDK Manager进行更新SDK

【转】Android NDK学习(2)Windows下NDK开发环境配置

一.配置好Android开发环境 现在android SDK的版本已经到了4.4了,几乎不用配置,下载下来解压,SDK跟Android开发专用Eclipse都有了.喜欢. 二.下载安装安卓NDK 下载最新版,解压即可. 2013年6月7日: 目前版本已经到了r8e. 三.下载安装cygwin   由于NDK编译代码时必须要用到make和gcc,所以你必须先搭建一个linux环境, cygwin是一个在windows平台上运行的unix模拟环境,它对于学习unix/linux操作环境,或者从uni

Android NDK开发环境配置

点击Project->Properties->Builders->New,新建立一个Builder.在弹出的对话框上面点击Program 在弹出的对话框[Edit Configuration]中,配置选项卡[Main]:Location中需要填入nkd-build.cmd的路径(NDK安装目录下).Working Diretcoty中需要填入TestNDK的工程根目录. 配置选项卡[Refresh]: 勾选"Refresh resources upon completion&q

NDK编译环境配置教程

1.第一步配置环境 新建C++ project--> 选中projectType为Empty Project-->Android GCC 第二步: Propertes-->C/C++ General -->Paths and Symbols --> add-->D:\FirefoxDownload\android-ndk-r8-windows\android-ndk-r8\platforms\android-14\arch-x86\usr\include -->A

NDK开发环境配置-AndroidStudio

参考文章http://ph0b.com/android-studio-gradle-and-ndk-integration/ 看了上面的文章之后对于AndroidStudio集成NDK生成的so动态库有了很简单的解决方案,其他的东西暂时没有很难的东西. 因此我们首先就需要生成so文件,按照hello-jni示例项目中的Android.mk和Application.mk Makefile配置文件来构建即可,使用根据javah自动生成的.h文件创建.c文件,所有文件都在jni目录下: 各个文件的内容

一定能成功的Android NDK环境配置教程

前言在 Android 开发中,使用 NDK 开发的需求正逐渐增大但在 Android 使用 NDK 前需要进行 相关环境配置本文主要讲解 在 Mac 情况下的 Android NDK 配置,希望你们会喜欢1. 步骤说明下面,我将一步步讲解如何进行 NDK 环境配置. 2. 步骤讲解步骤1. 下载 Android NDK 工具包 官网下载地址 ,注意 科学 上网本文采用的 Android NDK 版本是: android-ndk-r14b-darwin-x86_64步骤2: 解压 NDK包注:解

Opencv for Android 环境配置篇~简直丧心病狂

由于暑假要搞点什么东西,参加比赛,虽然不知道其他组员都在干啥,俺还是默默的把环境给配了一下~但是我想说这简直丧心病狂,要配的东西敢不敢更多一点!!! 1.要搞手机应用,Android环境得搭好呗,基本上都能搭好,无非就是eclipse.JDK.SDK.CDT.ADT,就是ADT这家伙有点闹心,谁叫Android的官网又打不开鸟呢~ 2.NDK+Cygdrive环境配置: NDK的话,去百度,然后荡一个,r8的就差不多了吧,好像r9的更潮,不过我怕没大神指导,自己不会配: Cygdrive的话,去

xshell远程终端操作Ubuntu server安装LAMP环境之最详细笔记之二PHP开发环境配置

前言: 昨天学会了安装server,今天试着通过远程终端xshell来安装LAMP,搭配一下开发环境,也有集成环境可以一键安装使用,还是瞎折腾一下,手动一步一步搭建一下这个开发环境. 接上一篇:ubuntu server 14.04 LTS下搭建LAMP环境之最详细笔记之一U盘安装双系统本文原创博客地址:http://www.cnblogs.com/unofficial官网地址:www.pushself.com) 准备: 在windows系统上首先需要安装xhsell,具体下载地址可以搜一下,安