- 博客(6)
- 收藏
- 关注
原创 从Java到C++系列目录
从Java到C++:CMake 从Java到C++:JNI基本概念 从Java到C++:JNI实战 从Java到C++:异步 从Java到C++:数组拷贝(暂无) 从Java到C++:字符串(暂无) 从Java到C++:异常定位(暂无) 从Java到C++:动态加载/卸载so(暂无) ...
2022-03-19 19:02:59
2529
原创 从Java到C++:异步
从Java到C++系列目录 前言 摘要 本文主要通过一个简化的MediaPlayer实现,来讲解JNI的异步引发的几个问题: 异步线程如何获取JNIEnv? Java和C++的MediaPlayer对象如何实现一一映射? 异步任务回调如何避免内存泄漏? 代码 示例代码:简化的MediaPlayer 测试代码:MediaPlayerTest 简化版MediaPlayer 类图 注意事项: 左边是Java层的MediaPlayer。右边是C++层的MediaPlayer。两者通过android_media_M
2022-03-19 18:57:37
2142
原创 从Java到C++:JNI实战
从Java到C++系列目录 前言 概念 本文中: JNI方法:指JNI提供的一系列API。 native方法:跨native层调用的方法(Java->C/C++)。 C/C++方法:除native方法外,普通的C/C++方法。 native层:C/C++代码。 代码 示例代码:JNIInterface 测试代码:JNIInterfaceTest 摘要 本文主要内容如下: 加载so native方法声明、定义 native与static native 静态注册与动态注册 Java元素定位 局部引用与全局
2022-03-19 18:51:21
3302
原创 从Java到C++:JNI基本概念
从Java到C++系列目录 前言 JNI(Java Native Interface):是一组Native编程接口,用来实现Java(Kotlin亦可)与其他编程语言(例如 C、C++ 和汇编)的交互。 通过JNI,我们将一些重要代码下沉到C/C++层,提高反编译的难度。 通过JNI,我们可以调用C/C++一些成熟的、高性能的第三方库。如:调用OpenCV进行图像处理、调用FFMPEG进行音视频处理等。 JNI其实是用C/C++实现的,写JNI的时候,其实就是在写C/C++代码,要遵守C/C++的语法。 J
2022-03-19 18:45:44
2572
原创 从Java到C++:CMake
[从Java到C++系列目录] 前言 CMake是一个开源的、跨平台的构建工具。 在Android NDK(Native Development Kit)开发中,编译C/C++代码的方式,主要有两种:ndk-build、CMake。在Android源码中,你会频繁看见前者。而后者,则是Android Studio创建包含C/C++代码的项目时,默认使用的构建工具。CMake可以配合Gradle,完成整个项目的构建。 摘要 本文主要内容如下: 创建Native项目 Native项目的不同 CMake语法 代码
2022-03-19 18:42:22
3475
原创 FFmpeg:编译(Windows)
编译环境 Windows 10 编译流程 安装msys2 下载:MSYS2 安装:点击下载好的exe,这里选择默认的安装路径:C:\msys64. 配置环境变量:在windows的左下侧搜索栏,搜索环境变量,然后点击编辑系统环境变量。并将安装路径C:\msys64添加到系统变量Path中。 在windows的搜索栏搜索msys2,打开msys2的命令行窗口。 下载相关编译工具。在命令行中输入: pacman -S mingw-w64-x86_64-toolchain 使用
2022-03-19 18:28:55
5079
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