Android Studio集成NDK开发环境
来源:互联网 发布:mysql navicat 破解版 编辑:程序博客网 时间:2024/06/05 09:04
这几天需要使用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 nativeStringgetString();
这个时候需要来一波注意了,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语言了
demo地址:http://download.csdn.net/detail/a376051132/9801631
0 0
- Android Studio集成NDK开发环境
- 【修正版】Android Studio集成NDK环境
- Eclipse集成Android NDK开发环境
- Eclipse集成Android NDK开发环境
- Android Studio集成NDK
- 【NDK开发】eclipse集成环境使用NDK开发android
- 【Android】Android Studio配置ndk开发环境
- Android Studio开发配置NDK环境
- android-studio(1):配置NDK开发环境
- Android studio之配置NDK开发环境
- Android Studio NDK 开发环境搭建
- Android Studio 2.0 NDK开发环境搭建
- Android Studio NDK开发环境配置
- android studio配置ndk开发环境
- android studio NDK开发环境配置
- 环境配置之Android Studio开发NDK
- Android Studio 2.2 NDK开发环境搭建
- NDK开发 Android Studio环境搭建
- centos下编译安装xtrabackup2.4.6
- RecyclerView
- MySQL---索引详解
- 有向图的Dijkstra算法
- Lua和C++交互详细总结
- Android Studio集成NDK开发环境
- JAVA基础
- UESTC 844 程序设计竞赛 【维护值稍多的线段树】
- 响应式布局开发 -3
- 一次递归带来的的stackOverFlow
- Java垃圾收集算法
- java之匿名内部类中的多态
- JVM使用SIGSEGV优化空值检测
- Struts2的配置 struts.xml Action详解