基于Android Studio 的NDK之 “Hello,World!”

发布时间:2020-10-02 00:05:16 作者:breezy_yuan
来源:网络 阅读:2567
  1. 首先Studio中新建一个工程,默认就是这个样子:

    基于Android Studio 的NDK之 “Hello,World!”

  2. 在Project的local.properties文件中告知Android Studio你的ndk所在目录:

    注意':'和'\'要进行转义

    ndk.dir=D\:\\Android\\android-ndk-r10e

  3. 创建一个JNI文件(我放在一个单独的jni包中),简单的一个native方法add,计算两个整数相加的值:

    基于Android Studio 的NDK之 “Hello,World!”

  4. 接着我们就要写C层的代码了,在main文件夹下建立一个jni的子文件夹(跟java文件夹并列,Android会默认知道这事底层的代码源文件夹),声明头文件和源码文件:

    tips:可以使用javah -jni 'your jni java class with package name'来自动生成.h文件

    用法:打开命令行,切换到..\your project path\app\build\intermediates\classes\debug目录下,执行上述命令,然后把这个生成的.h文件拷贝到刚建立的jni目录下

  5. 建一个cpp文件,名称自己起名,我起名为math.cpp,实现头文件中声明的方法:

//
// Created by dell on 2015/9/10.
//

#include "math.h"

JNIEXPORT jint JNICALL Java_com_lbrant_jni_MathJNI_add
        (JNIEnv *env, jobject, jint a, jint b) {
    return a + b;
}

在gradle.properties中添加如下,不然编译器会提示错误:

android.useDeprecatedNdk=true

在app module中(注意不是项目根目录),配置ndk编译(这里只配置了moduleName和平台):

 defaultConfig {
    applicationId "com.lbrant.x_project"
    minSdkVersion 15
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"

    ndk {
        moduleName "math"
        abiFilters "armeabi", "armeabi-v7a", "x86"
    }
}

由于是JNI和应用层是在同一个工程中,直接运行系统会自动编译,生成Android.mk和对于so:

基于Android Studio 的NDK之 “Hello,World!”


推荐阅读:
  1. MAC下Android Studio 1.4编译构建Cocos2d-x 3.9之Android版本程序
  2. Android ndk开发

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

hello ndk android studio

上一篇:Angular中封装fancyBox(图片预览)遇到问题小结

下一篇:java中的可变参数使用方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》