• Android与JNI(一) ---- Java调用C 静态调用


    第一、通过eclipse新建一个工程名为HelloJni的android工程,并编译。

    第二、右键工程-->Android Tools --> Add Native Support,出现如下界面,名字默认就可以了,点击finish。

    第三、我们在MainActivity类中加入要调用的native代码

    public native String  stringFromJNI();
    

     以及加入我们要调用的lib库,名字就是上面图中的名字了。

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

    第四、用eclipse编译工程,使其在工程bin/classes目录下生成class文件

    然后在工程根目录的src执行 

    javah -d ../jni com.example.hellojni.MainActivity

    其中-d 表示生产目录,这时候jni目录会生产com_example_hellojni_MainActivity.h头文件。

    在jni目录下创建com_example_hellojni_MainActivity.c文件,并实现stringFromJNI方法

    #include <string.h>
    #include <jni.h>
    #include "com_example_hellojni_MainActivity.h"
    
    /* This is a trivial JNI example where we use a native method
     * to return a new VM String. See the corresponding Java source
     * file located at:
     *
     *   src/com/example/hellojni/MainActivity.java
     */
    jstring Java_com_example_hellojni_MainActivity_stringFromJNI(JNIEnv *env, jobject this)
    {
        return (*env)->NewStringUTF(env, "Hello from JNI !");
    }
    

    将com_example_hellojni_MainActivity.c添加到jni的Android.mk中,同时删除HelloJni.cpp文件

    最后我们添加Toast来显示stringFromJNI返回的文本。

    Toast.makeText(getApplicationContext(), str, 90000000).show();

    OK,接下去就是编译安装包看下效果了。

    工程源码下载:

    http://files.cnblogs.com/chuanwei-zhang/HelloJni.zip

    最后附上一篇非常不错的文章:http://www.cnblogs.com/eddy-he/archive/2012/08/08/2628676.html

  • 相关阅读:
    【8-21】java学习笔记03
    【每天一点点】
    【8-20】java学习笔记02
    【8-19】java学习笔记01
    【8-18】JS学习01
    【8-17】HTML测试
    Selenium之WebDriverWait
    Selenium之XPATH定位方法
    Fiddler用法
    微服务架构系统的测试
  • 原文地址:https://www.cnblogs.com/chuanwei-zhang/p/3929716.html
Copyright © 2020-2023  润新知