博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android ------- 运行官方NDK 案例HelloJNI
阅读量:6566 次
发布时间:2019-06-24

本文共 1439 字,大约阅读时间需要 4 分钟。

hot3.png

下载案例 HelloJNI ,导入工程到Eclipse,  可以直接下载我的案例,

源码下载:

目录图

 

使用命令生成  .so 文件,如下图

 

之后生成了很多文件

 

 

先来看看代码:

public class MainActivity extends Activity {    //静态代码块加载C语言库文件    static{        System.loadLibrary("hello");    }        /*     * 声明一个native方法     * 这个方法在Java中是没有实现的, 没有方法体     * 该方法需要使用C语言编写     */    public native String helloFromJNI();        @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        System.out.println(helloFromJNI());    }    public void onClick(View view) {        //点击按钮显示从jni调用得到的字符串信息        Toast.makeText(getApplicationContext(), helloFromJNI(), 1).show();    }    }

hello.c 文件 (Java利用JNI来调用C中的helloFromJNI方法)

#include 
/* * 方法名称规定 : Java_完整包名类名_方法名() * JNIEnv 指针 * * 参数介绍 : * env : 代表Java环境, 通过这个环境可以调用Java中的方法 * thiz : 代表调用JNI方法的对象, 即MainActivity对象 */jstring Java_com_zhangqie_ndkhelloworld_MainActivity_helloFromJNI(JNIEnv *env, jobject thiz){ /* * 调用 android-ndk-r12b\platforms\android-9\arch-arm\usr\include 中jni.h中的方法 * jni.h 中定义的方法 jstring (*NewStringUTF)(JNIEnv*, const char*); * * 可以根据路径找到该方法 * */ return (*env)->NewStringUTF(env, "hello world zhangqie");}

还有一个 Android.mk

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE    := helloLOCAL_SRC_FILES := hello.cinclude $(BUILD_SHARED_LIBRARY)

运行项目如图:

 

 

调用成功

 

转载于:https://my.oschina.net/zhangqie/blog/1801315

你可能感兴趣的文章
【JavaScript吉光片羽】遭遇IE8
查看>>
HTTP请求响应码
查看>>
http://www.fx114.net/qa-24-116329.aspx
查看>>
法总统:英国若“无协议脱欧” 将成最大输家
查看>>
阿里巴巴宣布开源限流降级中间件——Sentinel
查看>>
以OpenGL/ES视角介绍gfx-hal(Vulkan) Framebuffer接口使用
查看>>
我为什么选择使用容器?
查看>>
如何提高 Xcode 的编译速度
查看>>
杂篇-从整理文件发起的杂谈[-File-]
查看>>
【临实战】使用 Python 处理 Nginx 日志
查看>>
Python中最好用的命令行参数解析工具
查看>>
LeetCode14.最长公共前缀 JavaScript
查看>>
"Hotpatch"潜在的安全风险
查看>>
下载文件的15种方法
查看>>
CSS
查看>>
Netty源码解析1-Buffer
查看>>
动态网站的爬取
查看>>
小知识一、让Swift继续用OC#warning效果
查看>>
源码阅读:AFNetworking(八)——AFAutoPurgingImageCache
查看>>
数据库的基础知识
查看>>