(2016-10-28)Android-NDK学习笔记(一)生成简单的SO文件
2016-10-29 15:16
295 查看
本次讲的是在eclipse环境下编译的项目,安卓丢丢,请另寻他法.
1,先开始下一个android-ndk-r10e-windows-x86_64文件;
2,解压
3,配置环境变量,跟java一样。
在cmd中可以运行ndk-build就可以了。第一步在你的android创建一个native方法。
public static native int getIntFromC();第二步然后运用cmd命令行。在你的项目根目录下。运行下面的代码。
javah -classpath bin/classes;F:\sdk\platforms\android-20\android.jar -d jni com.liuyun.hellondk.MainActivity
第三步在你的jni目录下。创建一个c语言的文件。比如说hello.c。在你的c文件中可以这样写。
#include<stdil.h> #include<stdlib.h> #include"com_liuyun_hellondk_MainActivity.h" JNIEXPORT jstring JNICALL Java_com_liuyun_hellondk_MainActivity_getStringFromC (JNIEnv *env, jclass jclass){ return (*env)->NewStringUTF(env,"HEIIIIIIIIIIIIIIIIIIIIIIII"); } 这段代码的意思是从c语言里返回一个字符串。
第四步在jni目录下。创建一个Android.mk文件。在你的Android.mk文件中可以这样写。
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) //这里是你要生成的so文件的名字。 LOCAL_MODULE := hello //这里是你的c语言文件的名字。 LOCAL_SRC_FILES := hello.c include $(BUILD_SHARED_LIBRARY)
第五步在我们写好的安卓项目目录下运行cmd,然后用,ndk-build进行编译.刷新我们的目录就能得到我们的so文件.那么,怎样调用我们的so文件呢!
然后在我们要调用的类里面调用我们的静态代码块儿.
static{ //这里面的hello就是上面生成的so文件的名字,改了名字也没有用,要是我们生成的so文件的名字 System.loadLibrary("hello"); }
最终我们通过getIntFromC();方法,就可以得到我们在c语言里返回的数据了这样就实现了java调用c语言的过程这只是一个简单的过程,接下来我们要简化我们的操作.
本次讲的是在eclipse环境下编译的项目,安卓丢丢,请另寻他法.
首先我们在下图可以看到配置一个ndk的路径
然后在我们的项目下右键Properties新建一个Builder,当然我这里已经创建好了
接下来的配置
接下来点击ok,so文件将会自动编译好你可以更改你C文件里的代码,再次运行将会得到不一样的结果哟.这还是比较简单的
相关文章推荐
- 如何简单修改Android的so文件
- android生成so文件
- androidのNDK生成so文件
- 【第一节】android增量升级之生成so文件
- android — NDK生成so文件
- 文件修改如何简单修改Android的so文件
- android — NDK生成so文件
- [Android][Android Studio] Gradle项目中添加JNI生成文件(.so文件)
- Mac下使用Android的Jni生成动态库so文件,并打包到APK包说明
- [Android实例] 【第一节】android增量升级之生成so文件
- Android NDK入门实例 计算斐波那契数列二生成.so库文件
- android 用NDK生成 so 文件 并执行成功
- android项目中配置NDK自动编译生成so文件
- android jni开发,用javah生成***.h头文件,用ndk在libs下生成***.so文件
- android — NDK生成so文件
- 如何简单修改Android的so文件 - 限于修改字符串常量
- Android--ndk编译生成.so文件
- android — NDK生成so文件
- android JNI生成.so文件(arm64-v8a等)配置
- Android Studio 生成.so文件及 Android.mk文件解析