NDK 学习笔记
2016-07-07 11:13
330 查看
1,创建jni的java类自动生成jni头文件
a)新建Jni接口类
b)在终端执行命令:
c)生成了com_bb_sz_skyjni_jni_JniInterface.h头文件
d)javah的用法:
2,在jni目录下新建JniInterface.c文件
a)实现代码
b)Ctrl +F9执行Make Project命令
c)在app\build\intermediates\ndk目录下找到Android.mk文件
d)拷贝Android.mk文件到jni目录下
e)在jni目录下执行ndk-build生成.so库
f)将.so库拷贝到Android项目中去.
a)新建Jni接口类
package com.bb_sz.skyjni.jni;
/**
* Created by Administrator on 2016/7/7.
*/
public class JniInterface {
static {
System.loadLibrary("JniTest");
}
public native String getStringFromNative();
}
b)在终端执行命令:
javah -d D:\Android\Client\SkyJni\app\src\main\jni -classpath D:\Android\sdk\platforms\android-19\android.jar;D:\Android\Client
\SkyJni\app\build\intermediates\classes\debug com.bb_sz.skyjni.jni.JniInterface
c)生成了com_bb_sz_skyjni_jni_JniInterface.h头文件
d)javah的用法:
D:\Android\Client\SkyJni>javah -help
用法:
javah [options] <classes>
其中, [options] 包括:
-o <file> 输出文件 (只能使用 -d 或 -o 之一)
-d <dir> 输出目录
-v -verbose 启用详细输出
-h --help -? 输出此消息
-version 输出版本信息
-jni 生成 JNI 样式的标头文件 (默认值)
-force 始终写入输出文件
-classpath <path> 从中加载类的路径
-bootclasspath <path> 从中加载引导类的路径
<classes> 是使用其全限定名称指定的
(例如, java.lang.Object)。
2,在jni目录下新建JniInterface.c文件
a)实现代码
//
// Created by Administrator on 2016/7/7.
//
#include <jni.h>
#include <android/log.h>
#ifndef LOG_TAG
#define LOG_TAG "ANDROID_LAB"
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)
#endif
#ifdef __cplusplus
extern "C" {
#endif
JNIEXPORT jstring JNICALL Java_com_bb_1sz_skyjni_jni_JniInterface_getStringFromNative
(JNIEnv * env, jobject jObj){
// LOGE("log string from ndk.");
return (*env)->NewStringUTF(env,"Hello From JNI!");
}
#ifdef __cplusplus
}
#ifdef __cplusplus
}
#endif
#endif
b)Ctrl +F9执行Make Project命令
c)在app\build\intermediates\ndk目录下找到Android.mk文件
d)拷贝Android.mk文件到jni目录下
e)在jni目录下执行ndk-build生成.so库
f)将.so库拷贝到Android项目中去.
相关文章推荐
- android_c++ 高级编程NDK学习笔记五
- Android开发学习笔记(11):NDK与Cygwin配置手顺
- OpenCV for Android Studio 学习笔记(一):NDK及OpenCV的安装配置
- 学习笔记之NDK使用(只针对r7c版本以下的NDK)
- android_c++ 高级编程NDK学习笔记五
- Android NDK (学习笔记八) —— Java代码与C代码间方法的调用
- android_c++ 高级编程NDK学习笔记四
- cocos2dx-2.x 打包APK(学习笔记 Python + JDK + ADT + NDK )
- 安卓逆向学习笔记(8)- 破解NDK层的签名校验
- NDK学习笔记: NDK编程入门笔记
- 我的NDK学习开发笔记(四)
- android 学习笔记(五)调试相关 5.5 eclipse中ndk环境
- jni ndk 学习笔记,带源码
- android NDK 学习笔记(5)---ndk 方法签名显示
- android_c++ 高级编程NDK学习笔记二
- 我的NDK学习开发笔记(一)
- Android Studio实现NDK编程学习笔记
- [Cocos2d-x学习笔记]Android NDK: Host 'awk' tool is outdated. Please define NDK_HOST_AWK to point to Gawk or Nawk解决方案
- android_c++ 高级编程NDK学习笔记三
- 我的NDK学习开发笔记(二)