android下的jni
16lz
2021-01-24
1、首先创建一个工程,jnitest里面的类叫jnitest.java
publicclassjnitestextendsActivity{/**Calledwhentheactivityisfirstcreated.*/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);//System.out.println("hello:"+hello());}static{//加载库文件System.loadLibrary("testJni");}//声明原生函数参数为String类型返回类型为StringprivatenativeStringhello();}
2、编译一下,(为了生成class文件)
3、利用DOS切换到该工程目录下面,执行javah -classpath bin/classes -d jni com.example.jnitest.jnitest
生成头文件用的
4、会看到在工程目录下面有个jni的文件夹,里面会有头文件
5、创建一个.c文件:testJni.c(方法的名字要注意)
#include<string.h>#include<jni.h>jstringJava_com_example_jnitest_jnitest_hello(JNIEnv*env,jobjectthiz){return(*env)->NewStringUTF(env,"123");}
6、从cygwin的目录中的samples下的hello-jni里的jni里的Android.mk拷贝一份到所建的工程里的jni目录中,这样工程的jni文件夹下面就有3个文件了.h文件、.c文件、.mk文件
7、打开cygwin的命令行,切换到该工程的目录下面
8、执行$ $NDK/ndk-build
9、会在工程的libs目录下面生成.so文件
10、执行以下之前的java类吧
更多相关文章
- Android四大组件之activity之间带数据跳转
- 编译Irrlicht On Android(1)
- android repo/git server 建立过程
- Android抓包方法
- Android(安卓)Widget开发
- Android—将Bitmap图片保存到SD卡目录下或者指定目录
- Android之应用中执行Linux命令
- 初学Android,数据存储之SD卡文件浏览器(四十四)
- android读取raw下面的文件