
jni学习
文章平均质量分 87
we1less
学习
展开
-
android jni c++回调java{主线程/子线程} c++线程创建
首先更新一些知识点1、根据jobject获取jclass(静态方法就不用这一步了)如:jclassclz=env->GetObjectClass(jobj);获取jmethodid如: jmethodid jmid= env->GetMethodID(clz,"onError","(ILjava/lang/String;)V")3、调用方法如: jenv->CallVoidMethod(jobj,jmid,code,jmsg) ...原创 2020-10-17 15:16:43 · 1300 阅读 · 0 评论 -
OpenSL ES 声音录制 andoridLog
<activity android:name=".OpenSLESActivity" />cmake 配置OpenSLEScmake_minimum_required(VERSION 3.4.1)add_library( native-lib SHARED native-lib.cpp RecordBuffer.cpp AndroidLog.h)...原创 2020-12-06 14:58:15 · 270 阅读 · 0 评论 -
jni中常用的转换函数
jstring -> const char *const char *path = env->GetStringUTFChars(path_, 0);根据jobject获取jclass(静态方法就不用这一步了)jclass clz = env->GetObjectClass(jobj);获取jmethodidjmethodid jmid = env->GetMethodID(clz, "onError", "(ILjava/lang/String;)V")原创 2020-12-06 12:52:54 · 297 阅读 · 0 评论 -
JNI初步(五)jni ndk 一个.so文件依赖另一个.so文件的写法
jin 的步骤首先参考https://blog.youkuaiyun.com/we1less/article/details/108930467注意:本文是在ndk环境下编写1.写native类声明native方法package com.godv.audiosuc;public class NativePlayers { static{ System.loadLibrary("JNI_ANDROID_AUDIOS"); System.loadLibrary("J原创 2020-10-09 19:18:01 · 4963 阅读 · 2 评论 -
JNI初步(四) jni ndk -build 方式 完整版(简单)
配置环节1.进入Project Structure界面 配置NDK 没有下载一个2.在项目的local.properties文件中同样配置一下(其实这块是自动生成的)3.在gradle.properties文件中加上一行:android.useDeprecatedNdk=true4.在External Tools下配置两个插件。Settings --> Tools --> ExternalTools 点击+号增加。 ...原创 2020-10-05 17:34:11 · 775 阅读 · 0 评论 -
JNI初步(三)更新UI例子
1.在Activity中编写native方法package com.godv.ccalljava;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Toast;public class MainActivity extends AppCompatAc原创 2020-09-20 20:06:51 · 492 阅读 · 0 评论 -
JNI初步(二)c调用java方法、Log使用
1.写Jni类 并且在下面写好需要被c调用的方法方法体也写好public class Jni { { System.loadLibrary("cCallJava"); } public native int addCallBack(); public int add(int a, int b) { Log.i("godv", "a+b = " + a + b); return a + b; }}2.利.原创 2020-09-20 17:20:18 · 1031 阅读 · 0 评论 -
JNI初步(一)java调用c方法
本例子基于上一篇配置成功后进行简单的函数调用 还未配置成功参照如下链接配置https://blog.youkuaiyun.com/we1less/article/details/1086857341.创建jni类 加载动态库public class Jni { { System.loadLibrary("javaCallc"); } //调用c代码实现加法运算 public native int add(int a,int b);}2.利用终端cd原创 2020-09-20 14:08:25 · 513 阅读 · 0 评论 -
JNI初步配置并且实现一个小例子
首先在新建项目中的local.properties中配置ndk路径ndk.dir=C\:\\android-ndk-r21b在gradle.properties中配置兼容老版本ndkandroid.useDeprecatedNdk=truejni的使用过程1.首先新建调用c代码的类这里以Godv为例public class Godv { { System.loadLibrary("Hello"); } //定义调用代码 publi原创 2020-09-19 23:10:53 · 1221 阅读 · 0 评论