一个完整的NDK编译过程
来源:互联网 发布:淘宝网怎么样申请换货 编辑:程序博客网 时间:2024/05/07 10:08
1、创建android工程
2、编写JAVA类,其中包含nativie方法
public class JNI {
public native void write();
public native void myOpen(String pathname);
}
3、生成JNI头文件
使用javah命令
使用cmd进入android项目的bin目录中,然后执行 javah -classpath . -jni com.android.myjni.JNI这个命令
用法:javah [选项] <类>
其中 [选项] 包括:
-help
-classpath <路径>
-bootclasspath <路径> 用于装入引导类的路径
-d <目录>
-o <文件>
-jni
-version
-verbose
-force
com.android.myjni.JNI指包com.android.myjni下的JNI类,是要生成该类的JNI头文件
例如:com_android_myjni_JNI.h
-* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
-* Header for class com_android_myjni_JNI */
#ifndef _Included_com_android_myjni_JNI
#define _Included_com_android_myjni_JNI
#ifdef __cplusplus
extern "C" {
#endif
-*
JNIEXPORT void JNICALL Java_com_android_myjni_JNI_write
-*
JNIEXPORT void JNICALL Java_com_android_myjni_JNI_myOpen
#ifdef __cplusplus
}
#endif
#endif
4、编写c代码
例如:com_android_myjni_JNI.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/types.h>
#include "com_android_myjni_JNI.h"
JNIEXPORT void JNICALL Java_com_android_myjni_JNI_write
{
}
JNIEXPORT void JNICALL Java_com_android_myjni_JNI_myOpen
{
}
5、编写Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE:= myjni
LOCAL_SRC_FILES := com_android_myjni_JNI.c
include $(BUILD_SHARED_LIBRARY)
6、编译so文件
进行编译so文件:
进入工程目录,执行 ndk-build,例如:~/workspace/MYJni$ ndk-build
则会在libs/armeabi/生成相应的so文件,例如:libmyjni.so
工程目录结构:
src下包含java文件
自己新建一个jni文件,包含com_android_myjni_JNI.h、com_android_myjni_JNI.c、Android.mk文件
so文件会自动在libs/armeabi/下生成
测试代码:
package com.android.myjni;
import android.app.Activity;
import android.os.Bundle;
public class JniTest extends Activity {
}
from:http://blog.csdn.net/student_cui/article/details/6249129
- 一个完整的NDK编译过程
- 一个简单但完整的NDK demo
- 一个NDK工程的过程
- C/C++语言的完整编译过程
- Android NDK编译过程
- 一个PHP的SQL注入完整过程
- 一个完整的BIRT报表制作过程
- 数据挖掘的一个完整过程
- 一个完整的存储过程 returnValue
- 一个项目完整制作过程的分享
- MYSQL存储过程的一个完整实例
- MYSQL存储过程的一个完整实例
- 一个完整系统的测试过程
- 一个PHP的SQL注入完整过程
- 一个PHP的SQL注入完整过程
- 一个完整的请求与响应过程
- openstack创建一个完整的项目过程
- 一个对象实例化的完整过程
- Android-ndk中的.mk文件语法规则
- 网络浏览图片
- Android.mk 变量解释
- Android图片浏览
- NDK中 .so文件的加载
- 一个完整的NDK编译过程
- 浏览图片
- NSUserDefaults使用最简单代码(设值,取值,强制保存)
- 浏览查看图片
- Section 17 jars
- 浏览网页
- bind 配置文件介绍
- 黑马程序员----OC学习之小知识学习
- Android之NDK开发