Od 27 marca 2025 r. zalecamy używanie android-latest-release
zamiast aosp-main
do kompilowania i wspołtworzenia AOSP. Więcej informacji znajdziesz w artykule o zmianach w AOSP.
Moduły binarne
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Pliki binarne Rusta można wygenerować za pomocą typu modułu rust_binary
, na przykład:
rust_binary {
name: "hello_rust",
srcs: ["src/hello_rust.rs"],
}
Podobnie możesz użyć parametru rust_binary_host
, aby udostępnić moduł tylko dla hosta.
Właściwości rust_binary
Oprócz ważnych wspólnych właściwości te właściwości są również ważne lub mają unikalne zachowanie specyficzne dla typu modułu rust_binary
:
- static_executable: tworzy ten plik binarny jako statyczny plik binarny i zakłada, że
prefer_rlib
to true
. Pełne pliki wykonywalne można generować tylko w przypadku celów bionicznych. W przypadku celów niebędących celami bionicznymi oznacza to tylko, że prefer_rlib
jest true
, ale nadal dynamicznie łączy libc
i libdl
.
- prefer_rlib: zmienia
rustlibs
na rlib
, aby domyślnie wybierać tę drugą funkcję w przypadku kierowania na urządzenia, oraz łączy libstd
jako rlib
w kierowaniu na urządzenia. Pamiętaj, że jest to domyślne zachowanie w przypadku docelowych hostów i nie ma na nie wpływu.
Połączenie
Domyślnie moduły rust_binary
, które kierują reklamy na urządzenia, są zawsze dynamicznie łączone z poziomem libstd
i domyślnie preferują biblioteki dylib
dla zależności wymienionych w poziomie rustlibs
, chyba że prefer_rlib
ma wartość true
. Jeśli wymagane są całkowicie statyczne pliki binarne, zapoznaj się z właściwością static_executable
.
Moduły hosta są zawsze łączone statycznie z libstd
i domyślnie preferują biblioteki rlib
dla zależności wymienionych w rustlibs
.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-07-27 UTC."],[],[],null,["# Binary modules\n\nRust binaries can be produced using the `rust_binary` module type; for example: \n\n rust_binary {\n name: \"hello_rust\",\n srcs: [\"src/hello_rust.rs\"],\n }\n\nSimilarly, you can use `rust_binary_host` to provide a host-only\nmodule.\n\nNotable rust_binary properties\n------------------------------\n\nIn addition to the [Important common properties](/docs/setup/build/rust/building-rust-modules/android-rust-modules#important-common-properties),\nthe following properties are also either important, or exhibit unique behavior\nspecific to the `rust_binary` module type:\n\n- **static_executable** : Builds this binary as a static binary, and implies `prefer_rlib` is `true`. Fully static executables can only be produced for bionic targets. For non-bionic targets, this implies only that `prefer_rlib` is `true`, but it still links `libc` and `libdl` dynamically.\n- **prefer_rlib** : Changes the `rustlibs` linkage to select the `rlib` linkage by default for device targets, and links `libstd` as an `rlib` on device targets. Note that this is the default behavior for host targets, and has no impact on them.\n\nLinkage\n-------\n\nBy default, `rust_binary` modules that are targeting devices are always linked\ndynamically against `libstd` and by default will prefer `dylib` libraries for\ndependencies listed in `rustlibs` unless `prefer_rlib` is `true`. If fully\nstatic binaries are required, see the `static_executable` property.\n\nHost modules are always linked statically against `libstd` and\nby default prefer `rlib` libraries for dependencies that are listed in\n`rustlibs`."]]