Jak stworzyć aplikację na Androida całkowicie w Pythonie? [Zamknięte]

112

Chciałbym opracować (raczej prostą) aplikację na Androida, która będzie rozpowszechniana w Sklepie Play. Chciałbym to zrobić całkowicie w Pythonie. Jednak badania online nie do końca mnie oświeciły: większość komentarzy jest albo nieaktualna (> 1 rok i wydaje mi się, że od tego czasu może być lepsza integracja Pythona) lub mówią o uruchomieniu Pythona na Androidzie (np. Tutaj ).

Dlatego szukam informacji odnośnie pytań:

  • czy można stworzyć aplikację całkowicie w języku Python - i jakie są do tego narzędzia? (Czy np. Kivy jest godna polecenia?)
  • jeśli tak: jakie są najlepsze środowiska oprogramowania do wdrożenia tego rozwiązania? (Próbowałem bezskutecznie korzystać z Android Studio, ale nie mogłem znaleźć sposobu na uruchomienie tam kodu Pythona).

Jestem całkiem nowy w tworzeniu aplikacji i byłbym bardzo wdzięczny za wszelkie wskazówki dotyczące robienia tego w Pythonie, a nie w Jave itp., Których jeszcze nie znam.

Z góry wielkie dzięki za pomoc.

Ivo
źródło
1
W przeszłości korzystałem z kivy i ich programu buildozer. mają dokumentację tutaj kivy.org/docs/guide/packaging-android.html
es
W rodzimym języku musisz używać Javy lub Kotlin, jednak jak zauważyli inni, istnieją zewnętrzne "programy do tworzenia aplikacji" lub frameworki, których możesz używać w Pythonie, takich jak PyMob lub Kivy.
Dominik Schmidt
8
Stworzyłem grę na Androida, która jest całkowicie opracowana w Pythonie przy użyciu Kivy. Nazywa się CoinTex i jest dostępny w Google Play: play.google.com/store/apps/details?id=coin.tex.cointexreactfast . Kod źródłowy gry jest dostępny tutaj na GitHub: github.com/ahmedfgad/CoinTex . Napisałem również książkę, która ukaże się w tym roku, na temat tworzenia aplikacji na Androida za pomocą Pythona. Jest zatytułowany „Budowanie aplikacji na Androida w Pythonie przy użyciu Kivy w Android Studio: z Pyjnius, Plyer i Buildozer Ahmedem Fawzy Gadem” i jest dostępny tutaj na Amazon: amazon.com/dp/1484250303 .
Ahmed Gad
1
Nie można opublikować odpowiedzi, ale wydaje się, że jest rozwiązanie : zostaną zademonstrowane różne technologie, w tym oparte na PySide interfejsy graficzne QML korzystające z portu Necessitas Qt i podejście oparte na Py4A / SL4A, które można łączyć z systemem Android WebKit i ponownie -użyj platform internetowych Python.
Basj
Nie rozumiem, dlaczego to pytanie zostało zamknięte. Powinien zostać ponownie otwarty.
cknoll

Odpowiedzi:

117

Odpowiadając na pierwsze pytanie: tak, można stworzyć aplikację na Androida w czystym Pythonie , w tym celu proponuję użyć BeeWare , który jest po prostu zestawem narzędzi Pythona , które bardzo dobrze ze sobą współpracują i umożliwiają rozwój natywne aplikacje platformy w języku Python.

kasy ten film przez twórcę BeeWare które doskonale wyjaśnia i demonstruje jego zastosowanie

Jak to działa

Preferowanym językiem implementacji systemu Android jest Java - więc jeśli chcesz napisać aplikację na Androida w Pythonie, musisz mieć sposób na uruchomienie kodu Pythona na wirtualnej maszynie Java. To właśnie robi LZO . VOC to transpiler - pobiera kod źródłowy Pythona, kompiluje go do kodu bajtowego CPython, a następnie transpiluje ten kod bajtowy do kodu bajtowego zgodnego z Javą. Efektem końcowym jest to, że pliki kodu źródłowego w języku Python są kompilowane bezpośrednio do pliku Java .class, który można spakować do aplikacji na Androida.

VOC umożliwia również dostęp do natywnych obiektów Java tak, jakby były obiektami Pythona, implementację interfejsów Java z klasami Pythona i podklasy klas Java z klasami Pythona. Korzystając z tego, możesz napisać aplikację na Androida bezpośrednio względem natywnych interfejsów API systemu Android.

Po napisaniu natywnej aplikacji na Androida możesz użyć Aktówki, aby spakować kod Pythona jako aplikację na Androida.

Aktówka to narzędzie do konwersji projektu Pythona na samodzielną aplikację natywną. Możesz spakować projekty dla:

  • Prochowiec
  • Windows
  • Linux
  • iPhone / iPad
  • Android
  • Telewizor apple
  • tvOS.

Możesz sprawdzić tę natywną aplikację Tic Tac Toe na Androida napisaną w Pythonie, korzystając z pakietu BeeWare. w serwisie GitHub

Oprócz narzędzi BeeWare, aby przetestować aplikację, musisz mieć zainstalowany pakiet JDK i Android SDK.

i odpowiadając na drugie pytanie: dobrym środowiskiem może być wszystko, w czym czujesz się komfortowo, czy to edytor tekstu i linia poleceń, czy IDE, jeśli szukasz dobrego środowiska IDE dla Pythona, sugerowałbym wypróbowanie Pycharm , ma edycja społecznościowa, która jest darmowa i ma podobne środowisko jak android studio, ze względu na fakt, że zostały stworzone przez tę samą firmę.

