julia android example
Heat
リリース ページから APK リリースをダウンロードすることもできます。
PS: ビルド済みの C++ ファイルをnative/libheat
に配置したため、再度ビルドする必要はありません。
コード生成を続行するには、MWORKS.Syslab にバンドルされている Julia AOT コンパイラである SyslabCC が必要です。
> scc build.jl -o libheat.dll --no-blas> ls .syslabcc-cache/libheat/ atomic_ops bin juliamk.jl libheat.cpp make.jl syslabcrt-dylib syslabcrt-io bdwgc ghc-filesystem lib libheat.h Makefile syslabcrt-intrinsics win32-implib
次に、 .syslabcc-cache/libheat/
の内容をnative/libheat
にコピーします。
アプリを実行するには Android モバイル デバイスが必要です。
このプロジェクトも Linux x64/aarch64 上でビルドされますが、2024/06 にリリースされた SyslabCC は MSVC をサポートしていないため、Windows 上ではビルドできない可能性があります (最近のものは Windows/macOS ビルドをサポートしていますが、まだ公開されていません)。
# Flutter Android のデバッグ モードは 32 ビット ABIflutter を使用します run# flutter run -d <あなたの Android 電話デバイス ID>
詳細については、「Flutter アプリのデバッグ」を参照してください。
Rust を使用して Julia が生成した C++ プロジェクトをビルドし、Flutter に統合します。
ただし、生成されたライブラリには Android 上のlibc++_shared.so
必要です。私は次のパッチを使用します。
コミットaa78bf1に従ってandroid/app/build.gradle
変更する
次の行をnative/hub/build.rs
に追加します。
let target_os = std::env::var("CARGO_CFG_TARGET_OS");match target_os.as_ref().map(|x| &**x) { Ok("android") => { println!("cargo:rustc -link-lib=dylib=stdc++"); println!("cargo:rustc-link-lib=c++_shared"); }、 _ => {}}