android-scripting
时间:2009-06-10 来源:iibull
The Android Scripting Environment (ASE) brings scripting languages to Android by allowing you to edit and execute scripts and interactive interpreters directly on the Android device. These scripts have access to many of the APIs available to full-fledged Android applications, but with a greatly simplified interface that makes it easy to:
- Handle intents
- Start activities
- Make phone calls
- Send text messages
- Scan bar codes
- Poll location and sensor data
- Use text-to-speech
- And more
Scripts can be run interactively in a terminal, started as a long running service, or started via Locale. Python, Lua and BeanShell are currently supported, and we're planning to add Ruby and JavaScript support, as well.
You may ask, why write scripts instead of real Android applications? Admittedly, Android's development environment makes life pretty easy, but you're tied to a computer to do your work. ASE lets you develop on the device itself using high-level scripting languages to try out your idea now, in the situation where you need it, quickly. Have a look at this example Lua script to see for yourself:
--Placing the phone face down will disable the ringer. Turning it face up again will enable --the ringer. require "android" android.startSensing() android.sleep(1) --Give the sensors a moment to come online. silent = false while true do s = android.readSensors() facedown = s.result and s.result.zforce and s.result.zforce > 9 if facedown and not silent then android.vibrate() --A short vibration to indicate we are in silent mode. android.setRingerSilent(true) silent = true elseif not facedown and silent then android.setRingerSilent(false) silent = false end android.sleep(1) end
Here's another useful script. This time, in Python.
"""Say chat messages aloud as they are received.""" import android import xmpp _SERVER = 'talk.google.com', 5223 class SayChat(object): def __init__(self): self.droid = android.Android() username = self.droid.getInput('Username')['result'] password = self.droid.getInput('Password')['result'] jid = xmpp.protocol.JID(username) self.client = xmpp.Client(jid.getDomain(), debug=[]) self.client.connect(server=_SERVER) self.client.RegisterHandler('message', self.message_cb) if not self.client: print 'Connection failed!' return auth = self.client.auth(jid.getNode(), password, 'botty') if not auth: print 'Authentication failed!' return self.client.sendInitPresence() def message_cb(self, session, message): jid = xmpp.protocol.JID(message.getFrom()) username = jid.getNode() text = message.getBody() self.droid.speak('%s says %s' % (username, text)) def run(self): try: while True: self.client.Process(1) except KeyboardInterrupt: pass saychat = SayChat() saychat.run()
具体的wiki 和 apk包 参见 http://code.google.com/p/android-scripting/