2022-07-31 14:19:00阅读 2300
大家好,又见面了,我是你们的朋友全栈君。
最近闲来无事,研究研究在安卓上跑Python。
想起以前玩过的kivy技术,kivy[1]是一个跨平台的UI框架。当然对我们最有用的是,kivy可以把python代码打包成安卓App。但是由于安卓打包的工具链很长,包括android sdk打包java代码、ndk编译python、 编译各种python依赖包,经常花一整天从入门到放弃。这次使出认真研究的心态,终于找到一个解决方案,于是有了这篇文章:
•只要会python就能写安卓App,无需安卓开发基础,无需编译•手机上也有交互式python解释器,直接调试python代码•可以使用各种python库,包括numpy/opencv等机器学习包•可以与安卓接口交互,使用手机硬件,比如摄像头
那么我们就以人脸识别App为例,看看如何简单几步搞定。先看看成品的效果:
第一步:安装airport.apk
AirPort是我编译好的一个安卓App,里面包含了python解释器和一些常用的python库。
第二步:连接手机的python解释器
启动手机上的AirPort应用,就会运行python解释器。我内置了一个ssh服务器,用于调试代码非常方便。应用启动时会显示手机的ip地址。
在电脑上使用ssh命令,就可以连接到手机。
注意:确保你的手机和电脑在同一局域网中。
#在电脑上连接手机,注意这里ip需要替换成AirPort显示的ipssh -p 8000 admin@192.168.31.101#输入密码meteorix
然后你就可以在手机上尽情使用python了,比如试试
>>>import os>>>os.getcwd()’/data/data/org.airtest.airport/files/app’>>>import requests>>>r = requests.get(“https://www.baidu.com”)>>>r.status_code200
第三步: 一个摄像头的App
在kivy的官方文档中,我们可以找到这样一个摄像头的example[2]
代码非常简单,Builder.load_string函数加载了一段配
当然是不行的,脚本执行需要有 解释器的。也就是 例如 win平台下的 python.exe 文件。你可以使用web页面,将文件上传到服务器,然后在服务器执行脚本并将处理结果,返回到客户端。