Android_10_Java调用C代码(纯手工制作)

本文详细介绍了如何在Android应用中通过Java调用C代码的步骤,包括创建JNI目录和C文件,定义本地方法,编写C代码,配置Android.mk和Application.mk文件,以及编译和加载生成的库。通过示例展示了Java方法与C函数的对应关系,以及如何处理不同CPU架构的兼容性问题。
摘要由CSDN通过智能技术生成

第一步:

在工程目录下创建一个文件夹,名为 jni ,然后在jni目录下创建一个c文件,例如我的c文件名为:Hello.c


第二步:

在Java程序中定义一个本地方法,这个方法是要我们用c来实现的,如:

package com.itheima.helloworld1;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
    }


    public void click(View v){
    	Toast.makeText(this, helloFromC(), 0).show();
    }
    
    //定义一个本地方法,方法体由c语言实现
    public native String helloFromC();
    
}

注:public native String helloFromC()就是我们要用c去实现的方法了,

而关于这个c方法的调用就是:Toast.makeText(this, helloFromC(), 0).show();


第三步:

在hello.c中编写c文件,如:

#include <stdio.h>
#include <stdlib.h>
#include <jni.h>

jstring Java_com_itheima_helloworld1_MainActivity_helloFromC(JNIEnv* env, jobject obj){
	//c语言的字符串
	char* cstr = "hello from c";
	//把C语言的字符串转换成java的字符串
	// jstring     (*NewStringUTF)(JNIEnv*, const char*);
	jstring jstr = (*env)->NewStringUTF(env, cstr);
	
	return jstr;
}
注:关于c代码的编写

1>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值