jni

标签 jni 的文章
  • 编译kaldi-android

    编译kaldi-android

    本文记录于2020年。各种库、软件、系统都在更新,参考时难免有差池。欢迎讨论。 需求:将kaldi编译为 Android8.0-api26、ARMv8 使用的so动态库文件。 环境1:XUbuntu20.04.3,python3.8.10、android_ndk_r20b、git、apt。(建议的编译环境) 环境2:Mac10.14.3,python3、android-ndk、git、brew。 本文参考: https://www.jianshu.com/p/a896bc4c3c14 ...

  • Android中通过cmake直接集成c/c++代码

    Android中通过cmake直接集成c/c++代码

    旧码整理内容。 一 build.gradle [crayon-6637799c3f16a201414714/] 二 c、cpp代码 在app\src\main目录下创建cpp目录。 1.CMakeLists.txt 根据build.gradle里 (3) 的配置,在cpp目录里创建CMakeLists.txt文件。 [crayon-6637799c3f174447005541/] 上面提到的ndk-stl-config.cmake文件: [crayon-6637799c3f17b123306917/] 2.VigilesUtil.cpp ...

  • Mac中使用ndk配合cmake生成so

    Mac中使用ndk配合cmake生成so

    在mac中仅通过cmake编译c或c++代码默认生成的是dylib文件。 0.系统 macos sierra 10.12.5。 1.下载ndk https://developer.android.google.cn/ndk/downloads/ 2.测试用的test.c文件 [crayon-6637799c3f74a844551827/] 3.编写CMakeLists.txt [crayon-6637799c3f752595842603/] 和test.c文件放在同一目录里。 4.本例cmake用的是ndk中自带的,位于/Users/m...

  • 在Android中使用JNA

    在Android中使用JNA

    一.JNA简述 略。 二.so文件的编译 本文以C语言为例。 1.C源文件 [crayon-6637799c3fb3f982118726/] 2.Android.mk文件 [crayon-6637799c3fb47660115719/] 3.Application.mk文件 [crayon-6637799c3fb4c611499214/] 4.使用NDK编译 有些网络文章中讲到的,可以不用App.mk文件。 这里只使用NDK进行编译。即 你电脑上没有安装AndroidStudio和Ecli...

  • Win下编译FFmpeg及AS中的编译使用

    Win下编译FFmpeg及AS中的编译使用

    www.cuiweiyou.com www.gaohaiyan.com 本文参考: http://www.roman10.net/2013/08/18/how-to-build-ffmpeg-with-ndk-r9/ http://blog.csdn.net/hejjunlin/article/details/52661331 http://blog.csdn.net/finewind/article/details/42214343 https://my.oschina.net/SunnyTime/blog/612612 一.安装MinGW 在windows下编译FFmpeg有MinGW、VS...

  • java方法和jni函数手动映射注册(动态注册)示例

    java方法和jni函数手动映射注册(动态注册)示例

    前文参考:http://www.gaohaiyan.com/3695.html 首先,当然是在本地实现java方法。 然后,定义一个JNINativeMethod类型的数组,对本地函数和java方法进行配对。 接着,jni中声明了一个JNI_OnLoad函数,当java通过System.loadLibrary加载库文件时,jvm自动调用。我们在此函数中,创建一个JNIEnv上下文对象。 最后,通过RegisterNatives函数,对本地函数和java...

  • java方法和jni函数互相调用示例

    java方法和jni函数互相调用示例

    前文参考:http://www.gaohaiyan.com/3695.html java数据类型和jni数据类型对照:[crayon-6637799c40a9d120158935/] Java:[crayon-6637799c40aa6276205802/] 在JNI中改变java实例成员变量的值 [crayon-6637799c40aac841870221/] 在JNI中改变java静态成员变量的值 [crayon-6637799c40ab1616045889/] 从java向JNI传递数据[crayon-6637799c40ab5974568166...

  • Android中jni.h的简单注释

    Android中jni.h的简单注释

    JNI是Java Native Interface的缩写,从Java1.1开始,JNI标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。 jni.h可以在AndroidNDK、SDK,JDK,及gcc等库中找到。 下面4个内容一致: %ndk%/sysroot/usr/include/jni.h %sdk%/ndk/21.1.6352462/sysroot/usr/include/jni.h %ndk%/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/incl...

  • java手动调用jni示例

    java手动调用jni示例

    本例环境:Macos。 JDK的环境变量当然是必须首先可用的,只要终端执行 java 能运行即可。 首先,有个java类MyTest.java文件: [crayon-6637799c423f7512048464/] 然后,在这个java文件所在的路径下,使用 javac 生成 h 文件。 [crayon-6637799c42400270790514/] 然后,修改这个h文件为c++的源码文件MyTest.cc: [crayon-6637799c42405954896719/] ...