Android JNI编程实践:第一个JNI程序

泡在网上的日子 / 文 发表于2013-04-15 22:47 次阅读 Android,JNI

先配置NDK环境,网上教程很多。安装cygwin 。

NDK路径D:\cygwin\home\Administrator 编辑.bash_profile这个文件

添加字段:

NDK_ROOT=/cygdrive/d/android/android-ndk-r8b
export NDK_ROOT

测试是否配置成功;

开始建立第一个TextJNI

创建Android工程 TextJNI ,

第一步 :创建一个类

package com.example.textjni;
public class TextJNI
{
    static {
        System.loadLibrary("jniinterface");
    }
 public static native int getInt();
 public static native String  getString();
}

第二步:生成 C++中的 .h文件

在工程中新建jni文件夹,把生成的文件夹复制到jni文件下面

第三步 :现在开始写C++代码和android.mk文件

cpp 的代码如下

#include"com_example_textjni_TextJNI.h"
#include <stdio.h>
#include <stdlib.h>
                                              
int sum ()
{
    int x,y;
    x = 100 ;
    y = 1000;
    x += y;
    return x;
                                              
}//实现 com_example_textjni_textJNI.h 的方法
JNIEXPORT jint JNICALL Java_com_example_textjni_TextJNI_getInt
    (JNIEnv *, jclass)
{
                                              
    return sum();
}
JNIEXPORT jstring JNICALL Java_com_example_textjni_TextJNI_getString
    (JNIEnv *env, jclass)
{
                                              
    return env->NewStringUTF("HelloNDK");
}

android.mk文件

LOCAL_PATH := $(call my-dir)
        
include $(CLEAR_VARS)
        
LOCAL_MODULE    := jniinterface//so.文件名
LOCAL_SRC_FILES := com_example_textjni_TextJNI.cpp//C++类名
        
include $(BUILD_SHARED_LIBRARY)

最后一步,编译生成.so文件。

编译成功。。


收藏 赞 (3) 踩 (7)
上一篇:对于getScrollX() 的理解
今天写了一个Scroller的demo 遇到一个问题getScrollX 这个函数获得的是什么啊? 在网上没有找到答案 我就自己写 进行测试 我在一个ViewGroup中添加图片,然后进行Scroller 实际上ViewGroup的大小是超过屏幕的大小的 所以必然会隐藏了View 那么在触摸的时候屏
下一篇:安卓客户端开发:XML和JSON两种数据交换格式的比较
最近想给网站做客户端,因此在考虑到底是用xml还是Json的问题,刚好在网上读到了这篇文章。 目前,在web开发领域,主要的数据交换格式有XML和JSON,对于XML相信每一个web developer都不会感到陌生;相比之下,JSON可能对于一些新步入开发领域的新手会感到有