Android --NDK(C调Java)

Java代码:

package com.picovr.javacall;

import android.util.Log;


public class NativeMethord {

    static {

        System.loadLibrary("native_jni");
    }

    public void helloFromJava() {

        Log.i("NativeMethord", "helloFromJava");

    }

    public int add_number(int x, int y) {

        Log.i("NativeMethord", "add_number add :" + x + "  y:" + y);
        return x + y;
    }
}

C代码:

JNIEXPORT jint JNICALL Java_com_picovr_javacall_NativeMethord_addNumberCallback
        (JNIEnv *env, jobject jobj) {

    //1.得到字节码
    jclass jclass1 = (*env)->FindClass(env, "com/picovr/javacall/NativeMethord");

    //2.得到方法ID
    jmethodID jmethodID1 = (*env)->GetMethodID(env, jclass1, "add_number","(II)I");
    
    //3.实例化类
    jobject jobject1 = (*env)->AllocObject(env, jclass1);

    //调用方法
    jint result = (*env)->CallIntMethod(env, jobject1, jmethodID1, 20, 30);
    LogI("result :%d", result);
}

/*
 *调用java中的helloFromJava方法
 */
JNIEXPORT jint JNICALL Java_com_picovr_javacall_NativeMethord_getStringCallback
        (JNIEnv *env, jobject jobj) {

    //1.得到字节码
    jclass jclass1 = (*env)->FindClass(env, "com/picovr/javacall/NativeMethord");

    //2.得到方法ID
    jmethodID jmethodID1 = (*env)->GetMethodID(env, jclass1, "helloFromJava","()V");

    //3.实例化类
    jobject jobject1 = (*env)->AllocObject(env, jclass1);

    //调用方法
    (*env)->CallVoidMethod(env, jobject1, jmethodID1);
    LogI("Java_com_picovr_javacall_NativeMethord_getStringCallback");
}

android-ndk-r18是Android软件开发工具包(NDK)的一个版本。NDK允许开发者使用C、C++和其他本地语言来开发Android应用程序。使用NDK,开发者可以编写高性能和可移植的代码,并与Java代码进行混合编程。 android-ndk-r18是NDK的第18个稳定版本。这个版本包含了一些新的特性和改进,以提升开发者的开发体验和应用性能。其中一些特性包括: 1. 支持新的架构:android-ndk-r18引入了对新的CPU架构的支持,如ARMv8、x86和x86_64。开发者可以利用这些新的架构特性来编写更高效的代码,并为不同的平台提供最佳的性能。 2. CMake支持:这个版本引入了对CMake构建系统的支持。CMake是一个流行的开源构建系统,它可以帮助开发者更轻松地管理和构建复杂的项目。使用CMake,开发者可以更快速地配置和构建他们的NDK项目。 3. OpenMP支持:android-ndk-r18增加了对OpenMP并行程序设计的支持。OpenMP是一种面向共享内存多线程编程的API,可以帮助开发者更容易地编写和管理多线程应用程序。 4. LLVM更新:这个版本的NDK使用了最新的LLVM编译器,提供了更好的代码优化和性能。 总的来说,android-ndk-r18是一个强大的工具包,可以帮助开发者更好地开发高性能和可移植的Android应用程序。通过支持新的架构、引入CMake和OpenMP支持以及使用最新的LLVM编译器,这个版本提供了更多的工具和功能,以满足开发者的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值