【Android】让Python在Android系统上飞一会儿
第一节 在手机上配置Python运行环境
1.下载和安装 Scripting Layer for Android (SL4A)
Scripting Layer for Android (SL4A) 是一个开源项目,目标是为android系统提供脚本语言的支持,使用户可以直接在android平台上进行脚本语言的编辑、解释和执行。这些脚本语言已经可是使用很多封装好的android API来开发功能丰富的android应用程序,并且使开发变得更加的简单和高效!
这个平台支持多种脚本语言,比如 Python, Perl, JRuby, Lua, BeanShell, JavaScript, Tcl, shell 等,你可以选择你熟悉的语言进行开发,本系列教程使用Python为编程脚本语言
SL4A项目的地址:http://code.google.com/p/android-scripting/
页面打开后,你可以选择用手机扫描该页面的二维码将应用直接下载并安装到手机上,或者点击二维码图片,将应用下载的电脑上在传输到手机上安装。你要是懒得去项目主页,直接扫描下图的二维码即可:
2.下载和安装 Python for android
在项目主页面的右上方,有该应用支持的所有脚本语言的下载列表,如下图所示;
选择你使用的语言,打开相应的语言环境的下载页面,与下载SL4A的方式类似,将该语言包应用下载并安装到你的手机上。我打开的是Python的页面,如下图所示:
程序安装完成后,打开Python for Android应用,在应用的最上方会有一个Install的按钮,点击该按钮,就会自动下载Python相关的文件并解压和安装,这个过程结束后,你的android手机上的Python开发环境就配置好了!
3.第一个HelloWorld程序
打开SL4A应用,会进入Python示例代码列表,基本上是对主要API的演示,部分示例可能由于偏老,运行时会提示方法过期或者运行异常的问题,这个至少修改少许代码即可,有机会的话,我会在后续课程中介绍这是示例以及修正的方法。
点Menu键,然后点击Add,选择Python2.6.2,就会新建一个Python脚本文件,将文件的名字命名为:HelloPythonInAndroid.py
点击屏幕进入脚本编辑区,开始输入如下内容:
import android
droid = android.Android()
droid.makeToast(‘Hello, Python in Android’)
输入完成后,如下图所示:
点击Menu,选择Save&Run,恭喜你,你已经用Python完成了第一个Android应用:HelloPythonInAndroid!
第二节 第一个有实用价值的应用
1.python预备知识
单行注释使用#号,#以后的内容是注释,不会被解释器解释执行执行;
import语句用来导入模块,后面跟模块名;
python中的变量不需要声明类型,变量被赋值之后类型会自动指定,这也是动态语言的特性之一;
元组,python基本数据结构之一,使用这样的形式表示:元组1=(数据1,数据2,数据3)
元组一旦生成后就不能修改了
元组可以嵌套包括他自己在内的所有列表类型的数据集合,如:元组2=(元组1,数据4,数据5)
元组中数据的获取方法: 元组名[索引编号]
字典,python基本数据结构之一,使用这样的形式表示:字典1={键1:值1,键2:值2,键3:值3}
字典可以嵌套包括他自己在内的所有列表类型的数据集合
字典中数据的获取方法:字典名[键名] 或者 字典名[索引编号]
格式化字符串:字符串中的%s会被后面的对象替换掉,例如:
‘Hello,%s’ % ‘PuLee’
最后返回的结果是:
Hello,PuLee
注意两个字符串之间的那个%号不要漏掉了!
2.图书价格查询器的功能分析
第一步:调用条形码扫描程序,扫描书的条形码,然后从条形码中获得书籍的ISBN编号
第二步:构造查询书籍价格的Url地址,使用豆瓣的图书搜索功能
第三部:打开浏览器,传入构造好的Url地址,返回查找的结果
3.图书价格查询器的设计实现
实现代码如下:
#导入Android的API模块
import android
#获得操作对象
droid = android.Android()
#运行扫描程序,返回一个元组
code = droid.scanBarcode()
#从扫描程序返回的元组中取得isbn编号
isbn = code[1]['extras']['SCAN_RESULT']
#构造查询书籍的Url
url = ‘http://book.douban.com/subject_search?search_text=%s&cat=1001′ % isbn
#打开浏览器,传入构造好的Url,返回查找结果
droid.startActivity(‘android.intent.action.VIEW’,url)
最后的返回的查询结果:
第三节 在电脑上编写程序在手机上运行
前言
最手机上写脚本是一件每场辛苦的事情,虽然SL4A人性化的为我们提供了API快速插入功能,并且优美的Python为我们省去了输入分号和括号之苦,但是没有智能感知,没有关键字补全,狭小的按键,输入符号的困难,还是让我没有勇气去在手机上写超过50行的程序.改为在电脑上编写代码,再复制到手机上运行!那么,如何快速的将PC上编写的代码发送到手机上呢?
1. 一些传统的方法
1.1 数据线
这个就不用我多说了吧,应该都会的,但是随身带数据线是件很麻烦的事情,所以应该再找些其他方法!
1.2 wifi
和数据线原理差不多,很多的android的PC客户端都已经支持通过wifi连接手机了,比如豌豆荚,但是不是哪里都有wifi的.
1.3使用具有网络同步功能的笔记管理软件
通过笔记管理软件,比如evernote,盛大麦库(使用此链接注册,可以将500M控件升级为1G,作为邀请人,我的空间也会增长200M,呵呵,双赢啊!)
在pc端编写好脚本,上传,然后再在手机上下载下来,粘帖到SL4A中.
2.将程序的代码生成二维码图片
上面的几种方法要么对硬件有要求(数据线,无线路由),要么要下载额外的软件(笔记管理软件),都比较麻烦,其实SL4A的作者也考虑到了这个问题,为我们提供了一种很有趣的代码输入方式:扫描二维码!
方法如下:
1. 打开二维码生成页面:http://zxing.appspot.com/generator/,在Contents后面的下拉列表中选择:Text
2. 在Text content 后文本区的第一行输入脚本的名称,比如:HelloWorld.py
3. 在他的下方输入脚本的内容.
4. 在Barcode size 后的下拉列表中选择:L
5. 点击Gernerate 生成二维码
6. 将右边生成的二维码保存或者与你的朋友们分享!
生成的二维码如图所示:
3. 使用手机扫描生成的二维码,并将其转化为py脚本
二维码生成了,如何将它导入手机呢?
1.启动SL4A进入脚本列表
2.按菜单键(MENU)
3.点击Add
4.点Scan Barcode
5.扫描生成的二维码,脚本便会自动显示在列表中(名称就是第一行的名称)
ps:二维码最多容纳的字符为4296个,所以只能用来存放较短的脚本!
转载自:http://tieqixia.javaeye.com/blog/891729
另一篇文章:
原文来自:http://imxingzhi.appspot.com/?p=110001 偶然间发现了google code上的一个项目——android-scripting 该项目开发了一个叫SL4A(Scripting Layer for Android),也被称为ASE(Android Scripting Environment)的软件 该软件可允许一些脚本语言如python、Perl、Lua、Javascript(甚至可以用BeanShell——可以解释Java代码了)在android平台上来编写并编译程序。 SL4A还能访问Android API,可以在手机上直接开发Android应用!虽然我还没这能耐,但想想还觉得爽啊。 我还发现可以利用SL4A的服务器或是通过USB,在电脑上写脚本然后发送至手机上运行。(RemoteControl) 这是款很好很强大的软件!! 下面说说如何在Android上用python写程序。 打开项目主页:http://code.google.com/p/android-scripting/ 下载SL4A软件。 用手机上的条码扫描器扫描位于正中的条码并在手机里下载,或者点击它下载再通过usb传输到手机去。安装它。 接下来,就是增加python语言支持了。 有两种方式安装python解释器。 1. 在项目主页右边Featured downloads处选择python_for_android_r1.apk并将其下载至手机,方法同上,然后在手机上安装后执行。执行后是一个黑色界面,上面有 Install 按钮,点击它就会自动下载压缩包。 2. 执行SL4A ,按手机的Menu键,选Interpreters, 再按Menu,选Add,就会出现各种支持的语言了,选Python2.6.2 程序便会自动下载并安装。 py文件的执行: python安装后是会有一些范例的,点击便会自动执行,但范例都是Android API的范例。 自己来写一个: 依次按Menu – Add - Python2.6.2 取个名字:hello.py 下面就可以写代码了,第一个程序当然是hello world ~/(≧▽≦)/~啦啦啦 代码如下: print “hello world” 按Menu,Save&Run ,屏幕就出现结果了。 至此,手机就可以用python写程序啦,安装其他语言也是同理。 PS. 在Interpreters里直接点击Python 2.6.2的话,可进入python命令行界面,可以直接执行代码,但还是建议新建py文件,因为在命令行界面下不能用全键盘打字,打命令很痛苦:( PPS. Android API:http://code.google.com/p/android-scripting/wiki/ApiReference PPPS. 感谢这新闻,让我知道了这一好东西:http://www.infoq.com/cn/news/2009/07/android-scripting |
转载自:http://hi.baidu.com/zhangtqqq/blog/item/52291c07bb5737df7b8947a7.html
【Android】让Python在Android系统上飞一会儿的更多相关文章
- 转 让Python在Android系统上飞一会儿
让Python在Android系统上飞一会儿 地址: http://blog.csdn.net/ccwwff/article/details/6208260
- python在windows系统上创建文件
正确方法为:open("test1.txt",'wb')或open("test1.txt",'w') 以下是网上的方法创建遇到的问题 使用Python2.7在w ...
- 利用Python进行windows系统上的图像识别与点击(Mac OS系统也可以)
系统环境: 1.安装了python 2.安装了pyautogui模块 windows系统:无需安装依赖模块,在cmd中直接输入pip install pyautogui即可完成安装 Mac OS系统: ...
- Android API在不同版本系统上的兼容性
随着安卓版本的不断更新,新的API不断涌出,有时候高版本的API会在低版本crash的. 如果minSdkVersion设置过低,在build的时候,就会报错(Call requires API le ...
- 请不要重复犯我在学习Python和Linux系统上的错误
本人已经在运维行业工作了将近十年,我最早接触Linux是在大二的样子,那时候只追求易懂,所以就选择了Ubuntu作为学习.使用的对象,它简单.易用.好操作.界面绚丽,对于想接触Linux的新手来说是非 ...
- centos6.5+jexus5.6.3+mono 3.10实践,让asp.net在linux上飞一会儿
备忘,这是给自己看的,用ubuntu server装mono 3.10老是卡在了编译libgdiplus上面,从来就没成功过,郁闷啊,零零散散搞了好几天,作罢.后来试了OpenSUSE 11很容易搞好 ...
- 如何在Windows系统上基于Sublime搭建Python的编译环境
刚刚接触到Python,直接在计算机上编译时不能正确的运行,所以将一些有关编译环境调试的知识总结了一下. 环境搭建: Python在 windows系统上编译的时候可能会出现一些编译无法运行的情况,我 ...
- 理解WebKit和Chromium: 调试Android系统上的Chromium
转载请注明原文地址:http://blog.csdn.net/milado_nju 1. Android上的调试技术 在Android系统上,开发人员能够使用两种不同的语言来开发应用程序,一种是Jav ...
- 在Mac系统上配置Android真机调试环境
在Mac系统上配置Android真机调试环境 mac上配置安卓环境还说挺方便的,真机调试也比win上要好一些.win上被各种软件强行安装了xxx助手. 在mac上就了一个干净的感觉. 下载Androi ...
随机推荐
- 【转】gcc命令中参数c和o混合使用的详解
gcc -c a.c 编译成目标文件a.o gcc a.c 生成执行文件a.exe gcc -o a -c a.c 编译成目标文件a gcc -o a a.c 生成执行文件a. ...
- latex公式、编号、对齐
原文地址:http://blog.csdn.net/hjq376247328/article/details/49718931 LaTeX的数学公式有两种,即行中公式和独立公式.行中公式放在正文中间, ...
- Loj 【CQOI 2006】简单题,mmp
#10117. 「一本通 4.1 练习 2」简单题 题目描述 题目来源:CQOI 2006 有一个 nnn 个元素的数组,每个元素初始均为 000.有 mmm 条指令,要么让其中一段连续序列数 ...
- python的assert关键字用法
- Jquery分享插件
效果图如下: 代码如下: <!DOCTYPE HTML> <html style="padding-bottom: 54px;"> <head> ...
- 用Python优雅的处理日志
我们可以通过以下3种方式可以很优雅配置logging日志: 1)使用Python代码显式的创建loggers, handlers和formatters并分别调用它们的配置函数: 2)创建一个日志配置文 ...
- Stetho简化Android调试(一)
在开发 Android 应用的时候,有时候我们需要查看数据库.SharePreference等.通常的做法是把相关文件pull出来,而前提必须是手机得root.如果没有root,那就只能通过打印或其它 ...
- python按照字典排序
d = {'a':1,'b':4,'c':2} 方法一: sorted(d.items(),key = lambda x:x[1],reverse = True) 方法二: import operat ...
- 【进阶1-4期】JavaScript深入之带你走进内存机制(转)
这是我在公众号(高级前端进阶)看到的文章,现在做笔记 https://mp.weixin.qq.com/s/yK4DPKhkmkiroasWJMrJcw 阅读笔记 JS内存空间分为栈(stack).堆 ...
- 关于 IOS 时间的一下用法
1. 加减月份 -(NSDate *)getPriousorLaterDateFromDate:(NSDate *)date withMonth:(int)month { NSDateComp ...