Android Studio 使用NDK编程
来源:互联网 发布:网络禁毒知识竞赛答案 编辑:程序博客网 时间:2024/05/17 00:10
基本步骤:
1.编写A类,生成A.class
2.生成A.h
3.编写A.cpp
4.配置生成.so
5.loadLibrary,调用native方法
Step1:编写A类,生成A.class
示例:
public class TestNdk { public native String getStr(String str); static { System.loadLibrary("JniDemo"); }}
Step2.生成A.h
通过javah命令,将class文件转换成头文件
示例:
到classes根目录:javah -classpath ./ com.**.**.JNITest
头文件会在jni目录下生成
示例:
/* DO NOT EDIT THIS FILE - it is machine generated */#include <jni.h>/* Header for class com_ksmobile_launcher_custom_TestNdk */#ifndef _Included_com_ksmobile_launcher_custom_TestNdk#define _Included_com_ksmobile_launcher_custom_TestNdk#ifdef __cplusplusextern "C" {#endif/* * Class: com_ksmobile_launcher_custom_TestNdk * Method: getStr * Signature: (Ljava/lang/String;)Ljava/lang/String; */JNIEXPORT jstring JNICALL Java_com_ksmobile_launcher_custom_TestNdk_getStr (JNIEnv *, jobject, jstring);#ifdef __cplusplus}#endif#endif
Step3.编写A.cpp
或者A.c 可以任意命名,也可以是c或者c++文件#include "com_ksmobile_launcher_custom_TestNdk.h"JNIEXPORT jstring JNICALL Java_com_ksmobile_launcher_custom_TestNdk_getStr (JNIEnv *env, jobject obj, jstring str){ //注意(JNIEnv *, jobject, jstring)与头文件中不同 return (*env)->NewStringUTF(env,"This just a test for Android Studio NDK JNI developer!");}#endif
Step4.配置生成.so
build.gradle 增加生成so的名称配置,还可以增加其他配置
示例:
defaultConfig { applicationId "com.ksmobile.launcher" minSdkVersion 14 targetSdkVersion 17 ndk{ moduleName "JniDemo" //设置库(so)文件名称 } }
Step5.loadLibrary,调用native方法
其实之前写java类时已经写了,主要是这一句
static { System.loadLibrary("JniDemo"); }
调用
Log.d("","ndk:str:"+new TestNdk().getStr("arg str"));
Eclipse中新建Builder生成so
1.NDK方式
2.NDK+cygwin方式,NDK(r8)不需要cygwin了
工程:http://download.csdn.net/detail/ahong222/9566855
0 0
- Android Studio 使用NDK编程
- android studio NDK编程
- Android Studio Ndk 编程
- Android Studio NDK 编程
- Android Studio Ndk 编程
- android studio 使用NDK
- Android Studio NDK使用
- Android Studio 使用NDK
- android studio使用ndk
- android studio ndk编程 配置
- Android studio 使用NDK工具实现JNI编程
- android studio 2.2使用cmake进行NDK编程
- android studio使用ndk编程的注意点
- Android Studio ndk第一次使用
- Android Studio 下使用NDK
- Android Studio中使用NDK
- Android Studio 下使用NDK
- Android Studio NDK基础使用
- 全排列方法求解八皇后问题
- python 之tinyproxy
- LeetCode-Best Time to Buy and Sell Stock I II III IV
- word文档插入方框加勾
- jquery mobile 动态插入元素的正确渲染方法
- Android Studio 使用NDK编程
- Android-复制创建可操作的图片
- 用Python操作Mysql
- JVM中锁优化简介
- HDU 1863 畅通工程(最小生成树模板题)
- Cocos2dx实现精灵的加速(适用于塔防游戏)
- 随着双手之上的动作落下,一声细微的闷响徒然响彻开来
- Delphi6 调试
- Linux挂载NTFS硬盘