2012-01-22 95 views
47

我剛開始潛入Android世界。我有很多使用Python編程的經驗,所以我一直在尋找一個「Android + Python」的好組合,我想我已經找到了它:KivyKivy爲Android應用程序

我需要製作能夠從互聯網上下載和上傳內容的應用程序,也許與Android中包含的地圖組件有一些聯繫,還有更多東西可以製作出漂亮的Android應用程序。

但我真的不想浪費我的時間在一些可能不起作用的東西上。那麼,沒有人有開發Android應用程序的一些經驗,使用Kivy?它真的有用,簡單,可能嗎?或者你有更好的選擇嗎?

+0

到目前爲止,您與Kivy的經歷如何?它是否支持一些Android功能,例如獲取GPS位置或閱讀聯繫人列表?你大概已經使用Kivy一段時間後有什麼想法了嗎? – Tadeck

+1

@Tadeck我不得不承認,和其他許多人一樣,我放棄了使用Kivy的想法,由於文檔不足和幾乎不存在的活躍社區。 – juliomalegria

+5

基維並不是幾乎不存在的。每當我在他們的IRC頻道上詢問他們時,我都會回答我的問題。 – Joschua

回答

3

我對此很少有經驗。但我知道

SL4A (Scripting Layer For Android)不支持用Python編寫Android應用程序。在你決定使用什麼之前,可能需要仔細研究一下。

+2

我讀過SL4A允許你在Android中運行Python腳本,但它不允許你創建真正的Android應用程序,你知道這件事嗎?你從小的經歷中知道基維的情況如何? – juliomalegria

+0

最後我知道沒有辦法將你的python腳本封裝到sl4a中的apk文件中。然而,似乎塔斯克有能力啓動單獨的sl4a腳本(包括Python腳本),無論是否顯示控制檯輸出。如果tasker能夠做到這一點,你可以以某種方式製作一個包含python腳本的apk並且能夠以與tasker相同的方式啓動它們。 – FoamyGuy

22

我一直在使用並貢獻給kivy一段時間,並將它用於面向市場的大型應用程序。儘管仍然不如原生開發完整(不確定是否可以使用地圖Android API,但有其他選擇),但它工作得很好,性能良好。用於快速原型設計的kv語言非常酷。

作爲獎勵積分,您的應用程序也可以在windows/linux/mac/ios上運行...(我們仍然需要嘗試登陸蘋果商店,但從技術上講它是有效的)。編輯:到目前爲止,蘋果市場上至少已經接受了一款kivy應用程序,如果您有興趣,請查找「deflectouch」。

與SL4A相比,您可以獲得一個真正的apk來分發,包含kivy以及一個非常漂亮和華麗的GUI API,適用於多點觸控應用程序。

+0

Kivy看起來非常好,就接口而言有很大的潛力。但是Android API呢?有沒有一種方法可以使用它(例如像SL4A中那樣)?我對Kivy非常感興趣,但是我還沒有找到任何關於例如。閱讀GPS位置數據,創建敬酒,閱讀聯繫人列表,我也沒有發現有關這些功能的信息在Kivy應用程序中不可用。你知道這件事嗎? – Tadeck

+2

kivy android port基於pgs4a,因此您可以訪問此模塊http://pygame.renpy.org/api.html#module-android它不是kivy api的一部分,因爲它不可移植(僅限於android)。 – Tshirtman

+0

@tshirtman,嗨,感謝您製作的youtube視頻,它讓我在試圖找到自己的路的同時,在基維的推動下。我可以看到你在StackOverflow上的大部分貢獻都在Kivy上,這太好了,我們很快就會聯繫到它:) – securecurve

12

我相信KivyMaps與你所要做的很相似。

如果您避免使用非Android平臺特定的代碼,那麼您的應用程序應該在Android上運行而不會出現任何問題。

我建議你也看看Python for Android,它是Kivy的一個姊妹項目,旨在幫助你創建你自己的Python發行版,包括你想要的模塊,並創建一個包含python,libs和你的應用程序的apk。特別看看它的Android本地API包裝。該項目是新的,因此只支持少數本地API,但如果您需要的話,它可能會讓您瞭解如何爲Android位置服務API創建包裝。

至於谷歌地圖外部庫,我同意tshirtman。我不確定它是如何使用的,但由於上面的KiviMaps鏈接強調了可用的替代方法。

1

Kivy是用於NUI開發的跨平臺Python框架。 這是一些原型的Android應用程序的好處。您可以使用Kivy啓動器進行更快速的測試。 你可以使用python庫如此快速的開發功能。 您可以使用pyjnius來訪問基於Java的功能的Java類。

我建議你閱讀Kivy Interactive Applications in Python書爲新手。

但是在更深層次上,您應該知道如何仔細使用基本小部件。 因爲有一些令人困惑的概念。對於canvas,它在html5中是不同的概念。 Kivy語言的課堂規則和課程對於新手來說有些令人困惑。

而對於android應用程序,有一些難以使用像美麗的湯(着名的HTML和XML解析器庫)基本支持的庫。