Android Studio集成NDK开发环境

这几天需要使用C语言在底层编译,所以就打算在Android studio中打造可以编译C的环境,毕竟使用Android studio久了,就不怎么想用Eclipse开发了
废话不多说,直接来看一波集成过程
第一步:

这个就是我创建的一个普通的Android项目的列表

第二步:
进入Android studio的SDK Location
具体方式:File->Project Structure->SDK Location



第三步:
选择你的NDK location:


推荐尽量从网上单独下载NDK,不要在SDK Manager里面下载,有时候在里面下载的会出现问题,我就出现了,我也不知道什么原因,有大神知道的话,可以留言告诉下在下,抱拳了 老铁
这是我的ndk:
http://pan.baidu.com/s/1hrPPquS 密码:qcud
如果不知道怎么使用的话,直接百度吧,度娘有什么多的解释

第四步:
在你那个MainActivity中写代码:
public native String getString ();
这个时候需要来一波注意了,MainActivity不能继承与AppCompatActivity这个类,而需要继承与Activity这个类,我就是被这个坑给坑了一天多的时间,果然太恶心了这东西
然后方法名会报红色,这个时候不要紧张,build project一下,生成MainActivity类的.class文件
具体位置
形成这些要干啥呢,不要紧张,继续看下一步

第五步:
打开你的Android studio命令窗口,也就是
这个东西.如果你不懂linux命令的话,你就直接复制粘贴,更改自己的路径 就可以了

然后在上面执行:
cd app\src\main //进入main文件夹

接下来使用javah命令,生成对应的头文件:
javag -d -jni -classpath D:\adt-bundle-windows-x86_64-20140321\sdk\platforms\android-22\android.jar;../../build/intermediates/classes/debug com.example.ios.studentday07.MainActivity

注意了:android.jar这个东西,需要换成你电脑上sdk中android..jar的路径,然后最后那个是包名.类名,就是你需要执行c中的方法的那个类的包名和类名

然后你会发现你的目录中自动的出现了一个jni文件夹,文件夹下有个你 包名.类名.h 的文件

这个就表示你生成头文件成功了

第六步:
在你的jni文件夹下面创建一个c/c++文件类型,然后你就可以在里面实现你的c语言代码了
比如我就在里面写了:
#include "com_example_ios_studentday07_MainActivity.h"

//#include <android/log.h>
//#define LOG_TAG "System.out"
//#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
#pragma clang diagnostic push
#pragma ide diagnostic ignored "CannotResolve"
//#define LOGINFO(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)
JNIEXPORT jstring JNICALL Java_com_example_ios_studentday07_MainActivity_getString
(JNIEnv * env, jobject obj){
// LOGINFO("LOGINFO");
return (*env)-> NewStringUTF (env, "NDK 测试成功" );
}
#pragma clang diagnostic pop

然后,现在流程差不多了.

第七步:
你想要运行起来,现在还不行咯
你需要在你的Module下面写上这样的一些东西,虽然我也不懂:


第八步(最后一步):
需要在事先在加载你刚才创建的.so库:
比如我这个demo中:
static {
System. loadLibrary ( "MyJni" );
}

最后你的MainActivity中写代码吧!!



这个就可以加载c语言了


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值