Skip to content

I think android should have optional permissions with explanations

Mar 26 11
by mat

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:

Internet permission explanation in android market for nexus revamped live wallpaper

Internet permission explanation in android market for nexus revamped live wallpaper

And this image shows one user complaining about the permission in the reviews:

Complaining about permissions in review without reading description

Complaining about permissions in review without reading description

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!

Manufacturer and handset market share in an android app with google analytics

Mar 13 11
by mat

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

Nexus Revamped Live Wallpaper: Update 1.98.01 (Multi-touch and more!) #android

Feb 1 11
by mat

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.

Nexus Revamped 1.98.01 screenshot

Nexus Revamped 1.98.01 screenshot


New Particle Appearance Screen

New Particle Appearance Screen

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)

qr

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)

Download link

qr

HTC Desire HD stand and battery charger

Jan 23 11
by mat

Just a quick post to mention how much I am enjoying using a dock for my phone. It only cost ~$19 avaliable on dealextreme, it comes with a EU plug (US version avaliable too) but I’m just using it via usb.

HTC Desire HD stand and battery charger

HTC Desire HD stand and battery charger

What’s that awesome live wallpaper? It’s the latest beta of nexus revamped! This dock has been really useful for development of this livewallpaper, so handy/convenient.

Looking for beta testers for nexus revamped android livewallpaper

Jan 19 11
by mat

So my livewallpaper just got over 250,000 downloads and what better way to celebrate than a massive update/improvement? Previously I was using java drawables to create my livewallpaper and although easy it was inefficient. I have now moved the code over and am using OpenGL ES to draw the particles which means (by a back of the envelope calculation) that I have got a 16x performance increase. This equates to no lag/delay when performing actions on the home screen (swiping left/right, opening draw, dialogs etc.). Importantly it also means that battery life will be improved. I will probably add a few posts on OpenGL android tips specifically for people moving away from java drawables, and links to a few good tutorials.

AND guess what else??? I’ve added multi-touch! Unfortunately as exciting as it is, it doesn’t translate well into a screenshot so you’ll just have to try the beta or wait for the release on the market.

How do I sign up for this awesome beta?
Just send me an email (beta at stealthcopter.com) or leave a comment below with a valid email (it wont be displayed on-site) and I’ll add you to my beta testers mailing list.



Android Market Links (FOR OLD VERSION, NOT FOR BETA)
If you don’t fancy the beta, but still want to install the livewallpaper you can install the old version and wait for the update (probably about 1 to 2 weeks away) either click the following android market links (in android phone), scan the QR codes or search the market for nexus revamped.
Pro Version
Nexus Revamped Pro Live Wallpaper (com.stealthcopter.nexusrevampedpro)

qr

Free Version

Nexus Revamped Live Wallpaper (com.stealthcopter.nexusrevamped)

qr



More Dead Zebra Android mini collectible figurines arrive

Jan 8 11
by mat

I have received some more dead zebra android figures from deal extreme following on from the green ones I got and my all the ones yet to arrive. Unfortunately as matto pointed out (and I suspected) these are fakes and are not produced by Dead Zebra. Dealextreme are slightly infamous for the amount of bootlegged products. The quality of the painted figures is poor, but better than nothing (imho).

Hi-voltagelink

Hi-voltage dead zebra android figure

Hi-voltage dead zebra android figure

Can see the black behind the yellow outline and arms are coloured slightly differently.

Copperbotlink

Copperbot dead zebra android figure

Copperbot dead zebra android figure

Line along middle of head doesn’t line up but overall quite good quality

Reactorlink

Reactor dead zebra android figure

Reactor dead zebra android figure

Overall quite good but again the arms don’t quite match, the glow in the dark is very cool though. Below shows photos of the reactor android figure under UV light and then it’s residual glow (apologies for my poor photography skills)

All together

Dead Zebra figures from dealextreme

First set of Dead Zebra Android mini collectible figurines arrive

Jan 5 11
by mat

WOOOOOO! Some of my Dead Zebra Android figures arrived (as mentioned in this post). Only the plain green ones so far, but I’ve ordered 1 of each of the other types.

Avaliable to buy at dealextreme. The last couple of photos have the android figure standing on some aerogel on my desk.



Dead Zebra android mini collectible figurines

Jan 1 11
by mat

Note: These are not official deadzebra figures, they are fakes and some of the paintwork is poor, please see this post

