写点什么

jni

0 人感兴趣 · 28 次引用

  • 最新
  • 推荐
https://static001.geekbang.org/infoq/82/823dc8006a275f104080a7508e7e9ca9.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

JNI 中实现类似 C++ 回调方法 - 结构体操作

上篇文章讲述了JNI中C++简单的调用Java函数,接下来我们要解决上次留下的疑惑问题进行解答,如何调用带有结构体的java函数。

JNI 中实现类似 C++ 回调的方法(1)

前些日子刚刚解决了Java调用C++代码的中间键搞定,这不,又有新的功能了,还要在写so文件,其实我的内心十分的吐槽,左一个右一个的,直接用java写不香吗,搞的C++程序员还得写个中间键,哎!就当自己多了项技能吧!

密集计算场景下的 JNI 实战

本文笔者将简单介绍 JNI 技术,并介绍简单的原理和性能分析。通过分享我们的实践过程,带各位读者体验 JNI 技术的应用。

https://static001.geekbang.org/infoq/7a/7a5632dce5207d2703f4814e43a4cee8.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Android C++ 系列:C++ 最佳实践 6 constexpr 与 decltype

用户头像
轻口味
2022-04-19

本文作为const内容的延续,介绍了constexpr和decltype两种修饰符,以及类型别名的两种方式,以及typedef别名使用容易遇到的问题。

https://static001.geekbang.org/infoq/7a/7a5632dce5207d2703f4814e43a4cee8.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Android C++ 系列:C++ 最佳实践 5 const

用户头像
轻口味
2022-04-19

本文介绍了const与宏定义常量的区别,以及const修饰变量的注意事项,绑定常量的引用、指向常量的指针和常量指针。并介绍了顶层const与底层const的区别。

https://static001.geekbang.org/infoq/7a/7a5632dce5207d2703f4814e43a4cee8.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Android C++ 系列:JNI 中发送 Http 网络请求

用户头像
轻口味
2022-04-07

本文介绍了Android在jni中使用libcurl发送http网络请求,libcurl是一个传统的功能强大的客户端网络库,优点是成熟稳定,确定是功能强大带来的臃肿,编译出来的动态库有400多k。

https://static001.geekbang.org/infoq/7a/7a5632dce5207d2703f4814e43a4cee8.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Android C++ 系列:JNI 中的 Handler--ALooper

用户头像
轻口味
2022-01-27

本文回顾了Android 传统Handler机制,以及在JNI中实现Looper和JNI提供的ALooper的使用方式和技巧:使用管道来实现线程通信,并通过自定义通信协议来解决粘包问题。

Android C++ 系列:Linux 信号(二)

用户头像
轻口味
2021-11-27

如果在进程解除对某信号的阻塞之前这种信号产生过多次,将如何处理?POSIX.1允 许系统递送该信号一次或多次。Linux是这样实现的:常规信号在递达之前产生多次只 计一次,而实时信号在递达之前产生多次可以依次放在一个队列里。

Android C++ 系列:Linux 信号(一)

用户头像
轻口味
2021-11-26

本文介绍了信号的编号,信号机制,信号产生的种类,信号产生的原因,以及进程处理信号的行为,信号集处理函数等。

Android C++ 系列:Linux 进程间通信 (二)

用户头像
轻口味
2021-11-25

本文介绍了mmap函数:mmap可以把磁盘文件的一部分直接映射到内存,这样文件中的位置直接就有对应的内存 地址,对文件的读写可以直接用指针来做而不需要read/write函数。

https://static001.geekbang.org/infoq/7f/7fbcd28656ebe1ebf2b6cc74130855fe.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Android C++ 系列:Linux 进程 (三)

用户头像
轻口味
2021-11-23

本文介绍了僵尸进程和孤儿进程的概念解决方案。僵尸进程: 子进程退出,父进程没有回收子进程资源(PCB),则子进程变成僵尸进程;孤儿进程: 父进程先于子进程结束,则子进程成为孤儿进程,子进程的父进程成为1号 进程init进程,称为init进程领养孤儿进程。

https://static001.geekbang.org/infoq/7f/7fbcd28656ebe1ebf2b6cc74130855fe.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Android C++ 系列:Linux 进程 (二)

用户头像
轻口味
2021-11-22

本文介绍了进程原语:fork和exec。 fork调用一次返回两次:父进程中返回子进程ID ;子进程中返回0;读时共享,写时复制。

https://static001.geekbang.org/infoq/7f/7fbcd28656ebe1ebf2b6cc74130855fe.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Android C++ 系列:Linux 进程 (一)

用户头像
轻口味
2021-11-21

本文介绍了进程的基本概念,进程控制块信息,fork和exec两个主要的系统调用。以及进程环境的修改及获取,进程状态的修改与获取。

https://static001.geekbang.org/infoq/65/65bdb21624feca43c33f1826feeb19f4.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Android C++ 系列:Linux 文件系统 (二)

用户头像
轻口味
2021-11-20

本文介绍了Virtual Filesystem(VFS)虚拟文件系统及其原理,以及stat、chmod、chown、utime等常用文件操作函数以及mkdir、rmdir、readdir等目录操作函数。

https://static001.geekbang.org/infoq/65/65bdb21624feca43c33f1826feeb19f4.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Android C++ 系列:Linux 文件系统 (一)

用户头像
轻口味
2021-11-19

