Hacker News new | ask | show | jobs
by johnklos 695 days ago
I remember asking some Android devs, "How do I install a compiler on Android?"

They proceeded to tell me what to download on my laptop. I repeated my question, emphasizing "ON Android". They gave me blank looks. I said, "I want to install a toolchain ON an Android device, and run it there. How do I do that?"

They had no idea.

I asked, "What if you want to compile something that requires compiling something, then using that something further down the line, like Perl?"

Again, no idea.

A platform without a native toolchain is a very awkward place to be. I stopped trying to wrap my head around it and stopped playing with Android.

3 comments

To me it just sounds like you want Termux. It works pretty well for things like gcc, Python, or Perl.

For fun, I managed to get a full X environment running, including Intellij! The amazing thing was that it actually ran fairly decently on a Pixel 5, though it did tend to run out of memory with anything more than trivial projects.

This looks like exactly what I wanted to find! Thank you.

I had been soured by the Android platform because I bought a brand new device, mostly because it had a physical keyboard, only to find out that it wouldn't get any new updates, nor could I use Skype on it, nor could I tether with it. Android was supposed to be the "open" platform, but at the time (which, admittedly, was something like ten or so years ago), it wasn't.

If I can use Termux to get a modern OpenSSH on to my device, it may get used yet! Thank you :)

You can indeed use SSH. As client OR server.
"Toybox's main goal is to make Android self-hosting by improving Android's command line utilities so it can build an installable Android Open Source Project image entirely from source under a stock Android system. After a talk at the 2013 Embedded Linux Conference explaining this plan, Google merged toybox into AOSP and began shipping toybox in Android Marshmallow in 2015." --Rob Landley

http://landley.net/toybox/

Sounds like an X Y problem.

What you want is to cross compile using the NDK toolchain. That should get you 95% of the way there (barring tweaking with downstream project flags to work with bionic libc and limited Android user land and other Android idiosyncrasies)

What I really want (or wanted, I should say) is a native toolchain that runs on the Android device, not a cross toolchain that runs elsewhere. NDK isn't that.