Et tu, Enum?

Hidden Memory Allocations

I’ve worked hard to keep memory allocations out of the main loop of the game I’m working on. All the game entities, the components, the event and messaging systems, all those data structures get recycled. The pooling system in LibGDX has been a big help, but there’s still a lot of bookkeeping logic to cover to make it work correctly.

So today I finally got a chance to see how well I’d done by running the code on an actual device with DDMS watching allocations. I started tracking allocations, played through, and this is what I got:
Continue reading →

In which I set up Android Build Tools to run on a 64-bit System without Multiarch

The problem

I was creating a build server for an Android project on a remote web host run by Webfaction, but I was running into a problem when running the ant scripts. I had installed the Android SDK in my home directory according to these instructions, but running ant clean debug threw this error:

I checked, and /home/stevehb/bin/android-sdk-linux/build-tools/20.0.0/aapt existed. I couldn’t see a reason that ant couldn’t find it, so I eventually tried to run it myself.
Continue reading →

Installing the Android SDK on a Headless Server

If you want to set up a remote build machine for an Android project, one of the first obstacles you’ll encounter is how to install the SDK from the command line. Both the SDK installer and AVD Manager are designed to be run graphically. Fortunately, there are some options for command line setups.

First thing you’ll need to do is download the SDK tools. You probably just need the SDK Tools tgz file for a linux install. You do not need the ADT Eclipse plugin, nor the ADT bundle. Those all need a GUI.

Then, after unpacking that file, you’ll need to set up the environment variables and install the actual platform SDKs. There are SDKs for the different APIs you can target (ie, API 15, API 19, etc), so you’ll need to know what you’re aiming at. Google has some old information about how to install those SDKs on a headless machine, but here are all the steps themselves, as well as some caveats.
Continue reading →