在JAVA中调用C步骤

1java中创建本地方法;

 

public class MainActivity extends Activity {

 

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

 

/**

 * 按钮点击事件

 * @param v

 */

public void click(View v) {

}

/**

 * 本地方法

 * @return

 */

public native  String sayHello();

}

2.eclipse中配置ndk路径:window->preferences->andorid->ndk,配置ndk的根目录.

3.android工程添加本地支持:右键工程->android tools->add native support..:

    会在工程根目录下生成jni文件夹,里面有mkc文件.(改名.c,mk文件里面的引用)

4.dos窗口中切换到工程src的目录下,执行javah 类的全名,生成头文件:   E:\

5.把生成的头文件拖到jni目录下,会报错

6.在工程中引入ndk的头文件(这头文件中定义了一些类型和变量,在我们的c文件中使用到了这些类型和变量,所以需引入):

    右键工程->propertes->C/C++ General->paths and symbols->includes->add-file System,在里面添加:

    D:\develops\android-ndk-r9d\platforms\android-9\arch-arm\usr\include

7把头文件中的方法拷贝到c文件中,添加三个头文件在这个方法中传递参数,实现方法体;

 

#include <stdio.h>

#include <stdlib.h>

#include "com_itheimajavatoc_MainActivity.h"

JNIEXPORT jstring JNICALL Java_com_itheimajavatoc_MainActivity_sayHello(

JNIEnv * env, jobject obj) {

char* text = "I'm from C world!!!!";

 

jstring result = (*env)->NewStringUTF(env, text);

 

return result;

}

8 jni文件加入Application.mk文件

APP_ABI := all

9.选中工,点击上面的小锤子,生成动态库.

10.java中加载动态库,调用本地方法.

 

public class MainActivity extends Activity {

 

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

System.loadLibrary("JavaToC");

}

 

/**

 * 按钮点击事件

 * @param v

 */

public void click(View v) {

String result = sayHello();

Toast.makeText(getApplicationContext(), result, 0).show();

}

/**

 * 本地方法

 * @return

 */

public native  String sayHello();

}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值