Instructions on building and testing those packages on an Android device or emulator are in the README. Building with these SDKs is primarily tested on linux, but using them on Mac or Windows should be possible too.
I plan to set up the same for the 5.5 branch snapshots and trunk, which will build the latest Swift SDK from source before testing it. I will also add some Swift scripts to automate the configuration of the SDK and building it.
Any suggestions of Swift packages to add to this Android CI are welcome, and you could use the CI script as an example to build or test packages yourself. Right now, the largest package tested on the CI is Swift NIO, which is about 60k lines of Swift code, about half tests.
That would be a good place to get ideas for Swift packages to add, but I doubt I will add server-oriented packages like Vapor. Some of the client-side packages make sense, but I may not need or be familar with them myself, pulls welcome.
As you can see with this pull adding two Swift packages, it is pretty easy. I need to switch the Android emulator to run on macOS soon, as it runs without hardware acceleration on linux in the github-provided CI VMs so the 11 testsuites take 90-120 mins. on there, as opposed to several mins. on my Android AArch64 phone.
I haven't tested it extensively, but simple things like jumping to the definition of a symbol in the same Swift file appear to work. Thanks to @blangmuir and everyone else who contributed to sourcekit-lsp.
You can also use this Swift toolchain on most Chromebooks, as most of them support installing Android apps these days, so you can install Termux and Swift on there too.
Native builds of the Swift 5.6 toolchain that run on Android in the Termux app should work for 64-bit platforms, but cannot be built for 32-bit armv7 right now, because of some compilation issue that crept in last year. I'm guessing this is true when building the Swift compiler for all 32-bit platforms, as I doubt this is specific to Android armv7. I'll investigate further and update the Swift toolchain for Termux soon.
Native builds of the Swift 5.8 toolchain that run on Android in the Termux app are also online. Since I build that native compiler and control where the libraries are installed, I put the Swift libraries in <sysroot>/usr/lib/ for the first time (based on a comment by @etcwilde), spun off Swift runtime library and SDK packages that can be used from any Android device, and patched the Swift compiler to look in the right places.
That means cross-compiling Swift in Termux is now as simple as
> pkg install swift swift-sdk-arm
> swiftc -target armv7-linux-android hello.swift
A multi-architecture cross-compilation SDK for Swift 5.9 to Android is now up. This release only supports the last LTS NDK 25c, because the latest LTS NDK 26 added nullability annotations everywhere, which broke some code in the Swift stdlib and corelibs. I'm looking at fixes that can hopefully be backward-compatible with the previous Bionic headers, which I'll upstream when ready. I also plan to have an experimental SDK bundle supporting NDK 26 up later this month.
Native builds of the Swift 5.9 toolchain that run on Android devices, similar to Swift Playgrounds on iPadOS, are now available in the Termux app for Android. You can use it to build Swift code on most Android devices and Chromebooks, through the ChromeOS support for Android apps.
I'm happy to report that bare regex literals work again with this native Swift toolchain and so do the new macros, because of upstreampulls by @Douglas_Gregor, @bnbarham, and @rintaro that I backported to 5.9 and used on Android. Thanks to those authors for their work.