Every proper hacked device needs to boot up with a pirate theme. Fortunately the boot animation is trivial to replace on a Nexus one. I’m currently running CyanogenMod6, but I believe this will work other places. I replaced the boot animation with just a single image of a skull and crossed swords:
There’s plenty of info out there about replacing the boot logo and what the files do. Here’s how to get it up and running through:
- Download the pirate boot animation zip file to your system
- Remount the system partition read-write: adb shell mount -o rw,remount /dev/block/mtdblock3 /system
- Push the file across to your device: adb push pirate_bootanimation.zip /system/media/bootanimation.zip
That’s it, reboot and enjoy! If you want to poke around and change it, it should be pretty easy. There’s a writeup of what the contents of the bootanimation.zip are, which is very useful. Supposedly, also, the zip needs to be uncompressed to work. But that just means setting compression level to 0 when you run zip. This is the command I use on my OS X machine: zip -0 pirate_bootanimation.zip desc.txt part0/boot_00003.png”. That should make it easy to swap in any other picture to customize.
I was happy to see there’s a Commodore 64 emulator in the Marketplace for Android, the Frodo emulator. I played around with a bit, but what I really wanted to do was hack around a bit with some old school basic. This is one of the computers I grew up with, and I get nostalgic for the old days every once in a while. However, I was having a really hard time figuring out how to get the version of Frodo under Android to create a new disk for me to save stuff to. If you can’t save the stuff you’re playing with what’s the use? I could save out the whole state, but I figured there had to be a better way.
So I downloaded a version of VICE for my desktop system. That has a much richer set of controls, one of which is creating and attaching a fresh image (it’s a ‘file’ menu item). I figured if I was lucky the image created with VICE would work to at least get me started on Frodo on my device. And lucky me, yes it does! Actually, now I can push the d64 images back and forth, use the emulator on my desktop to do a little poking around and push the file over to my device to take with me. Very nice! Just remember, save with replace is ‘SAVE “@0:FILENAME”,8′. Otherwise an attempt to overwrite a file will just silently fail. Ahhh, nostalgic.
Barnes & Noble released an Android version of the Nook ebook reader. It’s the same path that Amazon followed. They have a hardware device for reading ebooks. But as other mobile devices start to get more popular they also allow those devices to hook into the same content. Effectively putting your library “in the cloud”, so that you can download the books you’re reading to your different devices and keep your reading position synced across them. I’m already an avid Kindle user on iPad, iPhone, and Android. But I gave the Nook reader a try just to see what it’s like.
If you’re on your Android device right now you can hop to Nook in the Market directly, or just search for “Nook” in the Marketplace app. Compared to the other readers I’ve seen, the Nook feels a bit amateur. The reading experience itself is the real laggard here. I’m hoping they can polish this thing up in future revisions. A few screenshots to show you what I mean.
This is the main library interface:
I downloaded a free book. One of the Google Books scans, which is nice. Like the other platforms they’re tying into the free content at Google to provide a ton of free scans of classic and public domain works. Kudos on that. Some of the Google Books efforts include direct scans of pages instead of the text. Here’s what a scan page looks like:
And a page of text:
That lack of margin on the reading screen is really killing me, and I don’t see a way to adjust it. I also like to read with full justification, which doesn’t appear to be an option either.
Here’s a shot of the ebook store, just for the sake of completeness:
The storefront is pretty decent, about on par with the others.
Overall though the interface is still a bit clumsy, the reading experience itself needs some work, and the app itself is buggy (I’ve had it crash twice in the short time I used it). I’m very happy to see an additional ebook reader out, but this one needs some more work before it’s ready for prime time.
I downloaded and installed the latest Android scripting package, now called Scripting Layer for Android, or SL4A. I had some issues with it under CyanogenMod5 (probably my own, but I never debugged). Today I updated to a CM6 release and it seems to be working a whole lot better. There are links to a whole bunch of examples on the Tutorials page.
The application interface itself is pretty simple. When it first loads up you won’t have any interpreters besides shell. If you go into the View menu, select interpreters, and then select Add from the menu under there you can add other interpreters. The interpreters generally come with example scripts, which will show up in the main list view once they’re loaded:
There’s a preferences screen, which covers mostly visual options:
If you long press on a script you have an option to edit it:
The editor that comes up is just a simple but effective textbox, so at least you can edit scripts in place on the device:
And then you can run a script, in this place displaying a toast message over the keyboard when I run the hello world program:
I’ve been playing around with voice input under Android 2.1. It’s a feature that’s easy to miss, cause the key that starts voice input only appears on the keyboard if you’re on a general text entry field. So for instance, I started up GMail to give it a try the first time, but there’s no speech input button. I assumed it wasn’t enabled and went hunting around for additional options. Turns out I just needed to move past the address field and go to the subject or body. Makes sense, but wasn’t completely obvious to me.
I could see the feature being useful for text messages for instance. But for me the accuracy is still a bit low. Got errors trying it while enunciating strongly in a quiet room. Some of the problems I’m having saying it’s going to be a useful feature are that it’s really difficult to go back and edit out those mistakes. The entire sentence I just dictated is underlined as previous input once the detection is done. So a backspace to try to replace the last word for instance – that erases the entire input. And if it just got a sentence correct and I want to go on, I need to hit the speech input button again to go ahead and dictate some more.
I’m sure the issues are because this was born out of a “voice search” usage and not a general dictation application. Just something to keep in mind if you’re planning to use it. I’ll have to get a 2.2 rom on the phone and see if there are any additional options in there that address this.
In addition to capturing a screenshot with a computer using the Android SDK there’s also a screenshot application (available on the market, called simple ‘screenshot’, I’m not sure how to find out the package name to create a market link for it. It only works on rooted devices, but all of mine are. One nice feature is the “shake to capture a screenshot” option. So that instead of having to keep hopping into the screenshot app to setup a shot, back to the app, wait, hop back to setup another time delayed shot, back to the app, etc. Just setup screenshot to capture when you shake and go through whatever set of screens you want.
One of the great sets of enhancements using a CyanogenMod rom instead of a stock rom is the launcher. Cyanogen includes an altered launcher called ADW.Launcher that includes lots of extra settings and interface tweeks. One of my favorite is the “preview” option, which gives you an expose (as in OS X Expose) style view of everything across the different homescreens on your device. By default you can bring it up by long pressing on the dots on the left or right bottom of the screen that show you which area you’re currently on. However, in the ADW.Launcher settings you can change the keybinding for the home key if ADW is already the active app. By default it just snaps you back to the main screen, but you can swap it to preview instead. Great usability change for me, lets me scan through my apps and widgets very quickly.
If you’ve got Froyo on your phone now and you’re looking to make sure you know about all the changes, check out this Android 2.2 review from AnandTech. It walks through all the differences compared to the 2.1 release, and there are a few good points in there. Everyone knows about the hotspot functionality for instance. But I had missed the automatic updates from the Marketplace till just now. Maybe there’s something in there you missed too.
I’ve started using an app called Battery Graph (marketplace link) by Morgan H to try to monitor changes in my battery drain. It’s a background app that collects battery charge info over time and displays a graph on device. That makes it easy to spot major changes to discharge rate. Say if you install a new widget some time early afternoon, and later that evening you see the discharge rate increased some time after lunch, you know the widget is doing something heavy and impacting your total battery life.
In the menu area there’s even an option to export the set of data to CSV so you can suck it into a spreadsheet or use it to drive some of your own tools. Would be great actually if there was an option to record a list of running processes along with the battery status info, so that it could attempt to spot which processes are sucking up the most resource.
I’ve been trying lots of custom images on my N1 and G1 recently. One minor annoyance was that after installing a custom recovery image like Amon Ra to flash different base images I seemed to revert back to the default recovery image after a reboot. It wasn’t too annoying cause I kept the recovery.img on my sdcard and just did a flash_image before rebooting whenever I wanted to apply updates. But still, annoying.
Then I ran across this description of replacing the recovery partition, which explains that part of the boot process is writing the recovery.img from /system/recovery.img. That explains a lot! That page also describes how to replace the /system/recovery.img so that you keep your new recovery image after each boot. Ahh, now I have my full set of menu options whenever I hit recovery.