Mam nadzieję, że to było pomocne

maroof shittu
źródło
2
Czy to tylko ja, czy porzucono VOC?
Załóż pozew Moniki
2
to ślepy zaułek (ostatni raz to sprawdzałem: grudzień 2018 r.). Co najmniej jeden składnik tego zbyt złożonego rozwiązania już nie działa lub nie może się aktualizować.
Berry Tsakala
2
To tylko aktualizacja na 2019 rok, ale Kotlin jest teraz preferowanym językiem do programowania Androida.
DaveTheMinion,
3
@Basj Chciałbym powiedzieć, że Beeware na pewno będzie przez jakiś czas w pobliżu, ponieważ wystarczy spojrzeć na jego konto GitHub, aby stwierdzić, że jest aktywnie rozwijane, a jeśli przejdziesz do kanału Gitter, możesz zawsze docieraj do całego zespołu, zwłaszcza do dr Russella (dziwaka) twórcy, a społeczność jest bardzo przyjazna, a także niedawno pojawił się tweet (26 września 2019) z ich oficjalnego konta, informujący, że otrzymali grant edukacyjny od Pythona fundacja oprogramowania. Myślę, że warto byłoby
poświęcić trochę
1
Wydaje się, że BeeWare w żadnym wypadku nie obsługuje Androida (Java) na tym etapie.
Mark Anderson
15

Możesz wypróbować BeeWare - jak opisano na ich stronie internetowej:

Pisz swoje aplikacje w Pythonie i publikuj je na iOS, Android, Windows, MacOS, Linux, Web i tvOS, korzystając z bogatych, natywnych interfejsów użytkownika. Jedna baza kodów. Wiele aplikacji.

Daje, że chcesz teraz pisać aplikacje na Androida w Pythonie, a ponadto ma tę zaletę, że nie będziesz musiał uczyć się kolejnego frameworka w przyszłości, jeśli w końcu chcesz zrobić coś na jednej z innych wymienionych platform.

Oto samouczek dotyczący aplikacji na Androida .

emmagordon
źródło
5
Czy sam stworzyłeś aplikację w BeeWare?
Berry Tsakala
12

Jest dwóch głównych pretendentów do aplikacji Pythona na Androida

Chaquopy

https://chaquo.com/chaquopy/

To integruje się z systemem kompilacji Androida, zapewnia interfejs API Pythona dla wszystkich funkcji Androida. Cytując witrynę „Kompletny interfejs API systemu Android i zestaw narzędzi interfejsu użytkownika są bezpośrednio do Twojej dyspozycji”.

Beeware (zestaw narzędzi widgetów Toga)

https://pybee.org/

Zapewnia transpiler z wieloma celami, obsługuje wiele celów, takich jak Android i iOS. Używa ogólnego zestawu narzędzi widgetów (toga), który odwzorowuje wywołania interfejsu hosta.

Który?

Oba są aktywnymi projektami, a ich konta github pokazują sporo niedawnej aktywności.

Beeware Toga, podobnie jak wszystkie biblioteki widżetów, jest dobre do przenoszenia podstaw na wiele platform. Jeśli masz podstawowe projekty i chcesz rozszerzyć na inne platformy, powinno to dobrze działać.

Z drugiej strony Chaquopy jest znacznie bardziej precyzyjny w mapowaniu API języka Python na Androida. Umożliwia także mieszanie w Javie, przydatne, jeśli chcesz użyć istniejącego kodu z innych zasobów. Jeśli masz ścisłe cele projektowe i głównie chcesz kierować reklamy na Androida, jest to znacznie lepszy zasób.

Harvey
źródło
11

Android, Python!

Kiedy zobaczyłem te dwa słowa kluczowe razem w twoim pytaniu, Kivy jako pierwsza przyszła mi do głowy.

Logo Kivy

Przed przejściem do tworzenia natywnego Androida w Javie przy użyciu Android Studio, wypróbowałem Kivy . To po prostu niesamowite. Oto kilka zalet, których mogłem się dowiedzieć.


Prosty w użyciu

Dzięki podstawom Pythona nie będziesz miał problemów z nauką go.


Dobra społeczność

Jest dobrze udokumentowany i ma świetną, aktywną społeczność.


Wiele platform.

Możesz tworzyć rzeczy na Androida, iOS, Windows, Linux, a nawet Raspberry Pi za pomocą tej jednej platformy. Otwarte źródło.


Jest to darmowe oprogramowanie

Przynajmniej kilku konkurentów (cross platform) chce, abyś uiścił opłatę, jeśli chcesz uzyskać licencję komercyjną.


Przyspieszona obsługa grafiki

Silnik graficzny Kivy zbudowany na OpenGL ES 2 sprawia, że ​​nadaje się on do oprogramowania, które wymaga szybkiego renderowania grafiki, np. Gier .



Przechodząc do następnej części pytania, nie możesz używać IDE Android Studio dla Kivy. Oto szczegółowy przewodnik dotyczący konfigurowania środowiska programistycznego.

Bertram Gilfoyle
źródło
6
Obsługa systemu Windows pozostaje daleko w tyle za standardami produkcyjnymi (a nawet standardami hobbystów). Ponadto połowa świata nie może go używać z powodu braku obsługi RTL.
Berry Tsakala
Dlaczego opuściłeś Kivy i zmieniłeś je na natywne narzędzia programistyczne? Sugerujesz, że ma to pewne wady.
igoemon