Python SL4A 开发

Posted

技术标签:

【中文标题】Python SL4A 开发【英文标题】:Python SL4A Development 【发布时间】:2012-06-06 01:56:31 【问题描述】:

好吧 - 我感觉自己像个沮丧的白痴。我想先声明一下。

我正在尝试进行 Python/android 设置,以便开发适用于 Android 的 Python 应用程序。我在我的 Android 设备上安装了 SL4A 和 Python 解释器,并且可以在手机上编写一个运行的应用程序。

问题是如何在我的 PC 上继续开发并与我的 Android 设备交互。我已经解压了 extras 包并将其放在 $PYTHONPATH/site-packages/ 中。我已经将 Ecplise 与 PyDev 和 Android 包集成并设置了 AP_PORT 和 AP_HOST 环境变量。

当我运行以下代码时:

import android
droid = android.Android()
droid.makeToast("Hello")

我在 Eclipse 中遇到错误,其中包括“com.googlecode.android_scripting.rpc.RpcError: Unknown RPC”。到糟糕的魔术数字。

当我通过 CLI 进入 Python 并键入时

import android

我得到以下输出

com.googlecode.android_scripting.rpc.RpcError: Unknown RPC.

任何帮助或初学者教程将不胜感激。

我知道我一定是做错了什么,因为我看到其他人开始适应,看起来,相对轻松。

提前致谢。

【问题讨论】:

只是为了澄清。您想在 Eclipse 中开发 python 脚本并能够像使用 adb 进行原生开发一样将其推送到设备? 【参考方案1】:

1。启动服务器

在设备上

首先,用 USB 连接您的设备。然后进行远程调试,你需要在你的设备上启动一个服务器:

SL4A -> Interpreters -> Menu -> Start Server

私人的更可取。

然后您可以在Android通知区域查找服务器的端口(使用SL4A r5您可以在设置中指定一个固定端口)。

从电脑

或者,您可以使用特定端口(设置端口需要 r5)从带有adb 的 PC 启动服务器:

$ adb shell am start -a com.googlecode.android_scripting.action.LAUNCH_SERVER \
  -n com.googlecode.android_scripting/.activity.ScriptingLayerServiceLauncher \
  --ei com.googlecode.android_scripting.extra.USE_SERVICE_PORT 51943

2。指定连接

现在您需要使用 adb 转发您的端口(假设查找的值为 51943):

$ adb forward tcp:51943 tcp:51943
$ export AP_PORT=51943

3。启动脚本

之后你应该可以在本地运行你的脚本了:

$ python my_script.py

Wifi 连接

如果你想通过 wifi 去,你不需要用adb 转发你的端口。相反,您必须使用 public 服务器并另外指定您的主机:

$ export AP_HOST=192.168.0.100 

参考文献

如需更多帮助,请参阅Wiki page addressing this topic。

【讨论】:

嗨,我已经完成了 1,2 步骤,但是我已经在我的电脑上运行了 python 代码,我会收到这个错误ImportError: No module named android,我已经在我的终端中尝试了wget 127.0.0.1:51943 我会收到这个味精Connecting to 127.0.0.1:51943... connected. HTTP request sent, awaiting response... No data received. Retrying. 在开发目录中的android-scripting.googlecode.com/hg/python/ase/android.py android.py 文件中下载并继续执行它工作正常的步骤

以上是关于Python SL4A 开发的主要内容,如果未能解决你的问题,请参考以下文章

SL4A 项目是不是有效?

Android 应用程序开发上的 SL4A 与 Ruboto

我可以在 Android Market 上出售我的 SL4A 应用吗?

从 Android 开始:Java 或 Python (SL4A)

python 能开发App么

使用 SL4A (Python) 和蓝牙