image.png
0x01 Introduction
Rust语言突然很火,其运行速度堪比C++,有传言说可能会成为C/C++的替代品。但是这不是今天讨论的话题。还是来看下Rust强大的交叉编译吧,用Rust构建so库。网络上大都是在Linux系统下操作,包括官方文档也都是以Linux系统为例说明的。今天我们就来详细的讲一下如何在Windows下使用Rust构建so库,以及Rust构建的so文件与传统的C/C++有什么区别呢?
0x02 Tools
主要工具:
Android Studio——编写Android Demo的工具
IDEA(VS Code也可以)——编写Rust语言的工具
Python——执行生成工具链的 python脚本
其它工具(非必须):
IDA——反编译so文件
0x03 Environment
安装Rust语言环境
安装Python环境
安装Android SDK和Android NDK环境
0x04 Code
新建项目
IDEA安装Rust插件,新建项目。新建项目的项目名称如果存在多个单词建议使用下划线分隔,比如rust_jni_android,防止后面编译报warning。
添加依赖
在Cargo.toml中添加JNI依赖,并声明lib.rs的crate_type为cdylib。告知编译器要编译成库。这样将会构建出动态库 (.so, .dylib 或