Rust Android 示例项目教程
1. 项目的目录结构及介绍
rust-android-example/
├── android/
│ ├── app/
│ │ ├── build.gradle
│ │ ├── src/
│ │ │ ├── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── example/
│ │ │ │ │ └── rustandroid/
│ │ │ │ │ └── MainActivity.java
│ │ │ │ ├── res/
│ │ │ │ │ ├── drawable/
│ │ │ │ │ ├── layout/
│ │ │ │ │ │ └── activity_main.xml
│ │ │ │ │ ├── mipmap/
│ │ │ │ │ └── values/
│ │ │ │ │ └── strings.xml
│ │ │ │ └── rust/
│ │ │ │ └── src/
│ │ │ │ └── lib.rs
│ │ │ └── test/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── rustandroid/
│ │ │ └── ExampleInstrumentedTest.java
│ │ └── proguard-rules.pro
│ └── build.gradle
│ └── settings.gradle
├── Cargo.toml
└── src/
└── lib.rs
目录结构介绍
android/
: 包含Android项目的所有文件。app/
: Android应用的主要目录。build.gradle
: 应用模块的Gradle构建文件。src/
: 源代码目录。main/
: 主源代码目录。AndroidManifest.xml
: Android应用的清单文件。java/
: Java源代码目录。com/example/rustandroid/
: 应用的主要Java包。MainActivity.java
: 应用的主活动。
res/
: 资源目录。drawable/
: 可绘制资源。layout/
: 布局文件。activity_main.xml
: 主活动的布局文件。
mipmap/
: 应用图标资源。values/
: 字符串和其他值资源。strings.xml
: 字符串资源文件。
rust/
: Rust源代码目录。src/
: Rust库的源代码。lib.rs
: Rust库的入口文件。
test/
: 测试代码目录。java/
: Java测试代码目录。com/example/rustandroid/
: 测试代码的主要包。ExampleInstrumentedTest.java
: 仪器测试示例。
proguard-rules.pro
: ProGuard规则文件。
build.gradle
: 项目的Gradle构建文件。settings.gradle
: Gradle设置文件。
Cargo.toml
: Rust项目的配置文件。src/
: Rust源代码目录。lib.rs
: Rust库的入口文件。
2. 项目的启动文件介绍
Rust启动文件
src/lib.rs
是Rust库的入口文件,它定义了Rust库的主要功能和接口。
// src/lib.rs
#[no_mangle]
pub extern "C" fn hello_rust() -> *const u8 {
"Hello from Rust!" as *const u8
}
Android启动文件
android/app/src/main/java/com/example/rustandroid/MainActivity.java
是Android应用的主活动,它负责启动应用并调用Rust库中的函数。
// MainActivity.java
package com.example.rustandroid;
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
static {
System