Android Studio环境下ndk开发实例
来源:互联网 发布:adobe prelude什么软件 编辑:程序博客网 时间:2024/05/16 07:30
最近发现在博客上看大牛们的文章,跟着去学习理解是一种不错的学习方式。于是乎,自己也尝试着把会用的一些小功能做成Demo发文,可以增强梳理自己编写过程中的逻辑,很方便快捷的记录下来思考的过程,还能和大家互相交流共同进步。
今天把Android Studio如何进行ndk开发的过程记录下来,大家一起学习,写的不好,希望诸位不要介怀。
1、确认本机已配置好Android Studio上面的ndk开发环境。
查看方式File-Settings-Plugins如下图:
如果你的Android Studio还没有配置ndk环境,但是Android Studio版本高于2.2,那么可以直接通过android studio下载。如果你还没有配置ndk环境,那也不要紧通过以下链接就可以下载到官方的ndk。
https://dl.google.com/android/repository/android-ndk-r13b-windows-x86.zip
https://dl.google.com/android/repository/android-ndk-r13b-windows-x86_64.zip
https://dl.google.com/android/repository/android-ndk-r13b-darwin-x86_64.zip
https://dl.google.com/android/repository/android-ndk-r13b-linux-x86_64.zip
下载后按照下图配置ndk路径即可。
2、新建一个普通的Android项目,这里我新建的项目名称为“JniNdkProject”;
3、创建JniUtils类,并在类中写一个native方法,如下图:
4、通过build ——clean —— rebuild project编译现有程序,如图
确认..\JniNdkProject\app\build\intermediates\classes目录下生成了“classes”文件夹,没有生成则重新chean——rebuild一遍。
5、打开Terminal,并输入如下指令
指令:
a. cd E:\projects\JniNdkProject\app\build\intermediates\classes\debug
b. javah -jni com.record2text.vitospc.jnindkproject.ndk.JniUtils
指令成功执行后会在E:\projects\JniNdkProject\app\build\intermediates\classes\debug目录下生成一个.h文件com_record2text_vitospc_jnindkproject_ndk_JniUtils.h
。
6、新建jni文件夹将com_record2text_vitospc_jnindkproject_ndk_JniUtils.h移动到jni文件夹下
7、在jni目录下新建一个c类“JniNdkTest.c”,并编写代码
// * @author 马文涛 技术群:317922608#include "com_record2text_vitospc_jnindkproject_ndk_JniUtils.h"/* * Class: com_record2text_vitospc_jnindkproject_ndk_JniUtils * Method: getValueFromC * Signature: ()Ljava/lang/String; */JNIEXPORT jstring JNICALL Java_com_record2text_vitospc_jnindkproject_ndk_JniUtils_getValueFromC (JNIEnv *env, jobject obj){ return(*env)->NewStringUTF(env,"This Is Value From C ! \n 这是来自C的字符");}
如图
8、在gradle.properties文件末尾加上android.useDeprecatedNdk=true
。
9、在..app/build.gradle文件中,defaultConfig的括号内添加以下代码:
ndk{ moduleName "JniNdkTest" //c语言编辑后生成的so文件的名称 abiFilters "armeabi","armeabi-v7a","x86" //输出指定三种abi体系结构下的so库,目前可有可无。 }
10、在JniUtils中添加以下代码
public class JniUtils { static { System.loadLibrary("JniNdkTest"); //必须与build.gradle中的so文件名称保持一直 } public static native String getValueFromC();}
11、在MainActivity中调用JniUtils中的native方法,调用的代码如下:
mNdkTextView = (TextView) findViewById(R.id.ndk_text_view); mNdkTextView.setText(JniUtils.getValueFromC());
12、发现程序报出异常如图:
不用担心,只要删除..\projects\JniNdkProject\app\build\intermediates\classes目录下的debug文件夹即可。
13、build然后运行程序,运行结果如下:
源码链接http://download.csdn.net/detail/laker10070/9735935
* @author 马文涛 技术群:317922608 小弟初来乍到,希望大家多多帮助,共同进步。
- Android Studio环境下ndk开发实例
- Android Studio NDK开发之环境配置和简单实例
- Android studio下NDK开发环境配置及开发流程
- Android studio环境下的 NDK(jni)开发
- Windows环境下Android Studio进行NDK开发
- Android Studio下的NDK开发(一):环境配置
- android studio下ndk开发
- Android Studio下NDK开发
- android studio下ndk开发
- 在Windows环境下,使用Android NDK开发实例
- NDK 开发实例一(Android.mk环境配置下)
- NDK 基础开发实例(Android.mk环境配置下)
- 【Android】Android Studio配置ndk开发环境
- Android studio NDK开发简单实例
- Android studio NDK开发简单实例
- Android Studio 下安装配置NDK环境
- Linux环境下NDK JNI开发实例
- Android Studio开发配置NDK环境
- Measure(0,0)的探讨
- filebeat 配置文件详解
- android_75_ContentObserver_短信内容观察者
- POJ 1003
- Android 键盘弹起和回落事件监听(二)之移动布局
- Android Studio环境下ndk开发实例
- 关于easyui datagrid 大量数据加载时 出现假死问题的解决方法
- session和cookie
- Tcpdump(linux)下载、安装、使用说明
- 欢迎使用CSDN-markdown编辑器
- java开发知识图谱
- java从服务器上传本地图片到图片服务器
- 由url-pattern引发的思考
- 1006. 换个格式输出整数 (15)