Py学习  »  Python

如何在我的android代码中使用python代码?

H.Patel • 4 年前 • 2997 次点击  

我们正在研究 S60 这个平台有一个很好的python api。

然而,在android上没有关于python的官方消息,但是 Jython 存在,有没有办法让蛇和机器人一起工作??

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/40690
 
2997 次点击  
文章 [ 25 ]  |  最新文章 4 年前
DrawT
Reply   •   1 楼
DrawT    6 年前

看一看 BeeWare . 在回答这个问题时,它仍处于早期发展阶段。它的目标是能够使用python为所有支持的操作系统(包括android)创建本地应用程序。

frmdstryr
Reply   •   2 楼
frmdstryr    5 年前

退房 enaml-native 它接受react本机概念并将其应用于python。

它允许用户使用本地Android小部件构建应用程序,并提供API来使用Python中的Android和Java库。

它还与android studio集成,并共享react的一些不错的开发功能,如代码重新加载和远程调试。

Community Benjamin Gruenbaum
Reply   •   3 楼
Community Benjamin Gruenbaum    6 年前

还有一个选择似乎是 pyqtdeploy 引用这些文件是:

与qt提供的其他工具一起使用的工具 python编写的pyqt4和pyqt5应用程序的部署 v2.7或python v3.3或更高版本。它支持部署到桌面 平台(Linux、Windows和OS X)和移动平台(iOS和 Android)。

根据 Deploying PyQt5 application to Android via pyqtdeploy and Qt5 它是积极开发的,尽管很难找到运行android应用程序的例子,也很难找到如何将所有必需的库交叉编译到android的教程。不过,要记住这是一个有趣的项目!

GR Envoy
Reply   •   4 楼
GR Envoy    7 年前

如果您要查找3.4.2或3.5.1,另一个选项是github上的这个存档。

Python3-Android 3.4.2 Python3-Android 3.5.1

它目前支持python 3.4.2或3.5.1以及ndk的10d版本。它还可以支持3.3和9c、11c和12

很好,你只需下载它,运行make就可以得到.so或.a

我现在用这个在android设备上运行原始python。通过对构建文件的一些修改,您还可以将x86和armeabi设置为64位

radix07
Reply   •   5 楼
radix07    9 年前

我没看到这篇文章,但是你可以用pyside和qt来做,现在qt可以在android上工作了,多亏了needinas。

目前看来这是一个相当混乱的时刻,但最终可能是一条可行的路线…

http://qt-project.org/wiki/PySide_for_Android_guide

pz64_
Reply   •   6 楼
pz64_    5 年前

playstore中有一个名为qpython3的应用程序,可以用于编辑和运行python脚本。

Playstore link

另一个名为termux的应用程序,您可以在其中使用命令安装python

pkg install python

Playstore Link

如果你想开发应用程序,有 Python Android Scripting Layer (SL4A) .

The Scripting Layer for Android, SL4A, is an open source application that allows programs written in a range of interpreted languages to run on Android. It also provides a high level API that allows these programs to interact with the Android device, making it easy to do stuff like accessing sensor data, sending an SMS, rendering user interfaces and so on.

ode2k
Reply   •   7 楼
ode2k    7 年前

你可以使用 QPython :

它有一个python控制台、编辑器以及包管理/安装程序

http://qpython.com/

这是一个开源项目,同时有Python2和Python3实现。您可以直接从github下载源代码和android.apk文件。

QPython 2: https://github.com/qpython-android/qpython/releases

QPython 3: https://github.com/qpython-android/qpython3/releases

mhsmith
Reply   •   8 楼
mhsmith    6 年前

查奎斯

Chaquopy 是android studio基于gradle的构建系统的插件。它专注于 close integration 使用标准的android开发工具。

这是一个商业产品,但它是免费的开源使用,并将永远保持这种方式。

(我是这个产品的创造者。)

tim687 fooba
Reply   •   9 楼
tim687 fooba    8 年前

也有可能运行mosync的python-on-a-chip: google group

Peter Mortensen Vinoth Rajendr
Reply   •   10 楼
Peter Mortensen Vinoth Rajendr    9 年前

