NDK获取JNIEnv

JNIEnv* (*getJNIEnv)();
void * fu = dlopen(“/system/lib/libandroid_runtime.so”,RTLD_NOW);
getJNIEnv = dlsym(fu,”_ZN7android14AndroidRuntime9getJNIEnvEv”);
 
jnienv=getJNIEnv();

  如果是executable类型的文件

如果需要JNIENV,则这样获取

JNIEnv* (*getJNIEnv)();

void * fu = dlopen(“/system/lib/libandroid_runtime.so”,RTLD_NOW);

getJNIEnv = dlsym(fu,”_ZN7android14AndroidRuntime9getJNIEnvEv”);

jnienv=getJNIEnv();

时间: 2024-12-17 09:21:57

NDK获取JNIEnv的相关文章

NDK中可靠的获取JNIEnv*的方法

使用NDK时,几乎任何方法都需要一个JNIEnv来调用.这个类是和线程相关的,如何可靠的获取它? 首先,作为NDK的so,必然有一个地方是由android系统调用的,这个调用将带来一个JNIEnv参数,不要使用它,而是调用: JNIEnv->GetJavaVM(&g_javaVM); 获取一个JavaVM类型变量. 接着在需要使用JNIEnv的时候调用 int status; JNIEnv* _jniEnv = NULL; status = g_javaVM->GetEnv((void

Android JNI 之 JNIEnv 解析

. jni.h文件 : 了解 JNI 需要配合 jni.h 文件, jni.h 是 Google NDK 中的一个文件, 位置是 $/android-ndk-r9d/platforms/android-19/arch-arm/usr/include/jni.h ; 1. JNIEnv 作用 JNIEnv 概念 : 是一个线程相关的结构体, 该结构体代表了 Java 在本线程的运行环境 ; JNIEnv 与 JavaVM : 注意区分这两个概念; -- JavaVM : JavaVM 是 Java

【Android 系统开发】Android JNI 之 JNIEnv 解析

. jni.h文件 : 了解 JNI 须要配合 jni.h 文件, jni.h 是 Google NDK 中的一个文件, 位置是 $/android-ndk-r9d/platforms/android-19/arch-arm/usr/include/jni.h ; 1. JNIEnv 作用 JNIEnv 概念 : 是一个线程相关的结构体, 该结构体代表了 Java 在本线程的执行环境 ; JNIEnv 与 JavaVM : 注意区分这两个概念; -- JavaVM : JavaVM 是 Java

初识Android NDK

本文介绍Windows环境下搭建Android NDK开发环境,并创建一个简单的使用Native代码的Android Application. 一.环境搭建 二.JNI函数绑定 三.例子 一.环境搭建 1. 操作系统:Windows7 64位 2. 安装Java,最新的JDK8貌似还不支持,敢于折腾的同学可以试试,下载JDK7安装即可,别忘了添加JDK的bin目录到PATH环境变量.http://www.oracle.com/technetwork/java/javase/downloads/j

Ubuntu+IntelliJ IDEA+Android 配置NDK环境+openCV

最近需要将Python人证对比模型移植安卓端.安卓端需要使用openCV简单的人像提取处理.在配置openCV前首先需要配置NDK环境. NDK的介绍(http://www.cnblogs.com/leaven/archive/2010/05/27/1744855.html) 一 NDK在Ubuntu的配置 参考: http://blog.csdn.net/jq_ak47/article/details/52349189 二 NDK在IntelliJ IDEA中的配置 参考: http://bl

Android JNI(一)——NDK与JNI基础

本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Native相互调用 Android JNI学习(四)——JNI的常用方法的中文API Android JNI学习(五)——Demo演示 本片文章大纲如下: 1.导读 2.什么是NDK 3.为什么使用NDK 4.NDK到SO 5.JNI 大纲.png 一.导读 在Android OS上开发应用程序,Goog

Android jni/ndk编程二:jni数据类型转换(primitive,String,array)

一.数据类型映射概述 从我们开始jni编程起,就不可能避开函数的参数与返回值的问题.java语言的数据类型和c/c++有很多不同的地方,所以我们必须考虑当在java层调用c/c++函数时,怎么正确的把java的参数传给c/c++函数,怎么正确的从c/c++函数获取正确的函数返回值:反之,当我们在c/c++中使用java的方法或属性时,如何确保数据类型能正确的在java和c/c++之间转换. 回顾我们上一篇文章中的那个c函数: #include <stdio.h> #include <jn

Android 获取内存信息

由于工作需要,研究了一下android上获取内存信息的方法,总结如下: 1.SDK获取 在Java层利用API获取很简单,直接使用ActivityManager.MemoryInfo类即可,代码如下: ActivityManager activityManager=(ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); ActivityManager.MemoryInfo memInfo=new ActivityManager.

【转】Android JNI编程—JNI基础

原文网址:http://www.jianshu.com/p/aba734d5b5cd 最近看到了很多关于热补的开源项目——Depoxed(阿里).AnFix(阿里).DynamicAPK(携程)等,它们都用到了JNI编程,并且JNI编程也贯穿了Android系统,学会JNI编程对于我们学习研究Android源码.Android安全以及Android安全加固等都是有所帮助的.但是对于我们这些写Android应用的,大部分时间都是在使用Java编程,很少使用C/C++编程,对于JNI编程也了解的比较