- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于ASE的android中间键开发
Android中间键开发
什么是ASE
Android Scripting Environment(ASE)是Google针对Android操作系统发布的一个小工具。ASE将脚本语言带入Android,允许用户编辑和执行脚本,直接在Android设备上运行交互式解释器。脚本将能大幅度简化任务界面,目前支持Python, Perl, JRuby, Lua, BeanShell, JavaScript, Tcl, shell,以后将会增加更多的语言的支持。从此可以直接通过脚本(解释语言)方便快捷的调用Android系统中大部分的API,其可以完全满足对那些想把手机功能发挥到极致的“生物”。根据官方发布的消息,其可以通过非常简便的接口快速实现以下功能:
Handle Intents
启动Activities
发送通话请求
发送文字信息
扫描条形码
获取地理信息和返回设备传感器状态信息
使用语音输出文字信息
/p/android-scripting/wiki/ApiReference)
ASE原理
ASE其实就是Client端和Server端用JSON去通信. Server端是Android的那一套了,Java 通过JNI调用C/C++.首先,建立 AndroidProxy Service,它会负责Run JsonRpcServer.这个Server非常重要,它负责监听以及和Script PC Client 端通信这里有两个很重要的Thread, 第一是Thread 用于Listen Socket, 当Accept socket的时候,就会创建另一个线程去Connect to the Client.JsonPpcServer还有两个重要的函数,分别是StartPublic 和Start Local. StartPublic()建立Remote 通信,远程通信主要是负责监听脚本;StartLocal()建立Local通信,本地通信的作用主要是用来:监听Android上解释执行的脚本.也就是说:无论本地还是远端的脚本都是通过JsonRpcServer来统一调用Android JAVA API的
AndroidProxyService含有AndroidProxy类.这个类的主要作用就是负责调用AndroidFacade类中,封装好了的,提供给Script调用的函数
AndroidProxy类中,还包含有notification和notification manager之类的东西.notification就是在运行ASE时start service时,模拟器或者手机的提示信息.这里包含了一个很重要的信息:IP和Port号.其中Port号就是Run Scripts Externally 中的Remote的端口号.代码如下:adb forward tcp:local_port tcp:remote_port
local port超过1024就可以了, remote port就是notification中的port号.
在这个类中,有很重要的一个方法:
??? private JSONObject dispatch(int id, String methodName, JSONArray params) throws JSONException {??? JSONObject result;??? try {????? Method m = mReceiver.getClass().getMethod(methodName, new Class[] { JSONArray.class });????? if (m.isAnnotationPresent(Rpc.class)) {??????? result = (JSONObject) m.invoke(mReceiver, new Object[] { params });????? } else {??????? throw new Exception();????? } ...
? 这里就是会Call AndroidFacade中函数的地方了.?所以,理论上,我们只要扩展AndroidFacade中的函数,然后,在AndroidProxy中调用AndroidFacade就Okay了(祥细的扩展API的方法在下一章中描述)。
怎样在ASE的基础上开发ANDROID手机中间键软件
下载adnroidSDK
下载ASE的源代码,下载地址是:/p/android-scripting/source/checkout
在Eclipse里面导入源文件中所有的工程
在工程Common的src/com.googlecode.android_scripting.fa
文档评论(0)