免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2057 | 回复: 0
打印 上一主题 下一主题

android JNI测试实例 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-29 18:23 |只看该作者 |倒序浏览

                昨天做的,今天记录一下供同志们参考。
能够实现
  • java调用C API
  • C 调用java API
  • C 异步调用java API,用于C中做异步处理过程(例如信号处理句柄,异步事件处理)中需要回调java api的情况,示例为定时器异步处理调用java的情况。


下载android-ndk-1.5_r1-linux-x86.zip也就是 android 所谓的NDK, 下载地址以及配置方法见我其他的文章。
在 sources目录下做librfid目录,目录里边的文件拷贝自 sources/examples/tow-libs/进行修改配置, 这里边主要是完成和硬件相关的C库的实现(JNI接口文件和通用C接口)
               
                #Android.mk
#========================================================================
LOCAL_PATH:= $(call my-dir)
# static lib just for func
#
include $(CLEAR_VARS)
LOCAL_MODULE    := librfidfunc
LOCAL_SRC_FILES := func.c
include $(BUILD_STATIC_LIBRARY)
# dync lib of rfid included jni
#
include $(CLEAR_VARS)
LOCAL_MODULE    := librfid
LOCAL_SRC_FILES := jni.c
LOCAL_STATIC_LIBRARIES := librfidfunc
LOCAL_SHARED_LIBRARIES := liblog
include $(BUILD_SHARED_LIBRARY)
#func.c
#========================================================================
#include string.h>
#include stdio.h>
#include "func.h"
const char *rfid_read()
{
    static int idx=10000;
    static char buff[100];
    memset(buff, 0, sizeof(100));
   
    sprintf(buff, "cardno=[%08x]", idx++);
    return buff;
}
int rfid_daemon()
{
    return 1001;
}
void rfid_callback()
{
   
}
#func.h
#ifndef FUNC_H
#define FUNC_H
extern const char *rfid_read();
extern int rfid_daemon();
extern void rfid_callback();
#jni.c
#endif /* FUNC_H */
#include "func.h"
#include jni.h>
#include android/log.h>
#include string.h>
#include stdio.h>
#include stdlib.h>
#include unistd.h>
#include signal.h>
#include time.h>
#include stdbool.h>
JNIEXPORT jstring JNICALL
Java_com_xino_rfid_RfidApp_doRead( JNIEnv*  env, jobject  thiz )
{
    return (*env)->NewStringUTF(env, rfid_read());
}
JNIEXPORT jint JNICALL
Java_com_xino_rfid_RfidApp_doDaemon( JNIEnv*  env, jobject  thiz )
{
    return rfid_daemon();
}
static int idx=0;
static char buff[100];
/*  //
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP