android jni 学习之一 <资料转载>

先把自己找的资料贴在这里,感谢作者分享!

http://blog.csdn.net/jianguo_liao19840726/article/details/6719224

简而言之:

1 android(java)代码中的本地方法列表(c/c++ 库提供的API),示例如下:

public class DataProvider {

    private static final class DataProviderHolder {

        private static final DataProvider instance = new DataProvider();

    }

    private DataProvider() {
    }

    public static DataProvider getInstance() {

        return DataProviderHolder.instance;

    }

/*本地方法实例一*/
    public synchronized native int Operator(String deviceMac, int deviceType,
            int state);

/*本地方法实例二*/
    public synchronized native int OperatorCmd(String deviceMac,
            int deviceType, int cmd, int state);

/*本地方法实例三*/
    public synchronized native String OperatorCmdString(String deviceMac,
            int deviceType, int cmd, int state);

/*本地方法实例四*/
    public native int OpenTty(String serialPort);

/*开始呼唤上面列出来的本地实例*/
    public synchronized native String WriteDevice(String value,int type,int cmd,int val);

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

}
时间: 2024-11-08 06:59:37

android jni 学习之一 <资料转载>的相关文章

android jni 总复习(转载)

本文全文转载自:http://www.cnblogs.com/shuqingstudy/p/4909089.html,非常感谢 1 package com.test.androidjni; 2 3 import android.app.Activity; 4 import android.os.Bundle; 5 import android.util.Log; 6 import android.widget.TextView; 7 8 9 public class MainActivity e

Android JNI学习笔记(三)-编译文件Android.mk、Application.mk 与camke

1. 前言 在android2.2中,加入了cmake编译,而以前都是用Android.mk.Application.mk的,今天就来记录下,他们的配置选项. 2. Android.mk Android.mk在jni目录下,用于描述构建系统的源文件以及 shared libraries .文件格式如下: 以LOCAL_PATH变量开始 LOCAL_PATH := $(call my-dir) 紧接着是CLEAR_VARS变量 include $(CLEAR_VARS) 接下来LOCAL_MODU

Android JNI 学习笔记

JNI  是 Java Native Interface(Java 本地接口).JNI不是Android 专有的东西,他是从Java继承来的.但是 对于Android来说JNI至关重要,Android 作为一种嵌入式操作系统,有大量和驱动.硬件相关的功能都是用C/C++来实现的.可以说在Android中不管应用级还是系统级的开发都离不开JNI. Java语言的执行,离不开JVM,因此当需要在Java层中调用C/C++层时,需要先告诉JVM那个方法代表本地函数,伊基在哪里能找到这个函数,反之也一样

android JNI学习之一

执行System.loadLibrary()函数时,VM会反向调用*.so里的JNI_OnLoad()函数.用途有二:1. VM询问此*.so使用的JNI版本编号.2. VM要求*.so做一些初期设定工作(Initialization),例如登记<函数名称表>. •例如,在Android的jniload.so档案里,就提供了JNI_OnLoad()函数,其程序码片段为: /* com.misoo.counter.CounterNative.cpp */ #include <stdio.h

Android JNI学习笔记(四)-数据类型映射以及native调用java

1. 前言 前几篇学习了jni开发的基本流程.动态注册native函数以及相关编译文件的编写,咱们也算是知道了jni开发,但是还不够,今天咱们来学习下,java和jni的数据类型映射(说白了就是对应关系),以及如何在jni层调用java层的一些东西.偷偷告诉你们,这些全在jni.h文件里. 2. 数据类型映射 首先是我们的基本数据类型,其关系如下表描述这样. 上面关系的相关代码在jni.h的44-51行,如下 typedef unsigned char jboolean; /* unsigned

Android JNI 学习(一):JNI 简介

JNI 即 Java Native Interface 是 native 编程接口,它允许在Java虚拟机(VM)内运行Java代码与其他编程语言(主要是C和C++)编写的应用程序和库进行交互操作. JNI最重要的好处是它对底层Java VM的实现没有任何限制.因此,Java VM供应商可以添加对JNI的支持,而不会影响VM的其他部分.程序员可以编写一个native应用程序或库的版本,并期望它可以与支持JNI的所有Java VM一起使用. 本文主要将从以下几点讲述JNI相关的内容,用于我们了解J

推荐一些android开发学习的资料

网址: 1:http://v.youku.com/v_show/id_XMTgwMTQ1MTgw.html 2:http://mars.apkbus.com/ 3:http://wenku.baidu.com/link?url=fc_8YrZ0DhsJLdmGvWbBZa2UXuadn6O_83lsUb1hyEkqPEojHupwAcc5_T7BZpYSlHqb9ktr7hjchtHf3J3Uy3nXLvgTNU6Xo-a5L8GWryS 通过webservice与android实现通信(C#与

Android JNI 学习(三):JNI 数据类型和数据结构

本文我们来讨论一下JNI如何将Java类型映射到本机C类型. 一.基本数据类型 如下图表整理了Java基本类型和native对应的关系: Java类型 Native类型 描述 boolean jboolean unsigned 8 bits byte jbyte signed 8 bits char jchar unsigned 16 bits short jshort signed 16 bits int jint signed 32 bits long jlong signed 64 bit

Android JNI 学习(六):JNI 接口整理 — Object Operations Api

一.AllocObject jobjectAllocObject(JNIEnv *env, jclass clazz); 分配新 Java 对象而不调用该对象的任何构造函数.返回该对象的引用. clazz 参数务必不要引用数组类. 参数: env:JNI 接口指针. clazz:Java 类对象. 返回值: 返回 Java 对象.如果无法构造该对象,则返回NULL. 抛出: InstantiationException:如果该类为一个接口或抽象类. OutOfMemoryError:如果系统内存