(2016-10-28)Android-NDK学习笔记(一)生成简单的SO文件

4 篇文章 0 订阅

本次讲的是在eclipse环境下编译的项目,安卓丢丢,请另寻他法.

1,先开始下一个android-ndk-r10e-windows-x86_64文件;

2,解压

3,配置环境变量,跟java一样。

在cmd中可以运行ndk-build就可以了。

第一步在你的android创建一个native方法。

public static native int getIntFromC();

第二步然后运用cmd命令行。在你的项目根目录下。运行下面的代码。

javah -classpath bin/classes;F:\sdk\platforms\android-20\and
roid.jar -d jni com.liuyun.hellondk.MainActivity

第三步在你的jni目录下。创建一个c语言的文件。比如说hello.c。在你的c文件中可以这样写。

#include<stdil.h>
#include<stdlib.h>
#include"com_liuyun_hellondk_MainActivity.h"


JNIEXPORT jstring JNICALL Java_com_liuyun_hellondk_MainActivity_getStringFromC
  (JNIEnv *env, jclass jclass){

return (*env)->NewStringUTF(env,"HEIIIIIIIIIIIIIIIIIIIIIIII");

}

这段代码的意思是从c语言里返回一个字符串。

第四步在jni目录下。创建一个Android.mk文件。在你的Android.mk文件中可以这样写。

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)


//这里是你要生成的so文件的名字。
LOCAL_MODULE    := hello


//这里是你的c语言文件的名字。
LOCAL_SRC_FILES := hello.c

include $(BUILD_SHARED_LIBRARY)

第五步在我们写好的安卓项目目录下运行cmd,然后用,ndk-build进行编译.刷新我们的目录就能得到我们的so文件.那么,怎样调用我们的so文件呢!

然后在我们要调用的类里面调用我们的静态代码块儿.

static{
//这里面的hello就是上面生成的so文件的名字,改了名字也没有用,要是我们生成的so文件的名字
        System.loadLibrary("hello");
    }

最终我们通过getIntFromC();方法,就可以得到我们在c语言里返回的数据了这样就实现了java调用c语言的过程这只是一个简单的过程,接下来我们要简化我们的操作.

本次讲的是在eclipse环境下编译的项目,安卓丢丢,请另寻他法.

首先我们在下图可以看到配置一个ndk的路径

这里写图片描述

然后在我们的项目下右键Properties新建一个Builder,当然我这里已经创建好了

这里写图片描述
这里写图片描述

接下来的配置

这里写图片描述

这里写图片描述

接下来点击ok,so文件将会自动编译好你可以更改你C文件里的代码,再次运行将会得到不一样的结果哟.这还是比较简单的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值