我準備好開始一點Android開發,並且需要選擇一種語言。我知道Python,但必須學習Java。我想從您的那些人那裏知道在Android上使用Python的限制是什麼。另外,是否有比Java更多的好處?Python在Android上的侷限性是什麼?
回答
我最近因爲類似的原因調查了這個。我的結論是,我不能用Python開發一個本地外觀應用程序,這正是我當時想要的。具體做法是:
Python不能從Java UI類接收回調,所以你不能使用任何本地Java UI元素,如ListView控件,等等。只有對話框等容易獲得。如果你有一個完全自定義的用戶界面,比如遊戲,你可以試試PyGame for Android,或者你可以看Kivy,它也使用PyGame。
Python應用程序的封裝非常困難,特別是因爲Python解釋器默認不包含在Android中。 Kivy和PyGame團隊正在此間歇性地取得進展。
由於上述問題,Python本質上從未用於製作應用商店中發佈的完整應用程序,因此有關如何處理SL4A(Scripting Layer For Android)許多雜項問題的文獻非常薄弱。
所以,如果你想使用原生UI元素,你實際上可以分佈在Play商店,或兩者的應用程序,Python是令人遺憾的是沒有一個選項。
您可以打包Play商店,並且可以使用網頁瀏覽和任何HTML5內容來構建GUI。 jQuery Mobile UI適用於簡單的東西。我有一個基於jQuery Mobile和Python的應用程序,打包爲可安裝的APK,包含解釋器和其餘所有內容。這是Play的一鍵安裝。 – 2013-02-07 02:18:13
@CarlSmith謝謝你的提示。你用什麼來捆綁翻譯?你的用戶是否必須安裝SL4A軟件包? – 2013-02-07 03:57:05
我使用了這個項目的代碼(http://code.google.com/p/android-python27/)並從那裏開始。它爲您提供了所需的所有鉤子,但在您完成設置之前,這只是一個糟糕的工作流程。你不需要Eclipse,但最好先使用它,看看它是如何組合在一起的。 – 2013-02-10 00:13:48
安德魯提到的大部分觀點,我只是想提一提,python可以被用來發布在GooglePlay甚至iOS上的完整應用。我不能說其他框架,但以下是使用Kivy發佈的應用程序的一些示例。
- 加工工藝Google PlayiOS
- Fantasy War hammer
- PreseMT is a multitouch presentation maker
- Memo robots
- Ground Truth
- Kaleidoscope
- Showcase demo example from Kivy project
- DefelectTouch遊戲iOS
- Bargenius還有更多...
在包裝上,我們試圖使它儘可能簡單,我們還提供
- 預建VM,可以是用於使你的apk與你不必做任何事情,除了 複製你的項目目錄並運行一個命令。
在GUI上,是的,用戶界面默認是自定義的(嘗試匹配Android的Holo主題)。然而,它可以定製爲類似於其他外觀和感覺,儘管我沒有親自嘗試。
哦,只要有人在談論Android上的基於python的應用程序,我發現這個項目在stackoverflow上提到PyMob,他們的apps頁面提到了一些有趣的應用程序。
我已經開發出市場上使用Python編碼的Android應用程序。缺點:
- 到目前爲止我的用戶還必須下載解釋器,但他們會立即提示這樣做。 (更新:請參閱下面的註釋。)
- 腳本無法正常退出,因此我添加了一個webView頁面,要求他們轉到:Settings:Apps:ForceClose(如果發生此問題)。
我已經移植了所有我的sl4a應用程序eclipse apk,它嵌入python解釋器,不需要安裝任何應用程序,除了谷歌播放! A)Android Eye(計算機視覺),拍攝照片並告訴你它是什麼(物體識別): https://play.google.com/store/apps/details?id=com.androideye.androideye B)請參閱Say(OCR)Picture to Speach,供視障人士使用。你可以從字面上讀它的書: https://play.google.com/store/apps/details?id=com.seesay.seesay D)標準化的智商測試(基於Stanfod-Binet): https ://play.google.com/store/apps/details ID = com.iqtest.iqtest – 2012-10-15 08:21:05
- 1. 序列化的侷限性是什麼?
- 2. silverlight的侷限性是什麼?
- 3. 什麼是硒的侷限性
- 4. Windows CE 4.2的侷限性是什麼?
- 5. let命令的侷限性是什麼?
- 6. 鬆散XAML的侷限性是什麼?
- 7. Android的侷限性
- 8. jython的PyObject .__ tojava__方法的侷限性是什麼?
- 9. 對.format在Python中的侷限性
- 10. 彙編器的侷限性是什麼? (NASM)
- 11. Visual Web Developer Express 2010的侷限性是什麼?
- 12. 視圖狀態方法的侷限性是什麼?
- 13. SSRS中計算字段的侷限性是什麼?
- 14. Lucene中布爾查詢的侷限性是什麼?
- 15. OFBIZ框架9的優點和侷限性是什麼?
- 16. wpf網頁瀏覽器控制的侷限性是什麼?
- 17. 本地存儲密鑰的侷限性是什麼?
- 18. 動態鑄造的侷限性是什麼?
- 19. Listen服務器的侷限性是什麼?
- 20. 部分索引的侷限性是什麼?
- 21. D中原始字符類型的侷限性是什麼?
- 22. slony中表id的侷限性是什麼?
- 23. 在Python中什麼是全局聲明?
- 24. 在android佈局什麼是layout_height =「0dip」
- 25. 什麼是HTML中的全局屬性
- 26. Android上的UID是什麼?
- 27. 什麼是Android權限WRITE_GSERVICES準確的?
- 28. 爲什麼隨機整數的上限不是20? (Python 3中)
- 29. Android - 佈局上下文的含義是什麼?
- 30. Android上此菜單式佈局項的名稱是什麼?
你可以從這個線程開始:http://stackoverflow.com/questions/3346970/starting-with-android-java-or-python-sl4a – Tarik 2012-07-22 12:47:22
尼斯鏈接dorian。謝謝你。 – NlightNFotis 2012-07-22 14:56:58
感謝您的鏈接。這很好,但兩歲。 – 2012-07-22 15:46:51