Jni
  • 2024-09-06android利用jni读取assets文件夹下的文件
    一、概述在jni的开发中,有时候会在c/c++层读取assets文件夹下的图片。有两种方式可以选择:方式一:在java/kotlin层把文件读取出来,然后以字符串的形式传递给jni层。方式二:java/kotlin层传递一个文件名,jni利用AAssetManager读取文件内容目前介绍的是第二种方
  • 2024-09-06android从java/kotlin层传递bitmap给jni并使用其像素
    一、概述在做jni开发的时候,有些情况下会直接通过java/kotlin层传递bitmap给jni,并取出其数据进行利用。例如:OpenGLES绘制纹理、保存像素图片等。二、代码示例1.在cmake中引入可以操作jni层BitmapInfo的libjnigraphics-landroid2.导入头文件#in
  • 2024-09-05Android之JNI开发
    JNIJNI是JavaNativeInterface的缩写,俗称Java本地接口,是Java语言提供的用于Java和C/C++相互沟通的机制,Java可以通过JNI调用本地的C/C++代码,本地的C/C++的代码也可以通过JNI调用Java代码。那什么场景下可能会用到JNI呢?1、需要提升性能时,比如说做一些底层的开发,例如音视频处理之类
  • 2024-09-03JNI -cmake sample
    CMakeLists.txtcmake_minimum_required(VERSION3.16)set(CMAKE_CXX_STANDARD11)project(test)set(SRCsrc/HelloWorld.cpp)#配置cpp源文件到SRC变量中set(EXECUTABLE_OUTPUT_PATH./build)#配置输出目录set(JAVA_HOME$ENV{JAVA_HOME})#获取系统环境变量中的
  • 2024-08-31【大数据】Java与Python的无缝对接:探讨Java调用Python的方法与原理
    文章目录一、引言二、Java调用Python的原理1.JNI(JavaNativeInterface)2.Jython3.进程间通信三、Java调用Python的实现方法及示例1.使用JNI调用Python2.使用Jython调用Python3.使用进程间通信调用Python4.性能和安全性考虑5.实际应用场景6.最佳实践四、总结一、
  • 2024-08-27JNI DEMO
       make.shjavac-h.HelloJNI.javag++-I"$JAVA_HOME/include"-I"$JAVA_HOME/include/dawin"-shared-olibhelloJNI.dylibHelloJNI.cppjavacHelloJNI.javajavaHelloJNI HelloJNI.javapublicclassHelloJNI{privatenative
  • 2024-08-02让C++通过JNI来callback回调kotlin侧代码
    kotlin一次通过jni调用C++侧,然后C++侧多次回传数据让C++通过JNI来callback回调kotlin侧代码1.定义Kotlin接口在Kotlin中定义一个用于接收C++回调的接口:interfaceDataCallback{funonDataReceived(data:String)}2.定义C++侧的JNI方法在C++侧,实现接收指令和
  • 2024-07-28jin版本
    VersionInformationGetVersionjintGetVersion(JNIEnv*env);Returnstheversionofthenativemethodinterface.ForJavaSEPlatform21andlater,itreturnsJNI_VERSION_21.ThefollowingtablegivestheversionofJNIincludedineachreleaseoftheJav
  • 2024-07-26创建 Java 虚拟机JVM中的参数说明
    1、上一篇创建虚拟机的代码加参数备注varOptions:array[0..4]ofJavaVMOption;VM_args:JavaVMInitArgs;ErrCode:Integer;begin{创建Java虚拟机}FJavaVM:=TJavaVM.Create(JNI_VERSION_1_8);//这个选项设置Java类路径,指定JVM应该在哪里
  • 2024-07-26delphi android发送与接收广播
    在Delphi中,可以使用TLocalBroadcastManager类来发送和接收广播。以下是一个示例:发送广播:```delphiuses Androidapi.JNI.GraphicsContentViewText,Androidapi.Helpers,Androidapi.JNI.JavaTypes,Androidapi.JNI.LocalBroadcastManager;procedureSendBroadcast(constAAction:
  • 2024-07-17JNI和HAL 的区别
    JNI(JavaNativeInterface)和HAL(HardwareAbstractionLayer)在Android系统中都扮演着与本地代码交互的重要角色,但它们的功能和应用场景有所不同。以下是它们之间的关系和区别:JNI(JavaNativeInterface)用途:JNI是一种框架,允许Java代码调用本地(Native)C/C++代
  • 2024-07-15Java JNI 学习笔记
    JavaJNI学习笔记JNI(JavaNativeInterface)是Java提供的一种接口,使得java代码可以与其他语言(如C和C++)编写的代码进行交互。具体来说,JNI允许你在Java中调用本地(Native)代码,或者从本地代码调用Java方法。基本概念jni.h:这是JNI的头文件,使用javac生成,定义了JNI
  • 2024-06-08vscode编译c/c++找不到jni.h文件
    解决办法:一、下载JDK访问Oracle官网的Java下载页面:JavaDownloads|Oracle选择适合您操作系统的JDK版本:对于Windows,选择“Windowsx64”或“Windowsx86”(取决于您的系统是64位还是32位)。对于Linux,选择适合您Linux发行版的压缩包。对于Mac,选择“.dmg”或“.pkg”安装
  • 2024-05-28Android NDK使用指南(基础篇)
    引言在Android开发中,大多数应用程序都是用Java或Kotlin编写的。然而,有时候我们需要使用C或C++代码来提高性能,或者为了与现有的C/C++库集成。AndroidNDK就是为此目的而设计的工具包。本文将介绍AndroidNDK的相关基本概念和基础使用方法,帮助读者初步理解NDK。
  • 2024-05-23Android JNI/NDK环境的配置与Demo编译
    一、背景​JNI(JavaNativeInterface)和NDK(NativeDevelopmentKit)在Android开发中扮演着重要的角色。JNI,即Java本地接口,是Java平台的一部分,它允许Java代码与其他语言写的代码进行交互。通过JNI,Java代码可以调用本地应用程序或库中的代码,也可以被本地代码调用。这主要使得
  • 2024-03-22JNI 基础教学
    /*常用引用数据类型对比*Allobjectjobject*java.lang.Classjclass*java.lang.Stringstring*int[]jintArray*Object[]jobjectArray**JNI函数签名信息*java支持函数重载,因此仅仅根据
  • 2024-03-20Android JNI学习-使用第三方SO库
    https://david1840.github.io/2018/12/03/Android-JNI学习-使用第三方SO库/CMakeList.txt在CMake中将LibTest.so导入工程cmake_minimum_required(VERSION3.4.1)add_library(#Setsthenameofthelibrary.UseSo#Setsthelibraryasasha
  • 2024-02-05【APP逆向14】JNI开发简介之二
    简介:上一篇我们讲到了java调用C,今天继续聊C调用java1.C调用java的静态方法1.1:入口,java调用C的代码packagecom.nb.s4;classEncryptUtils{static{System.loadLibrary("enc");}publicstaticnativeStringv8();}1.2:C语言实现,调
  • 2024-02-05【APP逆向13】JNI开发简介之一
    简介:在一些不一般的APP中,核心算法不是直接写在java代码中,如果直接写在java中,逆向人员只需要简单的反编译就能找到;如是就出现了JNI:javanativeinterface,Java本地开发接口,实现JAVA和C语言之间的相互调用。将核心算法写在C语言中。1.正向开发流程1.1:新建一个java类,实现核心
  • 2024-01-03java调用rust 共享库的一些方法简单说明
    java与rust的调用,核心还是基于jni进行处理,rust社区实现了不少方便的工具可以提供rust到c的处理(比如生成头文件)以下是整理的一些资料,方便学习几个不错的包jni-rs 目前还在活跃更新中,同时github的start也比较多,同时不少开源软件在用,比如questdbrobusta 一个比较新的项目,使用
  • 2023-11-21java向 jni传递问文件指针
    1、创建fd,jni接口publicstaticnativeintopenFileFromNative(FileDescriptorfileDescriptor);2、java文件获取文件指针ParcelFileDescriptorpfd==getContentResolver().openFileDescriptor(filePathUri,"rw");FileDescriptorfd=pfd.getFileDescriptor()
  • 2023-11-21javap获取jni 对应数据类型
    先用javac生成*.class文件,然后javap-cCallJni.class更多帮助:javap-help
  • 2023-11-10Java JNI(Java Native Interface)攻击原理研究
    一、JavaJNI简介0x1:JNI是什么JNI(JavaNativeInterface,Java本地接口)是一种编程框架,使得Java虚拟机中的Java程序可以调用本地应用/或库,也可以被其他程序调用。本地程序一般是用其它语言(C、C++或汇编语言等)编写的,并且被编译为基于本机硬件和操作系统的程序。0x2:为什么需要JNI
  • 2023-11-04hook_so
    在对应的so加载后再执行hook代码//刚注入的时候这个so还没加载,需要hookdlopenfunctioninline_hook(){varbase_hello_jni=Module.findBaseAddress("libxxxx.so");console.log("base_hello_jni:",base_hello_jni);if(base_hello_jni){console.lo
  • 2023-11-01java webassembly 集成试用
    wasmerio这个组织实现了不少webassembly周边的工具,以下是一个简单的java集成试用安装命令因为java包默认没有发布到中央仓库,需要自己本地安装localmavenmvninstall:install-file-Dfile=./wasmer-jni-amd64-darwin-0.3.0.jar-DgroupId=org.wasmer-Dartifac