NDK 入门(二):C 与 JAVA 互相调用 demo
来源:互联网 发布:python getopt usage 编辑:程序博客网 时间:2024/05/16 02:04
编译方法参见前一篇博文。
这里主要写给个demo 展示 C与Java 互相调用的方法, 功能比较没有意义,就是Java 调用 C, C 里面的函数再反过来调用Java。
Java 工程:
package com.ndk;import java.security.PublicKey;import android.app.Activity;import android.os.Bundle;import android.widget.TextView;public class NdkAdvanceActivity extends Activity { private TextView mTextView; private StringBuilder mStringBuilder; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mTextView = (TextView) findViewById(R.id.text); mStringBuilder = new StringBuilder(); setTestView(); } public void setTestView() { mStringBuilder.append(JavaCallC()).append("\n"); mTextView.setText(mStringBuilder.toString()); } public void cCallJava() { mStringBuilder.append("C Call Java Success!").append("\n"); } public native String JavaCallC(); static { System.loadLibrary("ndk-advance"); } }
#include <string.h>#include <jni.h>jstring JNICALL Java_com_ndk_NdkAdvanceActivity_JavaCallC (JNIEnv *env, jobject obj){ jclass cls; jmethodID mid; cls = (*env)->GetObjectClass(env, obj); mid = (*env)->GetMethodID(env, cls, "cCallJava", "()V"); (*env)->CallVoidMethod(env, obj, mid); return (*env)->NewStringUTF(env, "Java Call C success!");}
Android.mk :
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := ndk-advanceLOCAL_SRC_FILES := ndk-advance.cinclude $(BUILD_SHARED_LIBRARY)
- NDK 入门(二):C 与 JAVA 互相调用 demo
- Android NDK开发 Java与C互相调用实例详解
- Android NDK开发----- Java与C互相调用实例详解
- Android NDK开发----- Java与C互相调用实例详解
- Android Ndk中C与JAVA之间的互相调用
- Android NDK开发(1)----- Java与C互相调用实例详解
- Android NDK开发(1)----- Java与C互相调用实例详解
- Android NDK开发(1)----- Java与C互相调用实例详解
- Android NDK开发(1)----- Java与C互相调用实例详解
- Android NDK开发(1)----- Java与C互相调用实例详解
- Android NDK开发(1)----- Java与C互相调用实例详解
- Android NDK开发(1)----- Java与C互相调用实例详解 .
- Android NDK开发(1)----- Java与C互相调用实例详解
- Android NDK开发(1)----- Java与C互相调用实例详解
- Android NDK开发(1)----- Java与C互相调用实例详解
- Android NDK开发(1)----- Java与C互相调用实例详解
- Android NDK开发(1)----- Java与C互相调用实例详解
- NDK学习笔记(2)——C与java之间的互相调用
- 构建高性能web站点
- PS模块 更改系统、用户状态的函数
- 顶级PHP大师的开发原则
- Varnish Glossary(varnish术语)
- 使用虚基数消除多重继承中的二义性
- NDK 入门(二):C 与 JAVA 互相调用 demo
- nodeJS入门例子一—事件(Event)
- 程序员如何自我超越
- bat中使用相对路径的问题
- Android深入浅出之Audio第三部分Audio Policy[1]一
- HTML中A标签target属性
- 源代码审查工具 - Understand
- C# While循环实例
- Spring强制使用CGLIB代理事务