I'm brand new to Android; in fact I've never owned one.

But I'm traveling all this summer, and I'm very interested in doing some programming while I'm on the run.

QUESTION: Is it possible to run a full Ruby development environment with Emacs on Android? How?

And does "rooting" give you anything close to a real Linux system?

link|improve this question
feedback

2 Answers

up vote 1 down vote accepted

"Rooting" allows you access to the internal Android environment, which of course consists of more than just the Linux kernel. So you are running Linux, but you should consider it as though you are running under a different distribution than say Debian or Redhat.

There's a different set of standard libraries and some files are in different locations. At least on my Droid ext2 support is not built-in by default. There is also no init or cron. The full set of Linux modules is not available unless you compile them yourself and put then in /system/lib/modules. Important ones you may miss on standard ROMs are cifs, ext2, tun, and others.

Most, if not all, phones running Android are ARM CPUs. So the binaries you run on them must be ARM "EABI" "soft-float" binaries. If you have the source you can cross-compile whatever utilities you need, but read on.

There are many standard commands and utilities available in the /system/bin directory such as grep, ps, cp, rm, mv, ls, ip, even vi. You have enough to get by until you...

...use the "Linux Installer" utility to install a chroot'ed Debian environment. Debian has supported ARM for a while. It takes some work, but if you can root your phone, and have a sizeable enough SD card, this is the way to go.

This is close to a standard Linux system and under it you can install and run Ruby. Of course CPU and RAM limitations come into play.

link|improve this answer
feedback

Ruby has not been ported to Android, though you might want to check out Ruboto. For simple editing there are a few options, but I don't believe emacs has been ported either, there are no Market results anyways.

Rooting might provide you the ability to run Linux on your phone, but Android is not Linux. Its kernel is largely based on the Linux kernel but that's about it. You cannot run any Linux application with a GUI on Android, it would need to be rewritten. I'm not sure to what extent native command line apps would need to be rewriten, though of course they would need to be recompiled.

Android also does not have a full Java VM.

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.