美文网首页
JNI基础,Android调用C方法

JNI基础,Android调用C方法

作者: 刀放下好好说话 | 来源:发表于2019-04-25 19:19 被阅读0次

1. 编写native方法

    public class Hello {
        public static native String sayHi();
    }

系统会告知没有找到这个JNI方法,利用javah命令行生成这个c的头文件。

2. 进入目录app/src/main/java,执行javah -d ../jni com.rjp.fastframework.Hello

会在main下生成jni目录,同时生成com_rjp_fastframework_Hello.h文件。

3. 创建hello.c文件,编写c逻辑

从 .h 文件拷贝方法结构体,完成 c 逻辑。

4. 添加Android.mk和Application.mk文件

    LOCAL_PATH := $(call my-dir)
    
    include $(CLEAR_VARS)
    
    LOCAL_MODULE    := hello
    
    LOCAL_SRC_FILES := hello.c
    
    include $(BUILD_SHARED_LIBRARY)

Application.mk指定生成的so包类型

    APP_ABI := all

5. 配置gradle文件

    defaultConfig{
        ndk{
                moduleName "hello"
                abiFilters "armeabi", "armeabi-v7a" //没有起作用
           }
    }
    
    sourceSets{
        main{
            jni.srcDirs = [] 
            jniLibs.srcDir 'src/main/libs'
        }
    }

6. 进入jni目录,执行命令ndk-build

完成之后可以看到生成的so包了。使用静态代码块加载so包就可以调用c的方法了。

    static {
        System.loadLibrary("hello");
    }

相关文章

  • JNI基础,Android调用C方法

    1. 编写native方法 系统会告知没有找到这个JNI方法,利用javah命令行生成这个c的头文件。 2. 进入...

  • android-jni RegisterNatives注册本地方

    RegisterNatives的使用方法 在Android中通过jni调用本地方法(c/c++),通常使用java...

  • JNI与底层调用1

    JNI开发系列阅读 JNI与底层调用1 JNI与底层调用2 C/C++在Android开发中的应用 1. JNI ...

  • JNI开发学习之C反射调用java方法

    前面记录了调用C的学习笔记,现在来记录一下C反射调用Java的笔记。JNI开发学习之调用C方法 Android开...

  • Bitmap 图像灰度变换原理浅析

    上篇文章《拥抱 C/C++ : Android JNI 的使用》里提到调用 native 方法直接修改 bitma...

  • JNI与底层调用2

    JNI开发系列阅读 JNI与底层调用1 JNI与底层调用2 C/C++在Android开发中的应用 1. 掌握如何...

  • C/C++在Android开发中的应用

    JNI开发系列阅读 JNI与底层调用1 JNI与底层调用2 C/C++在Android开发中的应用 1. 前言 1...

  • jni反射java方法

    在我们写Android代码时,调用一个类中没有公开的方法,可以进行反射调用,而JNI开发中C++调用java的方法...

  • Android JNI学习手册

    一、JNI基础学习-JNI调用java原生方法 JNI调用java原生方法有四个重要的东西 一、class 类信息...

  • JNI基础-C调用java方法

    为了让自己更加熟悉开发流程,再把流程重新记录下。 1.打开eclipse 创建Java 工程 以C 获取java ...

网友评论

      本文标题:JNI基础,Android调用C方法

      本文链接:https://www.haomeiwen.com/subject/gghtnqtx.html