android studio NDK使用,编译c生成.so实践记录

开发环境,android studio 2.1.2,SDK环境和NDK环境

SDK不说了,NDK环境配置网上也有很多,这里就简单记录下:

1 下载NDK并安装到电脑 D:\android\android-ndk-r11c


2 android studio中右键项目进入菜单配置NDK



3 在项目的gradle.properties文件中加上 android.useDeprecatedNdk = true


为了方便生成头文件和so文件,我们可以在Android Studio → External Tools中设置两个命令,分别来生成头文件和生成.so文件





Program: $JDKPath$/bin/javah
Parameters: -encoding UTF-8 -d ../jni -jni $FileClass$
Working directory: $SourcepathEntry$\..\java





Program: D:\android\android-ndk-r11c\build\ndk-build.cmd
Parameters: NDK_LIBS_OUT=$ModuleFileDir$/src/main/jniLibs
Working directory: $ModuleFileDir$\src\main
(注意:NDK_LIBS_OUT=$ModuleFileDir$/src/main/jniLibs
这个含义是将生成的so文件放在jniLibs这个文件下,
如果不写这句话,什么都不填,则为默认的文件夹)





写一个测试类



右击这个类选择刚才写的javac命令,就会生成头文件



根据头文件写一个测试的.c文件

注意:打红框的地方要和头文件的名称和方法命名一样

写一个Android.mk文件
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE := JniTest
LOCAL_SRC_FILES := TestJni.c
include $(BUILD_SHARED_LIBRARY)


然后右击jni文件夹选择我们的命令ndk-build





则生成了





build.gradle的配置




最后so已经生成,调用


展开阅读全文

没有更多推荐了,返回首页