本文介绍了经典的ext2文件系统的块结构:超级块、块组描述符表(GDT)、块位图、inode位图(inode Bitmap)。数据块(Data Block) 根据不同的文件类型对应情况,并介绍了数据块寻址方式。

https://static001.geekbang.org/infoq/65/65bdb21624feca43c33f1826feeb19f4.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Android C++ 系列:Linux 文件 IO 操作 (二)

用户头像
轻口味
2021-11-18

本文介绍了read/write的系统调用,以及阻塞、非阻塞相关的概念以及配置方式,等待超时方式。还介绍了lseek、fcntl、ioctl文件操作相关的系统调用。

https://static001.geekbang.org/infoq/ce/ce6feaa003ffc2b41c79286866c2070d.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Android C++ 系列:Linux 文件 IO 操作 (一)

用户头像
轻口味
2021-11-17

文本介绍了Linux下的文件操作命令、系统调用、API接口等。并介绍了C标准函数与系统函数的区别,PCB概念等。

https://static001.geekbang.org/infoq/c8/c80182db0d94123580098f024c7f1c36.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Android C++ 系列:访问 Assets 文件夹

用户头像
轻口味
2021-11-16

今天我们介绍了Android Assets文件夹使用,包括Java层和JNI层,并详细介绍了JNI层AAssetManager接口的使用。

https://static001.geekbang.org/infoq/c8/c80182db0d94123580098f024c7f1c36.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Android C++ 系列:JNI 操作 Bitmap

用户头像
轻口味
2021-11-15

本文介绍了Android Bitmap相关知识,以及在JNI层操纵Bitmap:检索Bitmap对象信息、访问原生像素缓存等,并介绍了JNI层旋转、镜像Bitmap的操作实战。

https://static001.geekbang.org/infoq/c8/c80182db0d94123580098f024c7f1c36.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Android C++ 系列:JNI 中的线程操作

用户头像
轻口味
2021-11-14

本文介绍了通过C语言创建线程的方法和C层等待线程返回的方法,以及JNI提供的AttachCurrentThread 和 DetachCurrentThread方法,通过该方法将C线程附着到Java虚拟机,同时我们还介绍了JNI_OnLoad方法和JavaVM结构。

https://static001.geekbang.org/infoq/c8/c80182db0d94123580098f024c7f1c36.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Android C++ 系列:JNI 调用时的异常处理

用户头像
轻口味
2021-11-13

当发生异常时,一定要先处理异常,然后才能继续执行后面的步骤。如果不是需要立即返回的,那么就通过 ExceptionClear清除这次异常,然后在进行其他的处理。对于在 Native 中发生了异常,需要让 Java 层去处理了,则在 Native 中抛出对应的异常,Java层捕获。

https://static001.geekbang.org/infoq/c8/c80182db0d94123580098f024c7f1c36.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Android C++ 系列:JNI 调用时缓存字段和方法 ID

用户头像
轻口味
2021-11-11

之前分享的JNI操作是基础,基于应用到实战中就要讲究各种技巧,用以提升效率。本文提到JNI调用时字段和方法ID缓存其实最终的方案还是以初始化时缓存为主,是在实际开发中总结出来的。

https://static001.geekbang.org/infoq/c8/c80182db0d94123580098f024c7f1c36.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Android C++ 系列:认识 JNI

用户头像
轻口味
2021-11-10

本介绍了JNI概念以及JNI的作用、JNI提供的接口,以及我们常用到的一些使用了JNI的开源程序。

https://static001.geekbang.org/infoq/c8/c80182db0d94123580098f024c7f1c36.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Android C++ 系列:JNI 调用 Java 类的构造方法和父类的方法.md

用户头像
轻口味
2021-11-09

本文讲解了JNI层创建Java层对象的两种方法(通过NewObject一次性创建和通过AllocObject 和CallNonvirtualVoidMethod分布创建的方法)和如何在JNI层调用Java层类对象的父类方法的方法。对一些复杂的项目使用JNI特性提供了一些思路。

Java 筑基 - JNI 到底是个啥

用户头像
码农参上
2021-08-18

在前面介绍Unsafe的文章中,简单的提到了java中的本地方法(Native Method),它可以通过JNI(Java Native Interface)调用其他语言中的函数来实现一些相对底层的功能,本文我们就来顺藤摸瓜,介绍一下jni以及它的使用。

Java 的这个强大功能,很多人都不知道

​​​​​​摘要:大多数框架采用单一的语言所开发。JNI这项Java中提供的强大功能,却逐渐的被人遗忘了。

https://static001.geekbang.org/infoq/a2/a260e7abf737e4158384366b2b510401.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

我看 JAVA 之 Object & JNI

用户头像
awen
2021-02-26

注:基于jdk11 我看JAVA系列 主要是针对JDK源码的学习,沉淀 本章介绍了Object类和JNI的使用

https://static001.geekbang.org/infoq/c4/c4d3c9f925af9a38204a49d498975c67.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

java 是如何调用 native 方法?hotspot 源码分析必会技能

用户头像
诸葛小猿
2020-11-14

为什么到看JDK源码时,到native方法就没有了?native方法是干啥的?在哪里能看到native方法?java是如何调用native方法的?今天,就通过实际模拟,看看java是如何调用native方法的。

jni_jni技术文章_InfoQ写作社区