jni 使用java 调用C代码

交叉编译   怎么用java代码调用c代码 

armeabi  // arme cpu   anroid binary interface

// 1 定义一个c方法的接口   相当于在java代码中定义了一个接口 接口的实现方法是C语言实现的
public native String helloWorldFromC();
// // 2 步 实现C代码



方法名 严格按照jni的规范 jstring Java_com_example_helloworldformc_MainActivity_helloWorldFromC(JNIEnv* env,jobject obj)   

/ andrond.mk   告诉编译器 如何把c代码打包成函数库
// 3 生成 .mk文件
// 4步 把c代码 打包成函数库  用到了安装的环境

// 5 步在java代码中 引入库函数 
static{
System.loadLibrary("hello");// 注意事项 去掉前面的lib 后面的.so

}
//6  使用方法


1 自动生成 java本地方法对应的c代码的方法名  javah 指令 +全雷鸣
1.6  class  
C:\workspace\HelloWorldFromC2\bin\classes
1.7  src
C:\workspace\HelloWorldFromC2\src 


Anroid.mk 文件 
LOCAL_PATH := $(call my-dir)   // 返回当前c代码目录
include $(CLEAR_VARS)        // 清楚了所有 已local 开头的配置文件 唯独不清楚LOCAL_PATH

LOCAL_MODULE    := hello   // 库函数的名字  严格遵守makefile 格式  lib  .so  如果前面加lib 不会自动生成了
   LOCAL_SRC_FILES := Hello.c
include $(BUILD_SHARED_LIBRARY)  // 加入库函数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值