Platform: Android #573

Open
opened 2025-12-14 20:48:05 +00:00 by SakulFlee · 0 comments
SakulFlee commented 2025-12-14 20:48:05 +00:00 (Migrated from github.com)

Android is only technically supported. Most tests and examples don't work right now.
There are multiple problems in need of fixing:

1. Proper Android build tools

Unfortunately, tools like cargo-apk or cargo-xbuild are outdated / not supported anymore, and there are no proper replacements. Thus, we needed to find a way of compiling to Android without such tools. While this works, this isn't conclusive at all and it is a rather complicated process (... at least first time setup is a mess).
We don't necessarily need our own tool, but some easy to run command chain like Makefile or Just.

This also should take care of installing dependencies as-needed and possibly making the Android Studio project.

2. CI / CD

Similar to 1., we don't have any proper CI / CD setup for Android.
We'd need a way of easily replicating given configurations of Android versions X source code revisions.
Ideally, we'd build full APK files and upload them as Artifacts.

(Optional, not sure if needed ... probably useless for now until we have bigger examples: Push to something like F-Droid!)

3. Asset management

Assets are done much differently on mobile platforms like Android.
Most, if not all, of the assets are included into the APK file and have to be read somehow.
The Android SDK commonly provides functions for easily extracting assets from the currently executed APK file, but how do we do that in Rust?

We'll have to check if Cargo-NDK, Android-Activity or similar crates expose functionality like this.
If not, we'll have to use JNI bindings to the actual Android SDK functions.

This also applies for writing files like save games!
There needs to be a solution for saving files locally.

Android is only technically supported. Most tests and examples don't work right now. There are multiple problems in need of fixing: ### 1. Proper Android build tools Unfortunately, tools like cargo-apk or cargo-xbuild are outdated / not supported anymore, and there are no proper replacements. Thus, we needed to find a way of compiling to Android **without** such tools. While this works, this isn't conclusive at all and it is a rather complicated process (... at least first time setup is a mess). We don't necessarily need our own tool, but some easy to run command chain like Makefile or Just. This also should take care of installing dependencies as-needed and possibly making the Android Studio project. ### 2. CI / CD Similar to 1., we don't have any proper CI / CD setup for Android. We'd need a way of easily replicating given configurations of Android versions X source code revisions. Ideally, we'd build full APK files and upload them as Artifacts. (Optional, not sure if needed ... probably useless _for now_ until we have bigger examples: Push to something like F-Droid!) ### 3. Asset management Assets are done much differently on mobile platforms like Android. Most, if not all, of the assets are included into the APK file and have to be read _somehow_. The Android SDK commonly provides functions for easily extracting assets from the currently executed APK file, but how do we do that in Rust? We'll have to check if Cargo-NDK, Android-Activity or similar crates expose functionality like this. If not, we'll have to use JNI bindings to the actual Android SDK functions. This also applies for writing files like save games! There needs to be a solution for saving files locally.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
SakulFlee/Orbital#573
No description provided.