Just an update on the Plumes live wallpaper I wrote for Android. It went to market on Nov, 25 and just over two weeks later I’ve gotten 618 downloads and it’s still at 4 stars. I am pretty pleased with the results, even though it’s nothing really to brag about. Thanks to everyone who downloaded it.
It was my first android application and there’s definite room for improvement. I released it after about 3 days of work. I honestly didn’t think I’d have to update it, and really didn’t think I could add much more to it. But how naive I was!
The largest problem was that the older phones, with the v2.1 OS, had smaller screens and less RAM. The textures I was using for the animations were too large, forcing the phones to run out of memory. Luckily, Android has already fixed this problem before. Basically, inside the resources folder (res) of an Android app, there are folders for the different screen densities. So at runtime, Android automatically pulls the right resources based on the id of the resource and the screen density of the device, which streamlines the whole process for me. So I duplicated the artwork for the smaller screens and added it to the app. I also configured a couple more emulators with smaller screens to tests it out. Due to the increased number of images, the app size grew a good bit. However, it’s still less than a 1 MB.
I also added crash reporting after about a week and a half, which allowed me to find the problem stated above. The crash reporting worked like a charm and my implementation was based on the blog post here.
I had to modify it some because it was meant to be implemented with an Android Activity class and not a WallpaperService. But even with the slighted modifications the idea remains the same, which is to send an intent to the OS saying that the wallpaper needs to send an email. This intent brings up the email program and gives the user the option to send me the stack trace of the error, which would help me find the root cause of the error.
The email doesn’t contain any user info, just the error, as well as, the phone model and the version of the OS that its running. I also added the current settings from the SharedPreferences, which could help with reproducing the error on my phone or in emulators.