With increasingly powerful Android smartphones and tablets, and the vast usability enhancements Android itself has gotten through its various incarnations, it’s increasingly likely that your day to day computer use can be reduced or eliminated by using your mobile device. I myself have not had a desktop computer since 2010 when I first got an Android device.
This is not to say, however, that you’ll be ready to go out of the box. There are a few choice applications and products out there that can help you get real work done on your Android device.
If you’re running on one of the better Android tablets, you should already have standard USB ports, but if not, the first thing you should pick up is a USB On-The-Go (OTG) cable; which turns your device’s Micro-USB port into a standard USB port. Not all devices and Android builds support this however, so you’ll need to verify your specific device’s capability. In general, devices running Android 3.1 and above should have USB host support.
Even if you hardware supports USB Host and you are running on Honeycomb or better, specific USB device support will depend on the kernel your ROM is running. This means you’ll likely have better hardware support running a custom ROM/kernel than stock. Running AOKP on my Galaxy Nexus I’ve been able to use flash drives, input devices, and serial to USB converters with no problems.
Being able to connect a full size keyboard and mouse to your device is a big advantage if you’re looking to do any kind of development or word processing, and being able to use USB storage such as flash drives and card readers makes it much easier to move work materials between your mobile device and primary system.
USB OTG cables are exceptionally cheap, you can grab one for only a few dollars from sites like Amazon. At these prices, it’s worth grabbing one just on the off chance you might need to connect a USB flash drive to your phone one day.
If at all possible, I try to use a hardware keyboard when I want to do anything more involved than browsing the web or chatting, but that’s just not always possible. For those times, I turn to the Hacker’s Keyboard.
The Hacker’s Keyboard is a full 5 row onscreen keyboard complete with Esc, Ctrl, Alt, Tab, and arrow keys. This makes working in the terminal infinitely easier be removing the need for configuring complex and hard to remember keyboard shortcuts to do things like Ctrl or Alt combinations.
While the Hacker’s Keyboard is really intended for tablets in landscape mode, I’ve had good success even when using it in portrait mode of my Galaxy Nexus. There does seem to be some slight graphical glitches in this arrangement as the keys are much closer together than they were intended to be, but I’ve not had a problem that prevented me from using the keyboard properly.
Installing the Hacker’s Keyboard doesn’t require root, and it gets added to the system as a standard Android input service. This means you will be able to switch between the standard Android keyboard and the Hacker’s Keyboard on the fly, which is good, as the Android keyboard is preferred for rapid simplistic text entry (I.E. sending text messages).
If you do any serious text entry on your Android device, especially if it’s in the terminal or over SSH, there is absolutely no reason not to have this free keyboard installed.
Speaking of the terminal, most Android users (who are so inclined to be using the terminal on their devices) usually use something like Android Terminal Emulator or Better Terminal Emulator. Both of these are excellent choices, but do have the same drawback of almost all other Android applications: they only work in full screen mode.
Enter AirTerm, a full featured windowed terminal emulator. With AirTerm, you can open up a terminal window on top of other Android applications and move it around just as you would on your computer. This let’s you maximize screen real-estate on tablets by having multiple terminals open at once, or you can use it to enter commands while you follow along with a guide or documentation that’s open in the background in your browser. AirTerm even supports some of the eye candy niceties you may have become accustomed to on your desktop, such as transparency.
As with the Hacker’s Keyboard, AirTerm does not require root. That being said, using the terminal on a non-rooted Android device doesn’t usually get you much. To that end, AirTerm includes a function to install Kevin Boone’s KBOX, a single-user Linux distribution that can be installed on top of an un-rooted Android device. KBOX will give you BusyBox, an SSH client and server, and optional plugins for things like vim and rsync.
While an advanced terminal emulator can turn your Android device into a fairly powerful little Linux machine, there are some very hard limits on what you can do. For anything that the Android hardware and software environment can’t handle, you’ll need to reach out to a more powerful machine.
To this end, the standard tool has always been ConnectBot. ConnectBot is an open source Secure Shell client that offers everything you would expect, such as key management, multiple terminal emulation profiles, and tunneling. ConnectBot also features some mobile-optimized functions such as swiping between hosts and mapping buttons to the hardware Camera button.
While ConnectBot works very well and has long been the standard in terms of SSH on Android, it’s worth noting that it hasn’t received an update since October of 2010. While the development version of ConnectBot is slightly better off (last update was December 2011), there are still outstanding issues which haven’t been addressed by the original developers.
Since ConnectBot is open source, another group could take over development if it has indeed been abandoned; but as far as I am aware this has not yet occurred.
If you work in IT or do hardware development, you know how useful a pocket serial terminal can be. With the appropriate software on your Android device, and a USB to serial converter, you’ll be able to dial in to everything from routers to Pwn Plugs.
There are also a whole line of hardware devices which connect over USB-serial, such as the invaluable Bus Pirate.
While there are a few serial terminal emulator applications available in the Play Store, the one I’ve had the best luck with is the somewhat awkwardly named Slick USB 2 Serial Terminal. This application allows you to easily configure either FTDI or Prolific based USB-serial adapters, and has a powerful UI that gives you plenty of options. That said, the UI is somewhat non intuitive, as it requires you to do things such as configure your serial port speed after you connect, rather than before; but nothing that makes it particularly difficult to use.
The Pro version isn’t cheap, but the developer does offer a free version (with slightly limited functionality) which you can use to verify your hardware is compatible before taking the plunge. Which is a good idea, considering your specific hardware and ROM combination will greatly influence whether or not the application functions as expected.
Not For Everyone
These few applications are just the tip of the iceberg in terms of using Android for legitimate software and hardware development work. In my case, most of the things I do (logging into remote servers, developing Linux software) can be done fairly well from within Android, though admittedly a lot of the heavy lifting is done on the remote machine. On the other hand, with a hardware keyboard and Google Docs, you can absolutely get some word processing done while on the go, and pick up right where you left off when you get back to the office.
Different tasks will of course have different requirements, some of which may not be so readily adapted to mobile. For example, I wouldn’t want to do much image editing on Android at the moment, as the available tools aren’t quite up to the challenge. But, as the software and hardware continue to improve, tasks which are unsuitable for mobile devices will become less and less common.