I am the happy owner of an Android phone. I love it. But what I love even more, is rolling some sweet Python on my precious.
In case you have a vanilla phone like I do, you will need to follow these steps:
- download and install the Android SDK for your platform
- add the SDK tools to your system path, for instance on Windows run this in a shell:
> set PATH=%PATH%;path_to_android_sdk\tools
- activate USB debugging on your phone (Parameters > Applications > Development > USB Debugging)
- setup your system to detect your device as explained here (on Windows, it means installing the usb driver from the SDK)
- check that your phone is detected correctly by running adb get-state (if everything is ok, the result should be ‘device’)
- check out the Android Scripting Environment svn repository on your computer (see this page)
Your system is almost configured, let’s install the necessary applications on the phone:
- install the Android Scripting Environment on your phone
- (optionally) install the Text-to-Speech library (by Charles Chen) on your phone if you want to use it in your scripts, via the Android Market
- run ASE on your phone, type menu and start a Python shell, you will notice a line like ‘export AP_PORT = “49508”‘.
- setup port forwarding on your system with the value you just noted:
> set AP_PORT=49508 > adb forward tcp:%AP_PORT% tcp:%AP_PORT%
- go to the ASE directory on your computer containing the android.py module
> cd path_to_ASE\python\ase
- run your favorite Python 2.6 interpreter and enjoy the magic:
> python Python 2.6 (r26:66721, Oct 2 2008, 11:35:03) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import android >>> droid = android.Android() # now your phone is ready to acknowledge your awesomeness >>> droid.speak('hello, my master') {u'result': None, u'id': 2, u'error': None} # or alternatively, if you don't have the TTS library installed: >>> droid.makeToast('hello, my master') {u'result': None, u'id': 1, u'error': None}
Now you have all the information you need to start exploring the API and roll more interesting examples.