I am a software engineer at Google on the Android project and the creator of the Java testing framework TestNG. When I'm not updating this weblog with various software-related posts or speaking at conferences, I am busy snowboarding, playing squash, tennis, golf or volleyball or scuba diving. Cedric is a DZone MVB and is not an employee of DZone and has posted 90 posts at DZone. You can read more from them at their website. View Full User Profile

Android's Locking Pattern

09.24.2008
| 5437 views |
  • submit to reddit
As you might already know, Android uses an innovative approach to lock your phone and prevent accidental dialing. Play the short video below to see how it works:

For the rest of this discussion, I will use the following convention to designate a locking pattern:

0 1 2
3 4 5
6 7 8
A pattern can be pretty much anything you want with the following constraints:

  • It needs to contain at least four dots (and obviously, no more than nine).

  • Once a dot is lit, it can't be used again.

  • You can use one or several "knight moves", such as in [0 5 4 2]:


    In this example, the knight move is between 0 and 5.

  • You cannot go over an unlit dot without lighting it. For example, the pattern [0 2 1 4] is illegal, because moving your finger between 0 and 2 will light 1.

  • Once a dot is lit, you can use it to reach another unlit dot. For example, both [0 4 3 5] and [0 4 5 3] are legal:



    This example is a bit ambiguous but you get the idea: I trace [0 4 5] and then I slide over 4 again to reach 3.

With these constraints in place, I wondered how many combinations were actually possible, so I wrote a short program to simulate it. It turns out there are quite a few: 389,112. Here is a breakdown:

4 dots: 1624 solutions
5 dots: 7152 solutions
6 dots: 26016 solutions
7 dots: 72912 solutions
8 dots: 140704 solutions
9 dots: 140704 solutions
Total: 389112

If you're not convinced, here is a full list of all the four dot patterns (the page uses a big canvas object, it might take a few seconds to load).

Still, I'm not sure my calculations are right, so I'd like you, dear reader, to confirm my numbers, and optionally explain how you coded your solution...

From http://beust.com/weblog/

Published at DZone with permission of Cedric Beust, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Andrew McVeigh replied on Thu, 2008/09/25 - 5:17pm

it's a cool system -- almost guesture like. i wish my iphone worked this way.

my biggest pain with the iphone is that setting a pin works globally. i.e. even if i want to access just ipod functionality, i have to unlock it. i wish that it was possible to go fully into the ipod screens (rather than the mini-controls that double clicking give you) without a code. then if i further requested any phone functionality, it could ask for the pin. this would save me *heaps* of grief.

Andrew

Ashley Aitken replied on Sat, 2008/09/27 - 8:22am

I thought patterns could include only 3 dots?  The simple swipe from left to right seems to only include three dots.  

 Of course, this just adds to the number of possibilities.

 

Cheers,

Ashley. 

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.