您可以使用 sl4a . SL4A支持Python, Perl , JRuby , Lua ,beanshell,javascript, Tcl ,和shell脚本。

你可以学习SL4A Python Examples .

e-satis
Reply   •   11 楼
e-satis    11 年前

又一次尝试: https://code.google.com/p/android-python27/

这一个直接将python解释程序嵌入到应用程序apk中。

Adrian Stanculescu
Reply   •   12 楼
Adrian Stanculescu    7 年前

你可以使用 Termux 应用:

注意apt install python install python 3。 对于python2,应该调用apt install python2。

这里有些演示: https://www.youtube.com/watch?v=fqqsl72mASE

以及github页面: https://github.com/termux

gdw2
Reply   •   13 楼
gdw2    12 年前

Python for android 地点:

python for android是一个创建自己的python发行版(包括所需模块)和创建apk(包括python、libs和应用程序)的项目。

Peter Mortensen Vinoth Rajendr
Reply   •   14 楼
Peter Mortensen Vinoth Rajendr    9 年前

我使用qpython应用程序。它有一个编辑器,一个控制台,你可以用它运行你的python程序。应用程序是免费的,链接是 http://qpython.com/ .

ΦXocę 웃 Пepeúpa ツ
Reply   •   15 楼
ΦXocę 웃 Пepeúpa ツ    8 年前

使用sl4a(它已经在其他答案中提到过)您可以 run 全面成熟 web2py 实例(其他 python web frameworks 也可能是候选人)。sl4a不允许您使用本机ui组件(按钮、滚动条等),但它确实支持 WebViews . webview基本上只不过是指向固定地址的条带化web浏览器。我相信本地的gmail应用程序使用webview而不是常规的widget路径。

这条路线有一些有趣的特点:

  • 对于大多数python web框架,您实际上可以在不使用android设备或android模拟器的情况下进行开发和测试。
  • 无论你最终为手机编写的python代码是什么,也可以放在一个公共web服务器上,只需很少(如果有的话)修改。
  • 你可以利用所有疯狂的网络资源:查询、HTML5、CSS3等等。
Majid Fouladpour
Reply   •   16 楼
Majid Fouladpour    11 年前

现在不行,你很幸运能让Jython马上工作。如果你现在打算开始你的开发,现在坚持Java就更好了。

Blackwood Anzel
Reply   •   17 楼
Blackwood Anzel    6 年前

基维


我想把这个作为 @ JohnMudd 已经回答了( 但请容忍我,因为英语不是我的母语 )

