脚本语言(scripting language)是电脑程式语言,以简单的方式快速完成某些复杂的事情是脚本语言的重要原则,Android平台同样支持大部分脚本语言,我们可以通过ASE(android scriptingEnvironment)项目来完成使用脚本语言开发。

脚本可以访问多数的Android API,提供很多接口,通过接口我们可以完成以下功能:

  • 操作 intents
  • 启动 activitys
  • 拨打电话
  • 发送短信
  • 扫描条形码
  • 获取地理位置和传感器数据
  • 使用 Text-To-Speech

等一系列操作。脚本可以在终端中交互地执行,或者作为后台service启动,也可以通过locale命令启动。但是脚本可以很方面的完成特殊操作,但是复杂的应用还是需要通过java实现,脚本语言知识android的一些插件,简化很多工作,为应用程序服务。


     ASE是一个开源项目,我们可以在Google code上下载它的安装包,网址:http://code.google.com/p/android-scripting/,可以选择下载安装包还是ASE的源码,下载下来的apk文件可以直接安装。安装完成后,点击应用图标启动ASE,此时启动之后是一片空白,我们需要按“Menu”键添加脚本环境和终端以及解释器等操作。

安装解释器:点击“Menu”,选择“Interpreter”,选择添加的脚本语言解释器,可以选择Lua,或者python等。当选择脚本解释器后,程序会自动从网站上下载并安装。

如何新建新的脚本程序:点击“Menu”,选择“Add Script”。然后弹出界面选择添加的脚本程序种类,然后写入脚本程序的名字及内容,选择“Save”或者“Save And Run”。


    ASE是如何调用Android的API的?

ASE通过两种方式来访问API:

  1. JSON-RPC       如Python及Lua这样的本地应用
  2. 运行beanshell这个基于JVM的语言

对于beanshell这样的脚本语言,可以直接访问android的java API,处于简化的目的,ASE提供了AndroidFacade类,对于像Python这样的语言,API是通过使用JSON RPC调用在代理商暴露出来的。这意味着只有被AndroidFacade和AndroidProxy封装的那部分API才能被Python的交叉编译解释器使用,不过AndroidFacade和AndroidProxy都很容易扩展。AndroidFacade和AndroidProxy的源代码位于“com\google\ase”下。


下面共享两个脚本语言。

实现功能:当手机正面向下放置的时候禁用铃声。(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语言实现一个简易的聊天程序

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来实现语音对话"""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相关推荐

  1. Mac 开发Monkey脚本自动化测试Android应用二

    Mac 开发Monkey脚本自动化测试Android应用二 1.Monkey脚本介绍 1.1.Monkey脚本优缺点 优点 简单,快捷,不需要借助任何开发工具. 缺点 基于坐标.按键等操作,在不同的像 ...

  2. 学编程脚本 android,Auto.js安卓免root脚本开发教程

    Auto.js安卓免root脚本开发教程 教程介绍 Auto.js是利用安卓系统的"无障碍服务"功能,实现类似于按键精灵一样,可以通过代码模拟一系列界面动作的辅助工作.与" ...

  3. 开发Android必知的工具

    程序开发有时候非常依赖使用的开发工具,好的完备的开发工具可以让开发人员的工作效率有大幅度的提高.开发Android也是如此,大家可能都离不开Eclipse或Android Studio这些工具,但他们 ...

  4. 【Android 内存优化】libjpeg-turbo 函数库交叉编译与使用 ( 交叉编译脚本编写 | 函数库头文件拷贝 | 构建脚本配置 | Android Studio 测试函数库 )

    文章目录 一.交叉编译 Shell 脚本参考 二.NDK r16b 版本配置 三.libjpeg-turbo 交叉编译 Shell 脚本 四.执行 libjpeg-turbo 交叉编译 Shell 脚 ...

  5. 【Xamarin开发 Android 系列 4】 Android 基础知识

    什么是Android? Android一词的本义指"机器人",同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统.中间件. ...

  6. 使用WebRTC开发Android Messenger:第3部分

    这是一个由三部分组成的系列文章,内容涉及:利用WebRTC中的BUG和利用Messenger应用程序.本系列文章重点阐述了当应用程序不能应用于WebRTC补丁程序以及通信和安全问题通知中断时可能出问题 ...

  7. 使用WebRTC开发Android Messenger:第2部分

    这是一个由三部分组成的系列文章,内容涉及:利用WebRTC中的BUG和利用Messenger应用程序.本系列文章重点阐述了当应用程序不能应用于WebRTC补丁程序以及通信和安全问题通知中断时可能出问题 ...

  8. 使用Kotlin开发Android应用 - 环境搭建 (1)

    一. 在Android Studio上安装Kotlin插件 按快捷键Command+, -> 在Preferences界面找到Plugins -> 点击Browse repositorie ...

  9. JavaScript、Lua语言基础、电脑脚本、手机免ROOT免越狱脚本开发免费视频教程

    JavaScript基础教程:https://www.bilibili.com/video/BV1YW411T7GX Lua基础教程:https://www.bilibili.com/video/BV ...

最新文章

  1. CF438E The Child and Binary Tree(有意思的生成函数 + 多项式求逆 + 多项式开方)
  2. 【c语言】蓝桥杯算法提高 3-3求圆面积表面积体积
  3. 逆向工程、协议分析和漏洞研究
  4. visualSVN-server的安装图解
  5. android 刷机 备份,安卓刷机后如何还原以前ROM和系统备份
  6. python面试题总结(3)-- 数据类型(字符串)
  7. 追根溯源:EntityFramework 实体的状态变化
  8. 【Cloud Foundry 应用开发大赛】“八卦街”图片采集应用
  9. 雨林木风与微软数年博弈:蚂蚁和大象共舞
  10. 专为前端开发者准备的15款优秀的Sublime Text插件
  11. IOS多类型Cell的tableView实现
  12. Template Method模板方法
  13. hdu 3996 Gold Mine ( 最大权闭合图 )
  14. Google浏览器更改默认路径为D盘路径
  15. electron-rebuild 编译遇到的奇葩问题
  16. 自制时代,七种自动化的基础架构即代码工具(IaC)
  17. python新年贺卡_写个新年贺卡生成器,各位小伙伴们新年快乐呀~
  18. html5canvas下绘制gif,JS+canvas操作gif动图
  19. IDEA 在DEBUG模式下如何不执行后续代码直接停止程序?
  20. 必须要了解股权设计的四大核心

热门文章

  1. acrobat PDF删除部分_PDF编辑器Adobe Acrobat DC 2019
  2. 区块链---双花问题
  3. idea2020.2卡死在reading maven projects
  4. 爱情如水,宽容是杯~
  5. Windows 性能超越 Linux?
  6. 无糖饮料难破“高端局”
  7. UE4:按键按下触发声音事件,离开位置声音停止
  8. 2018年GitHub最流行Python开源项目
  9. 古罗马数字的基本知识
  10. mt4 显示服务器时间,mt4服务器时间设置