android ndk编译jni的配置
来源:互联网 发布:网络伤感情歌2016 编辑:程序博客网 时间:2024/06/05 03:50
之前有人问到怎么使用Android Studio进行NDK开发,经过网上搜索,自己也尝试了一下,用Android Studio进行NDK开发比Eclipse更加灵活方便。
以下是翻译自 NDK With Android Studio 这篇文章。
在ADT中进行NDK开发非常简单,在Android Studio进行NDK开发也同样的容易。NDK开发主要有两中情况:一种是使用已经编译好的.so动态库;一种是使用c/c++源代码开发。下面分别介绍。
使用预编译好的.so动态库
你可以先用ndk-build工具先编译好.so,然后在Android Studio中引用。 这种情况比较件简单,只要把的.so文件放到相应的目录即可。如下所示:
- [module_name]
- [src]
- [main]
- [jniLibs]
- [armeabi]
- [armeabi-v7a]
- [x86]
- [mips]
注意 jniLibs
目录是放在 module
下面,在Android Studio中效果如下:
现在就可以在代码中直接载入此库了,如下:
String libName = "helloNDK"; // 库名, 注意没有前缀lib和后缀.so System.loadLibrary( libName );
如果你不想把.so放在上面的默认路径,可以在buid.gradle中进行如下配置:
android { // .. android settings .. sourceSets.main { jniLibs.srcDir 'src/main/myCppLibraries' // <-- 你的.so库的实际路径 }}
在Android Studio编译C/C++源代码
如果你不想像上面那样,在终端中用ndk-build编译.so,然后回到Android Studio中写Java代码。可以直接让Android Studio帮你编译。配置方法如下:
1.配置 ndk.dir
在 local.properties
添加如下配置:
sdk.dir=/path/to/android-sdk ndk.dir=/path/to/android-ndk
2.Gradle配置NDK模块
android { compileSdkVersion 19 buildToolsVersion "20.0.0" defaultConfig { applicationId "com.example.ndksample" minSdkVersion 9 targetSdkVersion 19 versionCode 1 versionName "1.0" ndk { moduleName "helloNDK" // <-- This is the name of my C++ module! } } // ... more gradle stuff here ...} // end of android section
ndk
还可以配置更多选项,如下:
ndk { moduleName "myEpicGameCode" cFlags "-DANDROID_NDK -D_DEBUG DNULL=0" // Define some macros ldLibs "EGL", "GLESv3", "dl", "log" // Link with these libraries! stl "stlport_shared" // Use shared stlport library}
3.添加C/C++源代码
默认情况下,你需要把C/C++源代码放在 [module]/src/main/jni/
路径下。效果如下图所示:
当然,你也可以自定义源代码路径:
android { // .. android settings .. sourceSets.main { jni.srcDirs 'src/main/source' }}
4.分平台配置编译(可选)
这一步不是必须的,你可以根据需要,对各个平台进行不同的编译配置,可以设置覆盖前面的编译选项(例如 cFlags
)。例如你只想编译指定平台的.so,而不是所有的平台。如下:
android { // .. android settings .. productFlavors { x86 { ndk { abiFilter "x86" } } arm { ndk { abiFilter "armeabi-v7a" } } mips { ndk { abiFilter "mips" } } }} // android
- android ndk编译jni的配置
- Android Studio NDK JNI编译环境 配置
- Android NDK&&JNI 编译环境的搭建
- Android NDK&&JNI 编译环境的搭建
- Android下jni开发之ndk的使用(下载、配置、编译遇到的问题)
- Android NDk-JNi开发(一)NDK环境变量的配置
- android ndk jni 项目编译
- Android-Ndk Cmake编译JNI
- NDK 编译jni头文件的javah工具配置
- Android studio jni Ndk 配置
- Android Studio NDK JNI 配置
- android(NDK+JNI)---NDK开发 环境配置
- 【Android】Eclipse自动编译NDK/JNI的三种方法
- 【Android】Eclipse自动编译NDK/JNI的三种方法
- 【Android】Eclipse自动编译NDK/JNI的三种方法
- 【Android】Eclipse自动编译NDK/JNI的三种方法
- 【Android】Eclipse自动编译NDK/JNI的三种方法
- 【Android】Eclipse自动编译NDK/JNI的三种方法
- hbase命令梳理
- dedecms 文章按权重排序问题
- java 使用comet4j向客户端主动推送例子
- Java 基础
- 2016年高考分数线哪个省最最最高最最最低-竟然是它???
- android ndk编译jni的配置
- 【Android---项目中】TextView设置字体样式及粗细
- MFC-窗口-显示状态设置的三种方法
- java文件打成jar包的方法
- Python:进程与进程池
- 怎么解决java.lang.NoClassDefFoundError错误
- 如何添加一个文件/目录到IntelliJ项目的classpath中
- mac os x命令备忘
- 如何调试makefile