有沒有辦法在Android上運行Python?



Answers

還有新的Android腳本環境 (ASE / SL4A)項目。 它看起來很棒,它與原生Android組件有一些整合。

注意:不再在“積極發展”下,但有些分叉可能會。

Question

我們正在開發一個S60版本,這個平台有一個很好的Python API。

然而,Android上並沒有官方的關於Python的內容,但是由於Jython存在,是否有辦法讓蛇和機器人一起工作?




使用SL4A(在其他答案中已經提到過)可以run一個完整的web2py實例(其他python web框架也可能是候選人)。 SL4A不允許您執行本地UI組件(按鈕,滾動條等),但它確實支持WebViews 。 WebView基本上只不過是一個指向固定地址的分離式Web瀏覽器。 我相信原生Gmail應用程序使用WebView而不是使用常規小部件路線。

這條路線會有一些有趣的功能:

  • 在大多數python web框架的情況下,你可以實際開發和測試,而不使用android設備或android模擬器。
  • 無論您最終為手機編寫的Python代碼是什麼,都可以通過很少(如果有)修改的方式將其放在公共網絡服務器上。
  • 您可以利用所有瘋狂的網頁內容:查詢,HTML5,CSS3等。



我使用QPython應用程序。 它有一個編輯器,一個控制台,你可以用它來運行你的Python程序。 該應用程序是免費的,鏈接是http://qpython.com/




還有Google員工編寫的SL4A










作為一名Python愛好者和Android程序員,我很難過地說這不是一個真正的好方法。 有兩個問題。

一個問題是,Android開發工具不僅僅是一種編程語言。 很多Android圖形涉及XML文件來配置顯示,類似於HTML。 內置的java對象實際上與這個XML佈局集成在一起,比編寫你自己的代碼從邏輯到位圖要容易得多。

另一個問題是,G1(以及可能在不久的將來其他Android設備)真的不是那麼快。 200 MHz處理器,而且RAM非常有限。 即使在Java中,如果要使應用程序完美平滑,還必須進行大量重寫以避免更多對象的創建。 Python仍然會在移動設備上運行一段時間太慢。




Chaquopy

Chaquopy是Android Studio的基於Gradle的構建系統的插件。 它側重於與標準Android開發工具的緊密集成

  • 它提供了完整的API來從PythonJava調用Java ,允許開發人員使用最適合其應用程序的每個組件的語言。

  • 它可以自動下載PyPI包並將它們構建到應用程序中,包括所選的本地包,如NumPy。

  • 它支持從Python完全訪問所有Android API,包括本地用戶界面工具包( 示例純Python活動 )。

這是一個商業產品,但它對開放源代碼的使用是免費的,並且始終保持這種狀態。

(我是這個產品的創造者。)




你可以使用sl4a來運行你的Python代碼。 sl4a支持Python, PerlJRubyLua ,BeanShell,JavaScript, Tcl和shell腳本。

您可以學習sl4a Python示例




在這裡沒有看到這篇文章,但是現在你可以用Pyside和Qt來完成了,因為Qt在Android上運行得益於Necessitas。

這似乎是相當混亂,但最終可能是一條可行的路線......

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




我已經發布了針對Android的交叉編譯Python 2.7.2的說明和補丁,您可以在我的博客中獲取它: http://mdqinc.com/blog/2011/09/cross-compiling-python-for-android/ : http://mdqinc.com/blog/2011/09/cross-compiling-python-for-android/

編輯:我已經開源Ignifuga ,我的2D遊戲引擎,它是基於Python / SDL的,它為Android進行交叉編譯。 即使你不使用它來進行遊戲,你也可以從代碼和構建器工具中獲得有用的想法(在Tim之後,你知道是誰)。




在Playstore中有一個名為QPython3的應用程序,可用於編輯和運行python腳本。

Playstore鏈接

另一個名為Termux的應用程序,您可以使用命令安裝python

pkg install python

Playstore鏈接






Links