Posts tagged ‘Android’
Droidcon was awesome last year, so naturally I will be attending again this year. It was a great oppertunity to “network” and meet lots of like minded android developers, it also gave me the chance to meet lots of interesting companies (start-up software companies, app/game studios, phone providers, hardware specialists) which I may be even more interested in this year as I will be looking for employment soon.
Along with all of this come the additional benefits of: pizza, beer, competitions (there were an insane amount of competitions last year), freebies, and more free beer!
For those of you unfamiliar with droidcon here is an excerpt from their website:
Droidcon London 2011 is Europe’s largest conference that exclusively covers Android development and applications. The conference will take place in London on 6th-7th October 2011.
Droidcon London 2011 has grown tremendously since last year, in line with the exponential interest in the Android platform. This year, upward of 600 Android enthusiasts will rub shoulders with the premier experts in the field to dig into every aspect of Android and its ever-growing ecosystem. High on the agenda this time around are Android for the Tablet, Android in the Enterprise, Android for Games, Android for business, Augmented Reality, multi-mobile and a whole lot more.
The first day will be community led with a full-day Barcamp and Democamp. The second day will be conference day, with presentations from some of the world’s foremost Android experts, including two Google Developer Advocates Richard Hyndman and Nick Butcher, Mark Murphy (CommonsWare), Al Sutton, and Kieran Gutteridge (I’ve not had the pleasure of meeting the other speakers yet). A full list of presenters is available here.
You can register via the Droidcon London 2011 site: (http://www.droidcon.co.uk)
Follow Droidcon London 2011 on Twitter: @DroidconUK tags: #droidconUK #droidcon
Follow Droidcon London 2011 on Facebook: http://www.facebook.com/groups/droidconuk/
Nexus Revamped updates (1.98.14)
Wallpaper has now past 600,000 downloads ^_^ and thought I should blog about the recent changes.
I made a promo image for the wallpapers that should be visible on the market place any time now. I have limited art skills so this is the best I could come up with:
Jazz-hands (multi-touch)
I managed to fix a bug with multi-touch in my code, thanks to this question on stackoverflow. This now means that my wallpaper will work with up to 10 fingers or “jazz-hands”. This also fixes some of the crashes that were occurring on devices with 3.1 and up.
Save / load themes
I’ve also added the option for users to save their own themes so that if you have a few you like you don’t have to keep changing all the settings back and forth. This is also a step towards the next update I have planned whereby users can upload/download themes with a rating system and all the junk.
Better tablet / honeycomb support
I’ve added several improvements for large screen devices / tablets, the whole wallpaper is scaled effectively so that it no longer is just a giant zoomed in version of the phone wallpaper, and multiple more graphical changes to improve usability.
Android Market Links
Either click the following android market links (in android phone) or search the market for nexus revamped.
Pro Version
Nexus Revamped Pro Live Wallpaper (com.stealthcopter.nexusrevampedpro)

Free Version
The free version is the same as the pro version but with some of the fancier features are missing, and some non-intrusive adverts. Both versions are fully supported.
Nexus Revamped Live Wallpaper (com.stealthcopter.nexusrevamped)

Full changelog (since last blog post at version 1.98.01)
1.98.14
- Bug Fix: Multi-touch force close bug fixed
- Improved: Due to above bug fix, multi-touch now supports more fingers. This is great for tablets with ‘jazz hands’ support (more than 5 fingers!)
- Added: Ability to save custom themes (Preset > User)
- Added: Red Grid theme
- Improved: Thumbnail images in preset menu scaled to screensize
1.98.12
- Added: New & exciting Color changer dialog!
- Added: Loads of new textures, try adding a background tint to make these more personal!
- Added: German translation (thanks Steven!)
- Added: Danish translation (thanks Johan!)
- Added: Russian translation (thanks Dmitry!)
- Added: Licence information
- Improved: Transparent theme consistent throughout all settings now
- Improved: Wallpaper changes scale based on screensize to better suit tablets etc.
- Improved: Honeycomb background was a bit shoddy, fixed!
- Improved: Icons/gfx more suitable for range of screensizes
- Improved: Background tints are applied once on bitmaps rather than every frame, saving cpu time
- Removed: Some unused functions and boring code
- Bug Fix: Appearance bug in changelog fixed (doh!)
1.98.10
- Added: Spanish translation (thanks Hector!)
- Added: Swedish translation (thanks Joar!)
- Added: Preset option for quick setting of common themes
- Help me: if you want to add translations please email me!
- Added: Added a cool carbon fibre background option!
- Added: Differentiation between market places
- Bug Fix: When configuring livewallpaper via launcher pro or similar some settings were not automatically updated
- Bug Fix: Email in the about section will actually fill in my email address, surprise nobody spotted this sooner! Also added some information into each email to help me with issues.
1.98.09
- Bug Fix: Minor bug in revert to default settings
- Bug Fix: Minor bug in open application from market or settings
1.98.08
- Added: Power saver in the reactions menu, can make the wallpaper static when battery reaches a certain percentage.
- Added: Norwegian translation added (thanks Dan!)
- Added: Obfuscation for improved efficiency and to help decrease piracy
- Bug Fix: Glow size was forgotten on screen power off
1.98.07
- Added: Particle scaling, like the Nexus S live wallpaper
- Improved: Got sexy transparent menus working again, enjoy!
- Improved: Dialogs look better on small screens and with different orientations; some screens are now scrollable in the next version this will be replaced with a better solution
- Moved: Disable analytics is now in advanced menu
- Bug Fix: Fixed a FC bug
- Bug Fix: Using a custom background then renaming the file will no longer cause a FC
1.98.05
- Added: Option to display FPS on screen (Advanced > FPS)
- Added: Rotation on battery level
- Bug fix: Memory leak from using custom backgrounds fixed (hopefully)
- Bug fix: When Multi-touch option was disabled normal touch would not function
- Improved: Code backend made more efficient by combining some classes
- Added: Cool new background called “The Grid”
Following on from the success of my portal soundboard I developed a Portal 2 soundboard. I also took this opportunity to modernise my soundboard code by adding in honeycomb support for the actionbar and better scaling of resources. The actionbar now contains all the tabs with the menu accessible from the far right button creating a much more natural honeycomb experience:
And on pre-honeycomb devices:
Download Links
https://market.android.com/details?id=com.stealthcopter.portal2
Following my previous two posts about Sony Ericssons LiveView (Quick Review and SDK & development) I have released my Alarm Clock Plugin for Sony Ericsson LiveView!
Find it on the android market:
https://market.android.com/details?id=com.stealthcopter.liveview.plugins.alarmclock
Would love some feedback from anyone with a LiveView, there must be someone else out there who has one right?
So as I mentioned in a previous post I recently got a Sony Ericson LiveView watch, I decided to download the SDK and have a go at writing a plugin for use with the watch. The SDK is easy to use (developer world) and the examples and documentation (available here) is very clear and easy to understand. Unfortunately there is no emulator so you will have to go to the trouble of owning one of these devices if you want to test your app on it.
There are two types of plugins.
1. Announce plug-in
Announce plug-ins can send announcements to the LiveView™ device. This is done in
the same way as the predefined announce features, like Facebook and Twitter.
The SDK Announce plugin (helloWorldPlugin) example is very simple and and mostly contains code scheduling a timer to send events to the phone along. This is a single class which is supported by a small number of helper classes and the plugin only contains a few things foreign to a typical android application:
Just extend the class provided by the SDK for plugins:
public class HelloWorldService extends AbstractPluginService {
Send updates to the phone using the following function:
mLiveViewAdapter.sendAnnounce(mPluginId, mMenuIcon, header, body, System.currentTimeMillis(), "http://en.wikipedia.org/wiki/Hello_world_program");
Where:
mPluginId – identifies which app send the update
mMenuIcon – the icon the update will appear with
header – the title (IE: email subject)
body – the main text (IE: email text)
timestamp – timestamp of the announcement
link – action to perform when user clicks at end of message (event to occur on phone). This is interpreted by overriding the function below:
@Override
protected void openInPhone(String openInPhoneAction) {
Log.d(PluginConstants.LOG_TAG, "openInPhone: " + openInPhoneAction);
// Open in browser.
final Uri uri = Uri.parse(openInPhoneAction);
final Intent browserIntent = new Intent();
browserIntent.setData(uri);
browserIntent.setClassName("com.android.browser", "com.android.browser.BrowserActivity");
browserIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(browserIntent);
}
2. Sandbox
The sandbox plug-in can take complete control of the LiveView™ device by sending
images to it and control its ability to vibrate and display different colors on the LED. All
user activities are propagated to the plug-in, so that it can take appropriate actions.
We extend the same class however this time we say yes when we are asked if we are a sandbox plugin:
@Override
protected boolean isSandboxPlugin() {
return true;
}
So now rather than using sendAnnounce to send text to the liveview we directly send images. Below is a function used that draws some text to a bitmap and then sends it to be displayed.
public static void sendTextBitmap(LiveViewAdapter liveView, int pluginId, String text, int bitmapSizeX, int fontSize) {
// Empty bitmap and link the canvas to it
Bitmap bitmap = null;
try {
bitmap = Bitmap.createBitmap(bitmapSizeX, fontSize, Bitmap.Config.RGB_565);
}
catch(IllegalArgumentException e) {
return;
}
Canvas canvas = new Canvas(bitmap);
// Set the text properties in the canvas
TextPaint textPaint = new TextPaint();
textPaint.setTextSize(fontSize);
textPaint.setColor(Color.WHITE);
// Create the text layout and draw it to the canvas
Layout textLayout = new StaticLayout(text, textPaint, bitmapSizeX, Layout.Alignment.ALIGN_CENTER, 1, 1, false);
textLayout.draw(canvas);
try
{
liveView.sendImageAsBitmap(pluginId, centerX(bitmap), centerY(bitmap), bitmap);
} catch(Exception e) {
Log.d(PluginConstants.LOG_TAG, "Failed to send bitmap", e);
}
}
So we can create a similar function drawing whatever we want to a bitmap and then passing it onto the screen.
Only one thing left (I think). Intercepting button presses:
@Override
protected void button(String buttonType, boolean doublepress, boolean longpress) {
....
}
Where the the following buttons are defined:
- PluginConstants.BUTTON_UP
- PluginConstants.BUTTON_DOWN
- PluginConstants.BUTTON_LEFT
- PluginConstants.BUTTON_RIGHT
- PluginConstants.BUTTON_SELECT
and we can see if the were tapped or held down with the boolean longpress. Note that we cannot detect longpresses of select as that will exit your plugin and the power button at all as that controls the screen.
My Attempt at a plugin: Alarm Clock
So I thought given that this thing is pretty much a watch, it would be useful to be able to set an alarm with it.
Unfortunately I don’t think it is possible to set the alarm programatically in android in versions prior to gingerbread (posted a stackoverflow question about it). So the user base is very limited, only users with gingerbread and higher with a LiveView will be able to use it so I don’t expect a massive response. Also I have no idea if this will work with non-stock alarm clock apps as I’m not aware of any manufacturers modification of gingerbread as of yet.
The LiveView application on the phone handles links to all the shared preferences for the plugins (they’re mandatory just for the enable/disable option) but an example is included in all the examples and it is very simple to just add more options to the preferences.xml and grab them in the code.
Conc
If you want more info please read the documentation linked at the start of this post. I will probably release the liveview alarm clock plugin onto the market soon, but I don’t expect the reception to be that good as it will only work on a few phones / tablets. Anyway I had fun programming for mine, enjoy!
So about a week ago I decided to treat myself to a Sony Ericsson LiveView. It’s basically a watch with a 128×128 pixel screen that can display images/text sent from the phone. There are a few builtin apps that use this to send information to the phone (text messages etc.) and also an SDK is avaliable for developers to make further use of this device. Anyway here is a quick review of the device, I’ll post again soon with information about the SDK and developing a plugin.
Bluetooth connection
Well this is the major downfall of the device, it cannot hold a bluetooth connection very well with my phones (Nexus One and Desire HD) and constantly requires you to pull your phone out of your pocket to scan for bluetooth devices, pair with it, disconnect and reconnect in the LiveView program, restart your phone, or turn watch off and on in pairing mode.
This problem was significantly worse before installing the firmware update onto the LiveView (something which I strongly suggest as now it is only half as buggy). However the firmware update for this LiveView will only work on a Windows machine boo!!!
I’ve checked around a few forums and found that the bluetooth connection issues seem to be phone specific with the sony ericsson phones performing much better.
Builtin apps
- Text messages – shows text messages you have received
- Find phone – plays a sound on phone so you can find it… would be useful if I didn’t have to find my phone first to accept the pairing request!
- RSS – not tested this, obvious what it does though
- Missed calls – shows any missed calls you’ve had
- Music control – volume control, next/prev, play/pause and sometimes displays current track name/artist
- All Events
- Text Messages
- Lack of update for 4 days
- Plugins
- Find Phone
- Find Phone "Here I am!"
- Calendar
- RSS
- Missed Call
Plugins
There is a fairly complete list of plugins avaliable for liveview on the sony ericsson blog: blogs.sonyericsson.com. There aren’t too many apps available so it’s quite easy for devs to find something that hasn’t been done before with the liveview.
All the ones I’ve tried are quite good and function well but are perhaps not as ascetically pleasing as they could have been but I’m not going to complain about that.
Ones I’ve tried:
- Gmail – Alerts you to new gmails and lets you read a snippet
- Calendar plugin – Monthly view and agenda
- Contact call – Browse contacts and intiate a call, I managed to accidentally call someone using this leading to much hilarity…
- Binary clock – A binary clock, quite fun for geeks
- Gmail Plugin
- Gmail Plugin Emails
- Contact Call Plugin
- Contact Call Plugin
- Calendar Plugin Agenda
- Calendar Plugin Month
- Binary Clock
Update issues
Most of the functions in the watch are for updates; tweets, text messages, emails etc… Unfortunatly many of these ‘plugins’ do not update properly, only showing updates that occurred whilst the watch was actively connected which means according to LiveView the last text I receive was 4 days ago… but I have had several since then… don’t think it would be very hard to fetch this information.
Just as a watch
So I decided I’d give this device a chance of working solely as a watch for a day.
The battery life quite good, still shows a full battery icon after 9 hours, which isn’t that shocking as the screen is only turned on when you want to know the time and it seldom requires to use bluetooth. I do wonder if it actually keeps track of the time onboard or if it keeps syncing (I suspect it doesn’t sync due to battery life and troubles syncing when using functions).
Conclusion
I’ve really tried hard to like this device but it really isn’t making it easy for me. I would recommend it if:
- You’re a developer with a sony ericsson phone
- Or the fun of writing an app will overwhelm the annoyance of constantly repairing
I wouldn’t recommend it if:
- You’re an end user, looking for a cool watch
- You’re need to rely on your watch to function
- You want your watch to have all the standard functions
- You don’t like re-pairing bluetooth devices repeatedly
Next
In my next post I’ll talk about the LiveView SDK and creating a LiveView plugin.
As we end the first financial year for Stealthcopter Technologies the staff are treated (for tax purposes) to a box of 16 dead zebra collectibles.
The Cupcake one actually smells of cupcakes!!! amazing!
We actually ordered the last box (sorry!) of 16 from funkypeanut.co.uk for just over £100 including delivery, singles are still available though. There were actually some issues with paypal when checking out for this, but the admin of the store sent an email shortly afterwards to sort it out manually, great customer service!
It’s great that the android market now allows a much larger description however most people will still not read the description, this becomes especially problematic when it comes to explanations for usage of permissions.
Below shows the explanation in the market of why my live wallpaper requests full internet permission:
And this image shows one user complaining about the permission in the reviews:
This combined with the inability to respond to comments to explain how the commenter is an idiot (something the amazon app store allows) can severely hinder your applications downloads, as sales are strongly influenced to the ratings of the last three comments.
Solution
- Allow developers to add explanations to certain permissions so that users can understand why your app might (optionally) need access to your contacts, use the internet, or send an text message etc…
- Allow developers to specifiy which permissions are optional giving the user the ability to deny an applications access some permission. This could be handled automatically in android with a popup box saying an app is trying to use an optional permission would you like to allow etc… similar to how the super user stuff works in rooted phones, or the background data/gps etc…
Would love to hear other developer’s opinions or alternate ideas!
So I really love statistics… I recently added google analytics to my android app (Nexus Revamped Live Wallpaper) in order to try and improve the app by seeing what devices people were using and what options they were selecting. Below shows the phone manufacturer and handset share with pie charts to make it fun!
| Make | Frequency |
| HTC | 26321 |
| Samsung | 21158 |
| Motorola | 18928 |
| Sony | 9014 |
| LG | 5893 |
| HUAWEI | 2104 |
| Dell | 549 |
| ZTE | 295 |
| Archos | 246 |
| Sharp | 229 |
| Acer | 162 |
| Other | 1463 |
| Phone | Frequency | Phone | Frequency |
| motorola DROIDX | 6560 | HUAWEI Huawei_8100-9 | 24 |
| HTC PC36100 | 5547 | LGE LG-LU3100 | 21 |
| samsung GT-I9000 | 4332 | Huawei U8220/Pulse | 21 |
| Samsung SPH-D700 | 3969 | HUAWEI U8100 | 20 |
| HTC Desire HD | 3593 | HTC Vanilla Tazz | 20 |
| HTC HTC Desire | 2934 | Samsung GT-I5500B | 20 |
| Sony Ericsson E15i | 2546 | HTC GSBv1.8.1 ERIS | 19 |
| HTC ADR6300 | 2526 | samsung SHW-M180S | 19 |
| motorola MB860 | 2504 | samsung GT-P1000N | 18 |
| HTC Nexus One | 2456 | SE X10minipro | 18 |
| motorola MB525 | 2402 | ZTE Blade | 18 |
| Samsung SGH-T959 | 2348 | samsung SGH-I987 | 18 |
| HTC HTC Glacier | 2230 | SHARP SH-03C | 17 |
| samsung SAMSUNG-SGH-I897 | 2199 | HTC nonsensikal froyo | 17 |
| HTC T-Mobile G2 | 1964 | samsung SC-01C | 17 |
| Sony Ericsson X10i | 1951 | ZTE MTC 916 | 17 |
| Motorola Droid | 1822 | HTC HTC Desire CDMA | 17 |
| Samsung SCH-I500 | 1690 | archos A43 | 16 |
| motorola DROID2 | 1470 | FIH CBW Blaze | 16 |
| motorola DROID2 GLOBAL | 1352 | LGE LU2300 | 15 |
| Sony Ericsson E10i | 1299 | LGE LG-LU3700 | 15 |
| Sony Ericsson U20i | 1280 | lge LG-P990 | 15 |
| LGE VM670 | 1261 | archos A70H | 15 |
| LGE LS670 | 1158 | archos A32 | 15 |
| Samsung GT-S5830 | 1047 | LGE LG-KU3700 | 15 |
| samsung Nexus S | 1043 | Sony Ericsson Sony Ericsson X8 | 14 |
| HTC PG06100 | 815 | Huawei U8220 | 14 |
| HUAWEI HUAWEI-M860 | 782 | archos A70S | 14 |
| HUAWEI M860 | 778 | Samsung SGH-I897 | 14 |
| Sony Ericsson X10a | 685 | Acer Stream | 14 |
| motorola Milestone | 658 | nvidia Adam | 14 |
| LGE LG-P500 | 640 | HUAWEI u8800 | 13 |
| Samsung SGH-T959V | 627 | HUAWEI Ivy | 12 |
| HTC HTC Vision | 619 | nvidia Vega with Original_Ganjamans Rom Add-On | 12 |
| LGE Ally | 594 | HUAWEI U8110 | 12 |
| HTC HTC Legend | 491 | HUAWEI C8500 | 12 |
| HTC HTC HD2 | 488 | PANTECH IM-A720L | 12 |
| Dell Inc. Dell Streak | 464 | SK telesys SK-S100 | 12 |
| HTC PB99400 | 463 | DELL XCD35 | 11 |
| LGE GT540 | 441 | Samsung GT-I5500M | 11 |
| Samsung GT-S5570 | 438 | Samsung GT-S5830L | 11 |
| LGE LG-P509 | 426 | Dell Inc. Dell Streak 7 | 11 |
| samsung GT-P1000 | 406 | Commtiva Z71 | 11 |
| LGE LG-MS690 | 391 | Sony Ericsson U20i(rooted by SS | 10 |
| LogicPD LogicPD Zoom2 | 358 | samsung SHW-M130L | 10 |
| samsung SHW-M110S | 348 | HTC FroShedYo V10-ERIS | 9 |
| Sony Ericsson E10a | 336 | HUAWEI U8230 | 9 |
| Sony Ericsson E15a | 311 | motorola XT701 | 9 |
| samsung GT-I9000M | 308 | HTC X10i-TripNRaVeR | 9 |
| Samsung GT-I5500 | 306 | samsung SHW-M180L | 9 |
| Sony Ericsson U20a | 292 | semc X10i TripNMiUI | 9 |
| motorola MB520 | 282 | HTC Evo | 9 |
| Sony Ericsson SO-01B | 272 | Dell Inc. 001DL | 9 |
| KYOCERA Corporation Zio | 272 | Sony-Ericsson X8 | 9 |
| HTC HTC Aria | 257 | FIH CSL_Spice_MI700 | 8 |
| LGE Vortex | 256 | LGE KH5200 | 8 |
| motorola DROID PRO | 254 | HTC Plain Biff Dream | 8 |
| motorola MB611 | 241 | Samsung Vibrant | 8 |
| Samsung SCH-I400 | 234 | Samsung GT-I9000 | 7 |
| motorola MotoA953 | 229 | HTC ERIS GSBv2.0 | 7 |
| meizu meizu_m9 | 219 | samsung SGH-I897 | 7 |
| HUAWEI Ideos | 199 | HTC GSBv1.7-ERIS | 7 |
| samsung SAMSUNG-SGH-I896 | 190 | HTC HD2 | 7 |
| HTC HERO200 | 186 | malata GTablet-TnT-Lite | 7 |
| archos A101IT | 186 | HTC U20i | 7 |
| samsung SC-02B | 184 | PANTECH SKY IM-A600S | 7 |
| LGE LG-P500h | 180 | malata VEGAn-TAB | 7 |
| Motorola Xoom | 178 | infotm deb | 6 |
| samsung SGH-T959D | 175 | HUAWEI Ideos S7 | 6 |
| motorola A953 | 164 | ZTE Optimus San Francisco | 5 |
| HTC HTC Dream | 154 | Samsung SAMSUNG-SGH-I997 | 5 |
| HTC HTC Magic | 154 | Acer Acer Liquid | 5 |
| HTC HTC Hero | 154 | motorola AOSP on Morrison (EU | 5 |
| SHARP IS03 | 141 | PANTECH IM-A690L | 5 |
| HTC Hero | 137 | HTC Eris FroshedYo v11 | 5 |
| HTC T-Mobile myTouch 3G Slide | 130 | HTC HTC Aria A6380 | 5 |
| HTC HTC click | 127 | HUAWEI RBM2 | 5 |
| ZTE ZTE-BLADE | 126 | HTC cyanogenMod6.1 by Neopeek | 4 |
| SE X10i | 125 | HTC Incredible | 4 |
| HTC Liberty | 117 | HTC FRG83 by Neopeek | 4 |
| samsung SPH-P100 | 111 | Micromax Micromax A60 | 4 |
| Acer Liquid | 110 | Samsung SPH-M900 | 4 |
| Motorola A854 | 108 | HTC AOSP Hero Androbin | 4 |
| samsung GT-I9000T | 105 | motorola MB200 | 4 |
| HTC HTC Magic/Dream | 102 | HTC docomo HT-03A | 4 |
| HUAWEI Vodafone 845 | 100 | samsung GT-P1000R | 4 |
| Samsung SCH-R910 | 98 | HTC GSBv1.8 ERIS | 4 |
| motorola MotoroiX | 98 | FIH Commtiva-N700 | 4 |
| samsung GT-I9000B | 96 | FIH JellyBean | 4 |
| samsung SCH-I800 | 95 | HTC X06HT | 4 |
| garmin-asus Garmin-Asus A10 | 94 | HTC Sony Ericsson Xperia X10 Mini Pro | 4 |
| motorola MB508 | 92 | nvidia VEGAn-TAB-v1.0.0b5.1.1 | 4 |
| Samsung GT-I5500L | 92 | motorola Dext | 3 |
| LGE GT540f | 92 | LGE LG Optimus V | 3 |
| LGE LG-C710h | 87 | samsung GT-I5500L | 3 |
| LGE LG-US670 | 86 | HUAWEI U8220 | 3 |
| motorola Milestone XT720 | 76 | FIH TESTTEL Mod1.11 | 3 |
| Samsung Nexus S | 74 | FIH CSL_Spice_MI300 | 3 |
| motorola MB511 | 74 | HTC Plain Biff Magic | 3 |
| SHARP SBM003SH | 71 | unknown Android | 3 |
| Samsung GT-I5700 | 70 | HTC ERIS | 3 |
| HUAWEI Pulse | 67 | unknown generic_x86 | 3 |
| motorola MB502 | 67 | HTC GBRider Cronos v1.0 | 2 |
| FIH Motorola-XT502 | 65 | HTC Gingerbread on Sapphire | 2 |
| HTC HTC Wildfire | 65 | HTC Chromatic Dream | 2 |
| HTC HTC Incredible | 62 | ZTE a5 | 2 |
| samsung GT-I5800 | 61 | Sony Ericsson R800i | 2 |
| Samsung GT-I5503 | 60 | FIH Boston | 2 |
| HUAWEI Comet | 56 | TOSHIBA TOSHIBA_FOLIO_AND_A | 2 |
| HTC HTC Liberty | 55 | FIH ViewPad7 | 2 |
| motorola XT720 | 55 | samsung SHW-M190S | 2 |
| Dell Inc. Dell Venue | 54 | HTC T-Mobile G1 | 2 |
| LGE AS740 | 53 | bn NookColor | 2 |
| HTC HTC Hero CDMA | 52 | PANTECH IM-A690S | 2 |
| Motorola Milestone | 50 | FIH FIH-F0X | 2 |
| HTC Ginger Tazz | 48 | Verizon Motorola Nook Color (zoom2 | 2 |
| ZTE Orange San Francisco | 46 | HUAWEI Turkcell T10 | 1 |
| Samsung SHW-M100S | 46 | motorola MotoMB511 | 1 |
| samsung GT-I9003 | 45 | LGE LG-LU3000 | 1 |
| motorola ME525 | 45 | Sony Ericsson Xperia.X8 | 1 |
| ZTE ZTE Blade | 44 | unknown MB200 | 1 |
| HTC Legend | 43 | htc T-Mobile G1 | 1 |
| samsung GT-I5801 | 42 | HUAWEI U8500 | 1 |
| HTC Dream/Sapphire | 39 | FIH V-T100 | 1 |
| LGE US740 | 39 | motorola ME811 | 1 |
| Samsung GT-S5670 | 38 | ZTE Beeline M2 | 1 |
| PANTECH IM-A710K | 38 | HTC Yoshi Mod MM1 on 32b | 1 |
| unknown imx51_bbg | 38 | Samsung GT-I5510 | 1 |
| ZTE V9 | 35 | HUAWEI UM840 | 1 |
| HTC HTC Gratia A6380 | 35 | PANTECH IS06 | 1 |
| Acer Liquid Metal | 33 | Sony Ericsson SK17i | 1 |
| SE X10mini | 33 | samsung GT-I5500B | 1 |
| samsung SGH-T849 | 33 | ZTE ZTE-C R750 | 1 |
| Samsung GT-I5503T | 29 | samsung YP-GB1 | 1 |
| LGE LG-SU370 | 29 | HUAWEI S7 | 1 |
| HTC HTC Sapphire | 29 | motorola Motorola XT720 | 1 |
| PANTECH SKY IM-A650S | 29 | TOSHIBA TOSHIBA_AC_AND_AZ | 1 |
| HTC HTC Incredible S | 29 | unknown Android on HTC Kaiser | 1 |
| Motorola A853 | 28 | samsung GT-P1000M | 1 |
| Samsung SHW-M240S | 28 | SonyEricsson X10i | 1 |
| LGE LG-SU660 | 27 | Motorola Motorola-XT502 | 1 |
| unknown LogicPD Zoom2 | 27 | HUAWEI IDEOS X5 | 1 |
| motorola A853 Milestone | 26 | CCI Cosmo | 1 |
| HTC GSBv1.9 ERIS | 25 | HUAWEI Pulse Mini MG Mod | 1 |
| LG GW620 | 25 | FIH WellcoM-A99 | 1 |
| telechips MID7015A | 25 |
To celebrate getting over 1/4 million downloads of my live wallpaper I decided to put extra effort into fixing problems some of my users were having. A common gripe with live wallpapers is the amount of battery they use and the associated performance hit when navigating on the home screen. I used to use java drawables to create and manipulate all of the particles on the screen, but I have successfully moved over to OpenGL-ES. This has an impressive benefit in performance (back of the envelope calculation shows >13x performance increase) and also improves the overall sexyness as OpenGL handles the blending nicely.
Anyway enough of the boring stuff, let’s see what’s new. Something I’m REALLY excited about (hence the caps) is multi-touch! It is so much fun just playing with a blank home screen creating particles! Unfortunatly this isn’t something which translates well into a screenshot, so you’ll just have to try it out for yourself.
I’d like to thank all of my beta testers for the very helpful feedback I have got over the past couple of weeks. There is much more to mention but I am now absolutely knackered. I’m sure I’ll follow this post up soon with some more interesting things. Enjoy!
Changelog
1.98.01
- Improved: Now using OpenGL to draw the live wallpaper, which should give approximately a 16x performance increase (awesome eh?)
- Added: MULTI-TOUCH!!! :O
- Improved: Lowered file size from over 1Mb to less than 300Kb
- Added: Option to not spawn particles when dragging / swiping across screens etc, set by default
- Added: Anayltics see which areas need improving
- Added: Sexy Particle appearance dialog to set saturation and tail length
- Removed: Tail length and particle saturation (see above)
- Added: Custom colors for battery level colored particles
- Added: Speed now allows you to set the minimum and maximum speed
- Removed: Removed speed deviation (see above)
- Improved: Scaling can go negative now (i.e. shrinking)
- Improved: Lots of default values changed to make prettier on first run
- Improved: Speed and Spawning decoupled from FPS settings, should be uniform now
- Improved: Max FPS setting now 80 (25 is recommended still)
- Improved: Max speed increased
- Improved: Max tail size increased
- Improved: Max particle number increased
- Improved: Added some nice icons in the about menu
- Bug Fix: Particle alignment works more consistently on different screen sizes and scales
Android Market Links
Either click the following android market links (in android phone) or search the market for nexus revamped.
Pro Version
Nexus Revamped Pro Live Wallpaper (com.stealthcopter.nexusrevampedpro)

Free Version
The free version is the same as the pro version but with some of the fancier features are missing, and some non-intrusive adverts. Both versions are fully supported.
Nexus Revamped Live Wallpaper (com.stealthcopter.nexusrevamped)








