I love the Dead zebra android toys but I’ve found that they are impossible to get a hold of any. Thankfully dealextreme have them in stock :) each picture links to the dealextreme page for each android:

Most of the figures cost around $5 with some of them a little bit more $7.50 (suit, space invader, tribal). I’ll post an update with images when they arrive.

26 prisoners and a light bulb logic problem in python

Nov 14 10
by mat

I was sent a interesting logic problem by samsamsam which is as follows (or very similar):

Q: How can the prisoners tell, with certainty, that all 26 of them have visited the central living room with the light bulb.

Riddle:
26 prisoners are in solitary cells, unable to see, speak or communicate in any way from those solitary cells with each other. There’s a central living room with one light bulb; the bulb is initially off. No prisoner can see the light bulb from his own cell. Everyday, the warden picks a prisoner at random, and that prisoner goes to the central living room. While there, the prisoner can toggle the bulb if he or she wishes. Also, the prisoner has the option of asserting the claim that all 26 prisoners have been to the living room. If this assertion is false (that is, some prisoners still haven’t been to the living room), all 26 prisoners will be shot for their stupidity. However, if it is indeed true, all prisoners are set free. Thus, the assertion should only be made if the prisoner is 100% certain of its validity.

Solution

I won’t explain the solution in words as that might ruin it if you were planning on figuring it out, instead I have posted some python code that calculates the probability of number of days it will take.

# -*- coding: utf-8 -*-
from random import randint

bin=[]
binstep=50

# Loop 
for i in xrange(0,50000):

	nopris=26
	light=0
	count=0
	days=0

	# Create a set of prisoners with value 0 or 1
	# for having visited the room when light is off
	p=[]
	for i in range(0,nopris):
		p.append(0)

	# Until all prisoners have switched light on and have
	# been counted
	while count<nopris-1:
		x=randint(0,nopris-1)
		# First person to be picked is the counter
		if days==0:
			counter=x
			p[x]=1
		# Counter adds one if light is on and resets it
		elif x==counter and light==1:
			light=0
			count+=1
		# If light is off and prisoner hasn't turned light 
		# on before he does so
		elif p[x]==0 and light==0:
			p[x]=1
			light=1
		else:
			pass
		days+=1
		

	# Expand our bin if it isn't big enough
	while days>len(bin)*binstep:
		bin.append(0)
	bin[days/binstep]+=1	
	

# Just chucking data into a histogram type layout
# to speed up processing afterwards (I'm crap at
# openoffice stuff)
for i in range(0,len(bin)):
	print i*binstep+binstep/2,",",bin[i]

For 50k iterations I got the following output:

$ python prisoners.py
25 , 0
75 , 0
125 , 0
175 , 0
225 , 0
275 , 0
325 , 2
375 , 31
425 , 162
475 , 636
525 , 1659
575 , 3492
625 , 5448
675 , 7134
725 , 7755
775 , 7103
825 , 5758
875 , 4341
925 , 2884
975 , 1701
1025 , 909
1075 , 511
1125 , 255
1175 , 124
1225 , 63
1275 , 25
1325 , 4
1375 , 2
1425 , 1

Which shown as a histogram looks like:

Histogram for the 26 prisoners problem (50k iterations)

Histogram for the 26 prisoners problem (50k iterations)

Let me know how you’d improve this method or any other cool logic problems I can have a go at :)

Orange San Francisco (ZTE Blade) for £87.10 with cashback

Nov 6 10
by mat

Orange are offering a really nice large screen android phone for a great price, so I picked one up for my dad and flashed a custom rom onto it. They have dubbed the device the San Francisco, but it is otherwise known as a ZTE blade (specs on wikipedia)

How to get it for £87.10

  • +£12 Go through a cashback website like quidco and click through to the orangeshop
  • Once at the website goto orangeshop student select PAYG and enter your NUS code or just enter 000000000000000 they don’t verify it!!! for a 10% discount (this was a tip off from someone at droidcon, but I didn’t manage to catch name please let me know if it was you and you can have the credit)
  • £99 + £10 Topup Select San Fransisco in Gray or San Fransisco in White
  • -£9.90 Your 10% discount will now be applied ^_^ Choose which tariff you want, I chose dolphin as you get free internet and 300 texts when you topup £10
  • Total £87.10, win!

It’s a good phone and it’s very easy to flash a custom rom onto if you don’t like the orange one. I got the rom and followed the guide at modaco.