从那以后已经很多年了,kivy已经发展到v1.9-dev,在我看来,kivy最大的卖点是它的跨平台兼容性。您可以在本地环境(windows/*nix等)下进行编码和测试,也可以构建、调试和打包应用程序,以便在android/ios/mac/windows设备上运行。

基维自己的 KV 语言,您可以轻松地编写和构建GUI界面(它就像Java XML,而不是TeXVIEW等),KV有它自己的。 ui.widgets 对于类似的翻译),这在我看来是很容易接受的。

目前 Buildozer python-for-android 是构建/打包应用程序的最推荐工具。我已经尝试过这两种方法,可以肯定地说,它们让用python构建android应用变得轻而易举。在控制台/终端/命令提示符下感觉舒适的用户使用它们应该没有问题,而且他们的指南也有很好的文档记录。

此外,iOS是Kivy的另一大卖点,只要您可以使用相同的代码库,只需稍作更改即可在iOS设备上测试运行,通过 kivy-ios 尽管Xcode是在设备上运行之前构建所必需的(但Xcode中的IOS模拟器目前不适用于x86体系结构构建)。在xcode中也有一些依赖性问题必须手动编译和处理才能成功构建,但是这些问题不太难解决,而且 Kivy Google Group 也很有帮助。

尽管如此,拥有良好python知识的用户应该可以在几周(如果不是几天)内掌握基础知识来构建一些简单的应用程序。

另外值得一提的是,您可以将python模块与构建捆绑在一起,这样用户就可以真正利用python为我们带来的许多现有库,比如 Requests 和; PIL 通过等 Kivy's extension support .

有时您的应用程序需要超出 Kivy能提供的范围。在这种情况下,有必要 求助于外部软件库。鉴于 python生态系统,已经有很多软件 可以直接导入和使用的库。

最后但并非最不重要的一点是,如果你打算将kivy用于更严肃/商业的项目,你可能会发现现有的模块并不令人满意。不过,有一些可行的解决方案,包括 pyjnius 对于Android,以及 pyobjus . 用户现在可以通过这些模块访问Java/Objtovi-C类来控制一些本地API。

我在kivy的经验是,它最适合经验丰富的python程序员和一些需要快速开发或简单代码库维护的严肃程序员。它在多个平台上运行良好,尽管不是真正的 本地的 感觉。

我真的希望一些python应用程序程序员发现这些信息很有用,并开始关注kivy。如果社区有很大的兴趣,它只能变得更好(有更多的支持和库/模块的移植)。

p.s.我和kivy没有任何关系,我只是一个程序员,真正喜欢把python编码的乐趣带给移动/跨平台开发的想法。

Peter Mortensen Vinoth Rajendr
Reply   •   18 楼
Peter Mortensen Vinoth Rajendr    9 年前

作为一个 Python 亲爱的android程序员,我很难过地说,这不是一个真正的好办法。有两个问题。

一个问题是,android开发工具不仅仅有一种编程语言。很多android图形都包含xml文件来配置显示,类似于html。内置的Java对象实际上与这个XML布局集成在一起,这比编写自己的代码从逻辑到位图要容易得多。

另一个问题是g1(可能还有其他android设备在不久的将来)真的没有那么快。200兆赫处理器,内存非常有限。即使在爪哇,如果你想让你的应用程序完全流畅,你也必须做一笔可观的重写以避免更多的对象创建。在移动设备上,python在一段时间内会太慢。

Carl Smith miracle2k
Reply   •   19 楼
Carl Smith miracle2k    5 年前

Android脚本层

SL4A 做你想做的。你可以很容易地从他们的站点直接安装到你的设备上,而不需要根。

它支持多种语言。蟒蛇是最成熟的。默认情况下,它使用Python2.6,但是 3.2 port 你可以用。我用那个端口在银河系s2上做过各种各样的事情,它工作得很好。

美国石油学会

SL4A提供了一个 android 每个支持语言的库。这个库通过一个 Android 对象。

from android import Android

droid = Android()
droid.ttsSpeak('hello world') # example using the text to speech facade

每种语言都有几乎相同的api。甚至可以在webviews中使用javascript api。

let droid = new Android();
droid.ttsSpeak("hello from js");

用户界面

对于用户界面,有三个选项:

  • 您可以通过 应用程序编程接口。这有利于确认对话和其他基本用户输入。
  • 您还可以从python脚本中打开webview,然后使用html5 对于用户界面。当您使用python中的webview时,可以通过 在webview和python进程之间来回传递的消息 产卵了ui不是本机的,但它仍然是一个很好的选择 有。
  • 一些 支持原生android用户界面,但我不是 当然可以,我只是从来没用过。

您可以混合使用选项,这样就可以在主界面上使用webview,并且仍然使用本机对话。

QPython

有一个名为 QPython . 它建立在sl4a的基础上,并投入了一些其他有用的东西。

qpython为您提供了一个更好的ui来管理您的安装,并包括一个小的触摸屏代码编辑器、一个python shell和一个用于包管理的pip shell。它们还有一个python 3端口。这两个版本都可以从游戏商店免费获得。qpython还将一些python中的库打包到android项目中,包括kivy,因此它不仅仅是sl4a。

请注意,Qpython仍然在开发SL4a的叉子(不过,老实说不多)。sl4a的主要项目本身就已经死了。

有用的链接

gabomdq
Reply   •   20 楼
gabomdq    12 年前

我已经发布了针对Android交叉编译Python2.7.2的说明和修补程序,您可以在我的博客上获得它: http://mdqinc.com/blog/2011/09/cross-compiling-python-for-android/

编辑:我已经开源了 Ignifuga ,我的2d游戏引擎,它基于python/sdl,它为android交叉编译。即使你不在游戏中使用它,你也可以从代码和生成器实用程序(命名为schafer,以tim…you know who命名)中获得有用的想法。