Android之ndk(hello from c)

来源:互联网 发布:陌陌站街用什么软件 编辑:程序博客网 时间:2024/06/15 06:45

处理器:x86,arm,mips

在src/main目录下创建一个文件夹jni,在文件夹下创建一个C文件Hello.c

这里写图片描述

//// Created by Administrator on 2016/8/30.//#include<stdio.h>#include<stdlib.h>#include<jni.h>#include "string.h"//Java+包名+类名+方法名        jstring Java_com_yang_yin_yinyangapplication_MainActivity_stringFromJNI(JNIEnv* env,jobject obj){       //     char arr[] = "heello from c";        //c语言的字符串        char *cstr= "hello from c";        //把C语言的字符串转换为java字符串        jstring jstr = (*env)->NewStringUTF(env,cstr);        //jstring jstr = (*(*env)).NewStringUTF(env,cstr);        //com.yang.yin.yinyangapplication        return jstr;}

再看Activity类中调用

public class MainActivity extends Activity {    static {        System.loadLibrary("hello");    }    @Bind(R.id.textView)    TextView textView;    @Bind(R.id.button)    Button button;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ButterKnife.bind(this);    }    @OnClick(R.id.button)    public void onClick() {        textView.setText(stringFromJNI());    }    //定义一个本地方法,方法体由c语言实现       public native String stringFromJNI();}

make一下工程就会生成相应的so文件
这里写图片描述

这里写图片描述

相关配置~

apply plugin: 'com.android.application'android {    compileSdkVersion 23    buildToolsVersion "23.0.3"    defaultConfig {        applicationId "com.yang.yin.yinyangapplication"        minSdkVersion 10        targetSdkVersion 23        versionCode 1        versionName "1.0"        ndk{            moduleName "hello"//生成so的库文件名            ldLibs "log","z","m"            abiFilters "armeabi","x86","armeabi-v7a"        }    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }}dependencies {    compile fileTree(dir: 'libs', include: ['*.jar'])    testCompile 'junit:junit:4.12'    compile 'com.android.support:appcompat-v7:23.4.0'    compile 'com.jakewharton:butterknife:7.0.0'}

效果
这里写图片描述
点击后~

这里写图片描述

终于可以用C写android了是不是很兴奋~

0 0
原创粉丝点击