NDK第一个程序

以一个简单的例子,写一个最简单的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-19
APP_STL   := gnustl_shared
include $(CLEAR_VARS)
TARGET_PLATFORM := android-3
LOCAL_MODULE    := hello   #库
LOCAL_SRC_FILES := hello.c #库的名称
LOCAL_LDLIBS    := -llog
include $(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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值