Android NDK 学习笔记(一)
来源:互联网 发布:话费充值软件 编辑:程序博客网 时间:2024/06/05 08:17
1.创建个新项目
2.新建个类
public class AddNum {
static
{
try {
System.loadLibrary("AddNum");
} catch (Exception e) {
}
}
public native int numAdd(int num1, int num2);
}
3.然后在cmd 下进入该类的同级目录运行javac AddNum.java 生成.class 文件
4.在项目的java目录下运行javah 包名.类名 生成一个.h文件
/* DO NOT EDIT THIS FILE - it is machine generated */#include <jni.h>/* Header for class com_yyf_test_test01_AddNum */#ifndef _Included_com_yyf_test_test01_AddNum#define _Included_com_yyf_test_test01_AddNum#ifdef __cplusplusextern "C" {#endif/* * Class: com_yyf_test_test01_AddNum * Method: numAdd * Signature: (II)I */JNIEXPORT jint JNICALL Java_com_yyf_test_test01_AddNum_numAdd (JNIEnv *, jobject, jint, jint);#ifdef __cplusplus}#endif#endif
5.新建一个jni文件夹,然后在新建一个.cpp 文件 将.h 文件中的内容copy 过去放入jni目录下,修改其方法 如下
/* DO NOT EDIT THIS FILE - it is machine generated */#include <jni.h>/* Header for class com_yyf_test_test01_AddNum */#ifndef _Included_com_yyf_test_test01_AddNum#define _Included_com_yyf_test_test01_AddNum#ifdef __cplusplusextern "C" {#endif/* * Class: com_yyf_test_test01_AddNum * Method: numAdd * Signature: (II)I */JNIEXPORT jint JNICALL Java_com_yyf_test_test01_AddNum_numAdd (JNIEnv * env, jobject obj, jint num1, jint num2){ return num1+num2; }#ifdef __cplusplus}#endif#endif
6.编写android.mk 文件,将它放入jni下
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)#编译生成的文件的类库叫什么名字LOCAL_MODULE := AddNum#要编译的c文件LOCAL_SRC_FILES := add.cppinclude $(BUILD_SHARED_LIBRARY)
7.在build.gradle 中指定编译文件位置
externalNativeBuild { ndkBuild { path 'src/main/jni/Android.mk' }}
8.build 项目会发现生成了一个.externalNativeBuild文件夹,so 文件就在里面
9.在mainActivity中调用
public class MainActivity extends AppCompatActivity { private AddNum addNum; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); addNum = new AddNum(); int num = addNum.numAdd(2, 3); Toast.makeText(this, num + "", Toast.LENGTH_SHORT).show(); }}
10,运行,ok 大功告成.
0 0
- Android NDK 学习笔记(一)
- Android学习笔记-NDK开发(一)
- Android NDK 学习笔记(一)
- NDK学习笔记(一)
- Android NDK 开发系列 学习笔记(一)
- Android NDK (学习笔记一) —— 认识NDK
- Android NDK 学习笔记
- Android NDK学习笔记
- Android NDK学习笔记
- Android NDK学习笔记
- Android NDK 学习笔记
- Android NDK 学习笔记
- android ndk学习笔记
- ANdroid NDK学习笔记
- Android NDK学习教程(一)--第一个NDK程序
- Android-NDK学习(一)环境搭建
- Android NDK开发学习(一)
- Jni开发与Android NDK开发学习笔记(一)
- ORIENTAIS诊断协议栈
- H264 视频文件 帧格式 传输封装等 杂碎
- Java学习之System
- piwik安装和基本使用
- 深度学习小白——CS231n Assignment2(FC)
- Android NDK 学习笔记(一)
- vue ESLint
- Linux管线命令之截取命令(cut,grep)
- Javascript闭包——懂不懂由你,反正我是懂了
- 网页里面,给一个 div 增加点击链接
- Java动态加载,避免停服更新
- X264编码流程详解
- jdk1.8+tomcat8+eclipse+maven+svn安装配置环境
- hdoj 1241 Oil Deposits