如何通过脚本开发Android
?????? 腳本語言(scripting language)是電腦程式語言,以簡單的方式快速完成某些復雜的事情是腳本語言的重要原則,Android平臺同樣支持大部分腳本語言,我們可以通過ASE(android scriptingEnvironment)項目來完成使用腳本語言開發(fā)。
????? 腳本可以訪問多數(shù)的Android API,提供很多接口,通過接口我們可以完成以下功能:
- 操作 intents
- 啟動 activitys
- 撥打電話
- 發(fā)送短信
- 掃描條形碼
- 獲取地理位置和傳感器數(shù)據(jù)
- 使用 Text-To-Speech??????
????? 等一系列操作。腳本可以在終端中交互地執(zhí)行,或者作為后臺service啟動,也可以通過locale命令啟動。但是腳本可以很方面的完成特殊操作,但是復雜的應用還是需要通過java實現(xiàn),腳本語言知識android的一些插件,簡化很多工作,為應用程序服務。
???? ASE是一個開源項目,我們可以在Google code上下載它的安裝包,網(wǎng)址:http://code.google.com/p/android-scripting/,可以選擇下載安裝包還是ASE的源碼,下載下來的apk文件可以直接安裝。安裝完成后,點擊應用圖標啟動ASE,此時啟動之后是一片空白,我們需要按“Menu”鍵添加腳本環(huán)境和終端以及解釋器等操作。
???? 安裝解釋器:點擊“Menu”,選擇“Interpreter”,選擇添加的腳本語言解釋器,可以選擇Lua,或者python等。當選擇腳本解釋器后,程序會自動從網(wǎng)站上下載并安裝。
???? 如何新建新的腳本程序:點擊“Menu”,選擇“Add Script”。然后彈出界面選擇添加的腳本程序種類,然后寫入腳本程序的名字及內容,選擇“Save”或者“Save And Run”。
??? ASE是如何調用Android的API的?
??? ASE通過兩種方式來訪問API:
?? 對于beanshell這樣的腳本語言,可以直接訪問android的java API,處于簡化的目的,ASE提供了AndroidFacade類,對于像Python這樣的語言,API是通過使用JSON RPC調用在代理商暴露出來的。這意味著只有被AndroidFacade和AndroidProxy封裝的那部分API才能被Python的交叉編譯解釋器使用,不過AndroidFacade和AndroidProxy都很容易擴展。AndroidFacade和AndroidProxy的源代碼位于“com\google\ase”下。
下面共享兩個腳本語言。
實現(xiàn)功能:當手機正面向下放置的時候禁用鈴聲。(Lua腳本)
require "android" --開啟傳感器 android.startSensing() android.sleep(1) silent=false while true do--獲得傳感器信息s=android.readSensors()--取得傳感器信息后判斷是否正面朝下facedown=s.resoult.zfroce and s.resoult.zforce>9--如果正面朝下if facedown and not silent thenandroid.vibrate()--設置鈴聲靜音模式android.setRingerSilent(true)silent=true--如果正面朝上elseif not facedown and silent thenandroid.setRingerSilent(false)silent=falseendandroid.sleep(1) end如何用Python語言實現(xiàn)一個簡易的聊天程序 import android,xmpp """設置服務器、端口""" _SERVER='talk.google.com',5233 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!'returnauth=self.client.auth(jid.getNode(),password,'botty')if not auth:print 'Authentication failed!'returnself.client.sendInitPresence() def message_cb(self,session,message):jid=xmpp.protocol.JID(message.getForm())username=jid.getNode()text=message.getBode()"""通過TTS來實現(xiàn)語音對話"""self.droid.speak('%s say %s' %(username,text)) def.run(self):try:while True:self.client.Process(1)except KeyboardInterrupt:passsaychat = SayChat() saychat.run()
轉載于:https://www.cnblogs.com/neilyo/archive/2011/11/14/2249031.html
總結
以上是生活随笔為你收集整理的如何通过脚本开发Android的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: acer台式电脑怎么重装系统_宏基台式机
- 下一篇: 苹果笔记本python_python实现