`
cyhcheng
  • 浏览: 59818 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

NDK入门

 
阅读更多
  • 下载Android SDK、NDK,配置环境变量
  • 新建一个android项目,在项目根目录下创建一个文件夹jni,创建Android.mk文件:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := native-jni
LOCAL_SRC_FILES := native.c

LOCAL_LDLIBS    := -llog
include $(BUILD_SHARED_LIBRARY)

 

  • 创建Java代码:

package com.example.simplendkdemo.util;

public class Util {
    public native String stringFromJNI();

    public native int stringToJNI(String val);

    static {
        System.loadLibrary("native-jni");
    }
}

  • 生成头文件:

从shell模式下,切换到项目根目录,执行命令:

javah -classpath ./bin/classes -d jni/ com.example.simplendkdemo.util.Util

 

  • 创建native.c文件,根据头文件编辑代码:

#include <string.h>
#include <jni.h>
#include <android/log.h>

#define DEBUG_TAG "NDK_SimpleNDKDemo_Util"

jstring Java_com_example_simplendkdemo_util_Util_stringFromJNI(JNIEnv* env, jobject thiz )
{
  return (*env)->NewStringUTF(env, "Hello from JNI !");
}

jint Java_com_example_simplendkdemo_util_Util_stringToJNI(JNIEnv* env, jobject thiz, jstring str_val)
{
  jint return_i = 0;
  const char *str = (*env)->GetStringUTFChars(env, str_val, 0);
  __android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "Print java String: %s", str);
  (*env)->ReleaseStringUTFChars(env, str_val, str);
  return return_i;
}

  • 编译c代码,生成库文件:

从shell模式下,切换到项目/jni目录,执行命令:

ndk-build

 

  • 编写java代码调用本地方法

 

分享到:
评论

相关推荐

    androidndk入门.pdf

    "Android NDK 入门指南" Android NDK (Native Development Kit) 是 Android 平台中的一款工具集,允许开发者使用 C 语言和 C++ 语言编写原生代码,并将其集成到 Java 应用程序中。通过使用 NDK,开发者可以充分利用...

    安卓app开发之NDK入门教程,JAVA代码通过JNI接口调用NDK代码(C语言编写的linux android功能).zip

    安卓app开发之NDK入门教程,JAVA代码通过JNI接口调用NDK代码(C语言编写的linux android功能).zip

    Android NDK入门

    在文件列表中提到的`hello-jni`是一个典型的NDK入门示例。它通常包含一个简单的Java类,声明了一个`native`方法,以及对应的C/C++源代码,演示了如何使用JNI进行基本的交互。这个例子可以帮助你快速了解NDK的基本...

    AndroidNDK入门项目实战

    本资源提供了一个Android NDK入门项目实战,通过实例帮助初学者理解和掌握NDK的使用。 ### 1. NDK基础知识 - **NDK的用途**:主要用在需要高效计算或使用C/C++库的场景,如音频视频处理、游戏开发、加密算法等。 -...

    eclipse--java--NDK入门项目实战

    NDK入门项目实战NDK入门项目实战NDK入门项目实战NDK入门项目实战NDK入门项目实战

    Android ndk jni 史上最强NDK入门项目实战

    《Android NDK与JNI实战:史上最详尽的NDK入门指南》 在移动开发领域,Android NDK(Native Development Kit)和JNI(Java Native Interface)是开发者用来实现高性能计算、利用硬件加速或调用C/C++库的重要工具。...

    学习Android_NDK入门很简单

    《学习Android NDK入门很简单》这篇教程主要针对想要掌握Android NDK开发的初学者,旨在指导如何入门并开始使用NDK。NDK是Android开发中的一个重要工具,它允许开发者使用C/C++原生代码来编写部分应用,尤其适用于...

    Android NDK入门 实例 详解

    ### NDK实例:Android史上最强NDK入门项目实战 这个项目实战可能包括以下内容: 1. **Hello, World!**:编写一个简单的原生库,实现Java调用并打印"Hello, World!"。 2. **计算示例**:使用C/C++进行数学计算,...

    史上最强NDK入门项目实战

    本项目实战“史上最强NDK入门项目实战”提供了一个理想的平台,帮助初学者快速掌握NDK开发的基本技巧。 1. **NDK简介** NDK是Google提供的一个开源工具集,用于编译原生代码并将其集成到Android应用中。它包含了...

    android NDK 入门项目 实战 详细文档

    压缩包中的“史上最强NDK入门项目实战.doc”很可能是详细的教程文档,包含每个步骤的指导和解释;“sources”可能包含了示例项目的源代码;“apps”可能是一些示例应用,用来展示NDK的使用;“myjni”可能是一个特定...

    android NDK 入门例子

    这个"android NDK 入门例子"很可能是为了帮助初学者理解和掌握NDK的基本用法。NDK的主要用途是提高性能、利用硬件加速、以及复用已有的C/C++库。 首先,安装Android NDK是入门的第一步。通常,你可以通过Android ...

    史上最强NDK入门项目实战.zip

    《史上最强NDK入门项目实战》是一份专为IT初学者设计的压缩包资源,旨在帮助用户快速掌握Android NDK的使用技巧。NDK(Native Development Kit)是Android平台的一个重要工具,允许开发者使用C/C++等原生代码编写...

    eclipse NDK入门实例

    这是一个ndk入门实例,使用eclipse实现的,很简单且具有参考意义 参考黄书《Android应用安全防护和逆向分析》第二章Android NDK开发2.1.1节以及百度经验 Android NDK入门开发实例...

    Android应用源码史上最强NDK入门项目实战.zip

    在"史上最强NDK入门项目实战"中,你可能会学习到如何: 1. 使用JNI调用C/C++代码进行数学运算或算法实现。 2. 使用NDK进行音频、视频编码解码。 3. 利用OpenGL ES进行图形渲染,提升游戏性能。 4. 实现与硬件传感器...

    Android项目史上最强NDK入门项目实战.rar

    本项目“Android项目史上最强NDK入门项目实战”旨在帮助初学者深入理解NDK的使用,并通过实际操作来提升技能。 首先,我们来了解一下NDK的核心概念: 1. **JNI(Java Native Interface)**:是Java平台标准的一...

    AndroidStudioNDK入门开发

    Android Studio NDK入门开发是Android应用开发中的一个重要领域,它允许开发者使用原生代码(如C++、C)来编写部分应用程序,以实现高性能计算、图形处理或利用硬件加速等功能。NDK(Native Development Kit)是...

    史上最强NDK入门项目实战.rar

    【标题解析】:“史上最强NDK入门项目实战.rar”这个标题暗示了这是一个关于NDK(Native Development Kit)的初级教程项目,目标是帮助初学者掌握Android应用中的原生代码开发。NDK是Android开发中的一部分,它允许...

Global site tag (gtag.js) - Google Analytics