정보들이 너무 여기저기 파편화돼있어서 찾기가 힘들었음

일단 안드로이드용 바이너리 빌드하는 방법


1. 먼저 cargo new 로 프로젝트하나 대충만들고

Cargo.toml에

[lib]
name = "여기에 프로젝트 이름 입력"
crate-type = ["staticlib", "cdylib"]

[profile.release]
opt-level = 'z'     # Optimize for size.
lto = true          # Enable Link Time Optimization
codegen-units = 1   # Reduce number of codegen units to increase optimizations.
panic = 'abort'     # Abort on panic

이거 넣으셈

src/main.rs => src/lib.rs로 이름변경

그 다음에 코딩 ㄱㄱ


2. https://developer.android.com/ndk/downloadsndk 여기가서 ndk 다운로드 받아야함

아무대나 압축푸셈


3. .cargo 폴더 만들고 config파일 만든다음

[target.aarch64-linux-android]
linker = "/<your ndk path>/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android29-clang"
[target.armv7-linux-androideabi]
linker = "/<your ndk path>/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi29-clang"
[target.i686-linux-android]
linker = "/<your ndk path>/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android29-clang"
[target.x86_64-linux-android]
linker = "/<your ndk path>/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android29-clang"

이거 그대로 복사

<your ndk path>에 ndk 디렉터리주소 넣어야됨


4. 빌드

export PATH=$PATH:/<your ndk path>/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/bin/
rustup target add aarch64-linux-android
rustup target add armv7-linux-androideabi
rustup target add i686-linux-android
rustup target add x86_64-linux-android
cargo build --target aarch64-linux-android --release
cargo build --target armv7-linux-androideabi --release
cargo build --target i686-linux-android --release
cargo build --target x86_64-linux-android --release


그대로 따라하면 오류없이 말끔하게 빌드될꺼임

윈도우에서는 하지마셈 윈도우에선 크로스 컴파일 설정 너무 복잡함

윈도우쓰면 openssl같은 외부 라이브러리들 자동으로 빌드안되고 직접 하나하나씩 빌드해야됨


5. 연동

이제 구글에 flutter rust ffi 치고 들어가서 플러터 러스트 코드들 수정해주면된다