Mac下的AndroidStudio的NDK配置及开发示例
来源:互联网 发布:js给div设置内容 编辑:程序博客网 时间:2024/05/21 12:16
Mac OS 10.11.5AndroidStudio 2.3.2NDK 10Mac下的AndroidStudio的NDK配置及开发示例-----------------------------------------------------------------------------------------------------------一、下载NDK(这个分版本,Windows、Linux、Mac三种版本)二、解压NDK(我的是Mac版本,下载完成之后为android-ndk-r10e-darwin-x86_64.bin) Mac解压步骤: ①打开终端,进入android-ndk-r10e-darwin-x86_64.bin所在的文件夹,输入命令: DavidtekiMacBook-Air:~ du$ cd /Users/du/Downloads ②更改android-ndk-r10e-darwin-x86_64.bin文件的读写权限,输入命令: DavidtekiMacBook-Air:Downloads du$ chmod a+x android-ndk-r10e-darwin-x86_64.bin ③执行android-ndk-r10e-darwin-x86_64.bin文件,输入命令: DavidtekiMacBook-Air:Downloads du$ ./android-ndk-r10e-darwin-x86_64.bin ④在对应的文件夹下应该会出现解压好的文件夹android-ndk-r10e三、打开系统的终端,检测: ①输入javah,检查输出有没有javah的用法 ②输入命令: ndk-build,检查有没有此命令,如果显示bash: ndk-build: command not found,说明你的NDK系统路径没有配置 NDK的PATH配置步骤: ①输入命令 DavidtekiMacBook-Air:~ du$ pico .bash_profile ②继续输入 export PATH=${PATH}:/Users/du/android-ndk-r10e A_NDK_ROOT=/Users/du/android-ndk-r10e export A_NDK_ROOT 注意:上面的第一行和第二行的NDK的路径换成你自己的 ③control+X 键,终端会提示你是否需要保存, 再输入 Y,最后 回车 ④至此,NDK的路径配置完毕,关闭终端并重启,再重新输入命令: ndk-build,看是否有反应-----------------------------------------------至此NDK配置完毕了哦----------------------------------------------------------------------------------------------接下来搞项目-----------------------------------------------一、新建一个工程,配置NDK的路径 打开Project Structure,可以看到Android SDK Location和Android NDK Location, 在Android NDK Location下选择你的NDK的根路径 我的是 /Users/du/android-ndk-r10e二、新建一个包含native方法的类,如DogNdk.java,并添加native方法 public static native String getString();三、打开工程底部的Terminal, ①进入/Users/du/AndroidProjectForSVN/NDKTestNew/app/src/main/java文件夹,输入命令: DavidtekiMacBook-Air:NDKTestNew du$ cd /app/src/main/java ②输入命令: DavidtekiMacBook-Air:java du$ javah -jni com.katherine.du.ndktestnew.DogNdk ③打开项目结构,发现在java文件夹下生成了一个头文件: com_katherine_du_ndktestnew_DogNdk.h四、找到项目结构中的/app/src/main文件夹 ①在文件夹下建立jni文件夹(可以右键New--Folder--JNI Folder) ②将第三步中生成的头文件拷贝到jni文件夹下,拷贝完成后之前的头文件可以删除掉 ③在jni文件夹下,新建一个C/C++源文件,如com_katherine_du_ndktestnew_DogNdk.cpp 注意:这里的源文件没有要求必须和头文件的名称相同,但最好一致 ④在C++源文件中实现上面的 getString() 方法: #include "com_katherine_du_ndktestnew_DogNdk.h" JNIEXPORT jstring JNICALL Java_com_katherine_du_ndktestnew_DogNdk_getString (JNIEnv *env, jclass jls) { return (*env).NewStringUTF("Look! These is a dog! It looks very cute!"); } 注意:方法名字可以直接从com_katherine_du_ndktestnew_DogNdk.h中拷贝哦~~~ ⑤在jni文件夹下,新建Android.mk文件,文件内容: LOCAL_PATH :=$(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE :=dog LOCAL_SRC_FILES=com_katherine_du_ndktestnew_DogNdk.cpp include $(BUILD_SHARED_LIBRARY) 注意:LOCAL_MODULE :=dog, dog为你要的库的名字,随意起名字吧 LOCAL_SRC_FILES=com_katherine_du_ndktestnew_DogNdk.cpp, com_katherine_du_ndktestnew_DogNdk.cpp就是你要编译的源文件 ⑥在jni文件夹下,新建Application.mk文件,文件内容: APP_MODULES := dog APP_ABI := all 注意:APP_MODULES :=dog, dog为你上面的库的名字,保持一致哦五、在app/build.gradle中 defaultConfig下添加 ndk { moduleName "dog" } sourceSets.main { jni.srcDirs = [] jniLibs.srcDir "src/main/libs" } 注意:moduleName "dog", dog为你上面的库的名字,保持一致哦六、在根目录下的gradle.properities文件末尾添加一行代码 android.useDeprecatedNdk=true七、检查项目根目录下的local.properties文件中的SDK和NDK的路径对不对八、点击Build--Make Project九、打开项目底部的Terminal ①进入main文件夹(我目前在java文件夹下,我需要返回上一级就是main文件夹),输入命令 DavidtekiMacBook-Air:java du$ cd .. ②输入命令 DavidtekiMacBook-Air:main du$ ndk-build ③顺利的话,在main文件夹下会生成一个libs文件夹,打开以后会看见7种生成的libdog.so--------------------------------------------------至此.so生成完毕了哦---------------------------------------------------------------------------------------接下来在项目中使用这个.so库--------------------------------------一、在DogNdk.java中添加代码 ①添加加载库文件的代码: static { System.loadLibrary("dog");} 即DogNdk.java: public class DogNdk { static { System.loadLibrary("dog"); } public static native String getString(); } ②在MainActivity中使用这个方法 ((TextView) findViewById(R.id.tv_desc)).setText(DogNdk.getString()); ③运行项目 是不是发现打印出一句话啊哈哈~~~~~好了这就结束啦~~~-------------------------------------------------------题外话----------------------------------------------- 如果你已经拥有了.h文件、.cpp(.c)文件、Android.mk文件、Application.mk文件,你只想打出一个.so库 步骤: ①将这些文件全部拷贝至jni文件夹下 ②确保Android.mk文件中的LOCAL_MODULE :=dog、 Application.mk文件中的APP_MODULES := dog、 app/build.gradle中的moduleName "dog" 的库名字保持一致 ③Terminal中进入main文件夹下,执行ndk-build命令即可项目链接:http://download.csdn.net/detail/kikitious_du/9840866 NDK下载链接:https://pan.baidu.com/s/1skVdjXz参考链接:https://my.oschina.net/zhouzhenBlog/blog/648125 http://gushedaoren.blog.163.com/blog/static/1736634052013101575955388/ http://blog.csdn.net/zhoudailiang/article/details/50466185
0 0
- Mac下的AndroidStudio的NDK配置及开发示例
- AndroidStudio下的NDK开发
- AndroidStudio的NDK配置
- 走进AndroidStudio下的NDK
- mac下androidstudio下ndk开发简单操作流程
- Mac下androidStudio的安装
- mac下androidstudio的快捷键
- mac下配置NDK开发环境
- mac下配置NDK开发环境
- Mac下配置 Android ndk 开发环境
- Mac 下 NDK 开发环境配置
- mac下配置NDK开发环境
- AndroidStudio 进行 JNI / NDK 开发:初步配置及使用
- AndroidStudio 配置NDK开发环境,SDKManager下没有SDK问题
- AndroidStudio配置NDK开发环境
- Android NDK 开发 AndroidStudio 2.2 NDK的开发环境搭建
- 走进AndroidStudio下的NDK(一)
- 走进AndroidStudio下的NDK(二)
- 【分享】免费建立自己的站点
- 欢迎使用CSDN-markdown编辑器
- c++异常处理
- windows下端口占用解决方法-查看和杀死占用端口进程
- 升级到Spring Security 4.2的坑及解决办法
- Mac下的AndroidStudio的NDK配置及开发示例
- 自己仿制谷歌和百度首页
- 关于tomcat的Unsupported major.minor version 51.0问题记录
- POJ 1133 Stars 笔记
- Spring Cloud笔记
- qt之进程和线程
- HDOJ2000-2050学习笔记
- soapui测试webservice接口时如何传递xml参数
- 数组指针和指针数组的区别