Tuesday, July 03, 2012

Android and Mono

It's been a while since I touched my personal Android 4 repository hosted on my aging Latitude D630 and its Fedora 14 installation. I started hosting (and building) Android 4 just to get the experience in handling that particular project, as well as creating my own version of ICL to run on my Nook Color (Encore). The directions were initially written for CyanogenMod 7.x (Gingerbread) but are still pretty accurate (for the most part) for CyanogenMod 9.x (Ice Cream Sandwich). The only problem being the following:

After performing repo sync (which is what I started with this time), during the build process, I ran into a build-halting error where libjackpal-androidterm4.so could not be found. Sure enough I didn't have that, just the earlier libjackpal-androidterm3.so. Looking around a bit on the internets I found the solution: right before build cd into cm/vendor and execute get-prebuilts. This will unpack term.apk and give you the correct library to build against. DO NOT do what I read elsewhere, which is to create a libjackpal-androidterm4.so soft link to libjackpal-androidterm3.so. Just Do The Right Thing and install the correct library.

After hours of building (since this is a smallish Core 2 Duo T7700) the build process finished and left me with a 131MB CyanogenMod 9 zip file. I need to decide now if I'll flash this directly or try one again to create a µSD card-based installation, like I have my CyanogenMod 7.2 installation set up. The current CM9 zip is too large for the image, and I need to find a way to create a disk image rather than use the older but smaller one floating about the web.

But wait, there's more! I decided to install the latest Mono and play around with it a bit. Since the latest version on Fedora 14 is 2.6.7, and there aren't going to be any updates to this distribution any more (there haven't been for a while now), I decided to bootstrap 2.11 from Mono's git repository. That meant finding a spot on the drive to clone a copy of the current release (2.11) and then execute a build. It was during the configuration process that I noticed this latest version had the potential to use LLVM as a backend. After noodling a bit more on the internets I set up the configuration with --enable-llvm=yes and installed Fedora 14's stock llvm (yum install llvm-core llvm-devel). Unfortunately the build failed with the helpful (really) message that you couldn't build against stock LLVM. You had to install and use the special version Just For Mono. Oh well, at least I tried. In the end I just built Mono 2.11 "stock", and I'll be playing a bit with it when time allows. And who knows, maybe I'll even get crazy and port Android to C# via Mono, since that's what I've got in the back of my mind.

No comments:

Post a Comment

All comments are checked. Comment SPAM will be blocked and deleted.

Note: Only a member of this blog may post a comment.