Android JNI开发笔记
2016-02-21 19:20
411 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/songlin0859/article/details/50709062
5、进入工程的src目录下,进入cmd窗口,运行 javah 报名.类名得到一个.h的头文件(eg:javah com.example.jnihellodemo.MainActivity得到com_example_jnihellodemo_MainActivity.h)
1、搭建JNI的开发环境(安装NDK、配置NDK的classpath、在eclipse中增 Android Native Development Tools……(ADT))
2、新建一个Android工程
3、在工程目录下新建一个jni目录
4、在Java代码中声明一个native方法
public native String helloFromC();
5、进入工程的src目录下,进入cmd窗口,运行 javah 报名.类名得到一个.h的头文件(eg:javah com.example.jnihellodemo.MainActivity得到com_example_jnihellodemo_MainActivity.h)
6、在头文件中会有对native方法的声明
JNIEXPORT jstring JNICALL Java_com_example_jnihellodemo_MainActivity_helloFromC (JNIEnv *, jobject);(返回值 Java_报名_类名_方法名)
7、在步骤3建立的JNI目录下新建一个c文件、实现6中的方法、以返回一个字符串为例
#include <jni.h> #include <stdio.h> #include <stdlib.h> #include <string.h> JNIEXPORT jstring JNICALL Java_com_example_jnihellodemo_MainActivity_helloFromC (JNIEnv *env , jobject obj){ return (*env)->NewStringUTF(env, "Hello from JNI "); }8、在JNI目录下新建一个android.mk文件
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) #生成的模块名称 LOCAL_MODULE := JniHelloDemo #依赖的源文件 LOCAL_SRC_FILES := JniHelloDemo.c include $(BUILD_SHARED_LIBRARY)9、8、在JNI目录下新建一个application.mk文件
APP_ABI := all表示支持的平台、all表示支持所有的平台 10、在使用native方法的类中添加静态代码块加载.so文件
static{ System.loadLibrary("JniHelloDemo"); }
JniHelloDemo是android.mk中的LOCAL_MODULE (libJniHelloDemo.so去掉lin和.so)11、进入工程文件目录下、打开cmd运行ndk-build命令生成对应的库文件
12、运行工程……
------------------------------------------------------------来一个分割线----------------------------------------------------------------------
其他:
1、javah
2、javap
3、eclipse环境配置
4、log打印
相关文章推荐
- Android(java)学习笔记262:JNI之工具快速开发步骤
- JNI 开发笔记 - Android JNI Tips
- Android笔记之使用CMake进行JNI开发(Android Studio)
- linux eclipse android NDK+JNI 本地共享链接库开发笔记。。------记录一下,不然过段时间就忘了
- Android(java)学习笔记259:JNI之NDK开发步骤
- Android NDK(学习笔记四)—— 在NDK开发中JNI打印Log信息
- Android 开发之JNI学习笔记
- android之NDK(jni)开发笔记1——运行第一个NDK程序
- Android开发笔记之Jni编程
- 学习笔记 android开发之JNI
- ndk配置+android jni开发笔记
- 【笔记】Android平台下的JNI开发
- [安卓开发笔记二]android Studio通过jni调用C++代码
- Android 学习笔记5---程序开发模式&拨号器&短信发送器小例程
- Android开发笔记3----Android Dalvik,包和文件介绍
- Android开发笔记--Android开发时常用控件(二)
- Android JNI开发入门篇
- [原创]Android 基于NDK的JNI开发 C调用java和java调用C的进阶教程
- Android Map开发基础知识学习笔记
- 【Android游戏开发十五】关于Android 游戏开发中 OnTouchEvent() 触屏事件的性能优化笔记!