An Android Toolkit

article #918, updated 930 days ago

Android is very interesting to study. It’s more or less the foundation-stones of a generic Linux, including kernel with filesystems and the ability (though usually not the built-in functionality) to run many standard system binaries, but depending on code running in an interpreter — a virtual machine set up like Java, but not Java — instead of most of what we have in a GNU/Linux OS setup.

The potential of Android to be useful is extraordinary. It is very lightweight, it achieves an enormous amount of functionality for very little code: Windows needs about 20-40 gigabytes, Debian Linux perhaps 10-20, for what Android 4 does in about 0.5.

Of course there are downsides. The most important one is probably the fact that right out of the box, very high responsiveness is probably more the exception than the rule, one usually has to work at it to get Android to be very very responsive, i.e., to respond as fast as you think or close. But it is very possible, even on hardware multiple years old, and the payoff is huge, because the Android software universe is very large, far larger than any other non-desktop OS.

So without more ado, here we have an Android toolkit confirmed at this date to be able to do very well on two Fujitsu Stylistic M532’s, and one HTC EVO 4G LTE:

  1. Rooting.

Rooting is very very important. Without rooting one is limited to the whims of the manufacturer of your device, and the manufacturer very much wants you to throw yours out and buy a new one as soon as possible. On the other hand, if one starts with rooting, one can buy a multiple-year-old device at glyde.com or other sources at very nice prices, fix it up nicely, and have something useful to keep for years afterwards. Raimod’s Root Master and also Kingroot are two very worthwhile rooting tools for a very wide variety of devices. The instructions can be a little difficult, and HTC requires a different step provided by HTC to be done first (to “unlock the boot loader”), but it is all very well worth the trouble when the steps below come next. If yours won’t root with either of the above tools, contact the toolmakers and tell them, and/or do a bit of research and see if you can find a way it’s well-known to be done for yours.

  1. Get a microSD card.

A microSD card is a tiny long-term storage device, smaller than your pinky fingernail. We have several uses for this below, one of which is immediately next. You’ll want either a Class 10 microSD card, or an SDHC card; 16 gigabytes is probably good, smaller ones are getting rarer and unless you plan on keeping a whole lot of music or video within your device, larger will not help. SDHC cards are faster, but not all devices support them. Class 10 microSD cards are a whole lot faster than the older Class 4, and thus the Class 10’s are definitely to be used.

  1. Speed up your device a lot with root-level memory management.

Once a device is rooted, we can speed it up a whole lot. The easiest way to do this is to change how Android manages memory, and we have found one very nice applet for this, called Swapper for Root, by DevLab Technologies.. It needs to be run just once; the most important setting is the Swappiness, set that to 10.

Swapper also can do something for overall system stability: it will enable virtual memory, not something default on Android, and we can tell it to place the page file on the SD card we added in the previous step. On my devices, the external SD card is /sdcard2 (and the internal is /sdcard), this does vary from machine to machine. I gave it the default swap file size for now (200M), if I ever learn a reason to change this I will post it here.

  1. Improve speed and stability by replacing OEM system-installed apps, with user-installed apps.

This is where it gets tricky, but the results are very desireable. The idea is that in their wisdom [ahem] the device manufacturers have shipped them with versions of vital applications in the /system area, a small partition which ordinarily cannot be touched or altered. Unless one uses root methods, one can only “remove updates” to these, one can not update the versions actually in the tablet, and I have found that this can cause interesting problems with updates not working, overall slower behavior, and worse things. I imagine that for the first year or so this helps the devices stay working by preventing alterations, but by the time the third and fourth year roll around, well…yah. So here we go.

You will need a tool which makes it easy not only to study system-level apps, but to reliably remove them. System Application Manager by Flaki is a very good example. There are quite a large number of apps out there which do the study, but which do unpleasant things with removals, especially due to something called “odexing”; on many Android devices system apps are “odexed”, and the practical implications are that removals fail unless the apps handle it properly. As of Android 5 there is something else replacing “odexing” which does effectively the same thing; S.A.M. by Flaki may not be able to handle that, so if you have Android 5 or up please let me know what you find!

You will also need a tool which makes it easy to see how you are doing with free space in your /system partition. This is actually quite a lot harder than I expected, but System Cleaner 2, also by Flaki, does it very well. System Cleaner 2 also can do something which I do not prefer; it permits actual updates of the /system partition app sets. I don’t prefer this for two reasons: (a) /system is usually almost full and has to be to hold the Android OS elements, and (b) I tried it, it said it successfully updated the Play Store and Play Store Services with the rest of the items, but the Play Store did not work from that point on, I had to use S.A.M. to remove Play Store and P.S.S. and install using APKs downloaded directly from Chrome. So I use SC2, but for diagnostics, to see what old apps remain in /system, and how much space there is in there.

The beautiful thing is, once one uses S.A.M. to remove system apps altogether, one can replace them, and the replacements are not system apps (taking up that precious space in /system), but are user apps. So my situation with the Play Store and P.S.S. eventually became beneficial, I gained increased reliability and speed in general. For other apps — Chrome, content-specific Play items, and third-party things installed as system apps by the manufacturer — I just remove them using S.A.M. and install them anew from the Play Store and all is wonderful.

  1. Move apps to your microSD card.

This will save space on the internals of your device, and also, if you have a nice fast microSD card as recommended, will gain you overall speed too. Just go into Apps under Settings, touch the name of each app, and if it can be moved, the option will be lit. Highly recommendable. There are non-system apps which can not be moved, and so this is a step to keep your device working well, especially if it is one of the more bargain ones with very small internal storage. This does not require root, but it is by far the least of the list!

Categories: