NDK第一个程序

来源:互联网 发布:最新java培训视频教程 编辑:程序博客网 时间:2024/06/15 07:27

以一个简单的例子,写一个最简单的NDK小Demo,理解NDK。
可以参考,对于AS的NDK工程怎么搭建,特别是环境:
使用gradle-experimental插件构建NDK工程
超级简单的JNI实现,无需命令行
超级简单的JNI实现

Demo的用意:在程序中调用C的一个方法。
要点:

  • AS的NDK环境搭建
  • Java中调用C代码中的方法
  • 生产.so文件

环境:几个重要配置

  • module中build.gradle 重要的两个配置:ndk、sourceSets.main
  ndk {            moduleName "hello"            stl "gnustl_static" //   C++ runtime support library,共有九种            abiFilters "armeabi", "armeabi-v7a"            ldLibs "log", "android"        }
 sourceSets.main {        jni.srcDirs = []        jniLibs.srcDir "src/main/libs"    }

在gradle.properties中添加:

android.useDeprecatedNdk=true

这里写图片描述

这里写图片描述

- 配置Android.mk、写.c 的文件htllo.c、在Java代码中调用C方法
Android.mk文件:

LOCAL_PATH := $(call my-dir)APP_PLATFORM := android-19APP_STL   := gnustl_sharedinclude $(CLEAR_VARS)TARGET_PLATFORM := android-3LOCAL_MODULE    := hello   #库LOCAL_SRC_FILES := hello.c #库的名称LOCAL_LDLIBS    := -lloginclude $(BUILD_SHARED_LIBRARY)

hello.c中的代码:注意格式,此次简单了解环境配置和简单调用

#include <string.h>#include <jni.h>jstring Java_com_robot_wfc_ndkfirst_MainActivity_getText(JNIEnv* env,jobject obj){    return (*env)->NewStringUTF(env,"hello ndk!");}

在Java代码中调用C代码中的内容[调用方法]
这里写图片描述

- 生成.so文件
我们在Java中调用C中的代码,加载动态库,动态库的话需要.so文件。那么生产.so文件。 看看本文顶部的推荐的文章。ndk-build 即可。

Demo下载

0 0