Python

Vadnica za Kivy Python

Vadnica za Kivy Python
Pomembnosti mobilne programske opreme v današnjem svetu nikoli ne moremo preveč poudariti, vsi se premikajo s svojimi napravami, ne glede na operacijski sistem, in da bodo naprave koristne, je potrebna programska oprema, ki bo pomagala pri opravljanju naših vsakodnevnih nalog.

Operacijski sistem Android je danes nedvomno eden najpogosteje uporabljenih operacijskih sistemov na mobilnih napravah in je zelo učinkovit tudi zaradi povezanosti z operacijskim sistemom Linux. V tem članku bomo razpravljali o tem, kako zgraditi vzorčno aplikacijo za Android s pythonom.

Zakaj torej Python?

Poznamo jezike, kot so Java, Kotlin, okviri, kot so Xamarin, React Native, so zelo učinkoviti pri izdelavi aplikacij, vendar se sistemski skrbniki bolj pogosto znajo uporabljati skriptne jezike, kot je Python, za svoje naloge.

Z Kivyjem lahko na svojih napravah Android ustvarijo minimalne aplikacije za Android za preprosta opravila, ne da bi morali pri tem spremeniti sintakso. Da, vsi vemo, da Python ni tako hiter, če ga uporabljamo pri razvoju aplikacij, ampak koga zanima, ali opravi potrebno delo?

S tem lahko na primer hitro napišete skript za strganje po spletu in ga sestavite v aplikacijo za Android ter ga zaženete na poti; to je kar kul.

Za to bomo uporabili Pythonovo knjižnico Kivy. Kivy se uporablja za izdelavo mobilnih aplikacij na več platformah, zato ni nujno, da gre samo za naprave Android, temveč podpira tudi izdelavo programske opreme iOS in Windows.


Namestitev Kivy

Kivy je zelo enostaven za namestitev, toda stvari se lahko nekoliko zalomijo, če se nameščene odvisnosti začnejo spopadati.

Za namestitev Kivyja lahko uporabimo ukaz "pip" za namestitev knjižnic Python, lahko pa tudi "apt-get". Da Kivy deluje, ima veliko odvisnosti, zlasti kadar poskušate uporabiti funkcije, kot so Kamera, i.e., OpenCV ali druga knjižnica, kot je Pillow.

Vendar lahko preprosto izvedete namestitev Kivyja.

Kivy za Python 2 lahko namestite z spodnjim ukazom:

sudo apt-get namestite python-kivy

Nato lahko s spodnjim ukazom namestite Kivy za Python 3:

sudo apt-get namestite python3-kivy

Če nameravate namestiti z ukazom "pip", bo spodnji ukaz opravil delo:

pip namestite kivy

Nato lahko namestite eno zelo priljubljeno odvisnost, ki je pygame:

pip namestite

Če nameravate na tej točki namestiti odvisnosti, lahko nadaljujete in namestite.

 Za Ubuntu 16.04:

sudo apt-get namestite python-setuptools python-pygame python-opengl \
python-gst0.10 python-enchant gstreamer0.10-vtičniki-dober python-dev \
build-basicpython-pip libgl1-mesa-dev libgles2-mesa-dev zlib1g-dev

Če nameravate namestiti druge različice Ubuntuja, lahko sledite korakom iz dokumentacije Github.

Preden nadaljujemo, lahko z uvozom modula iz interaktivne lupine potrdite, ali je namestitev Kivy uspešna.

>>> uvoz kivija
[INFO] [Logger] Zapiši prijavo / data / user / 0 / ru.iiec.pydroid3 / app_HOME /.kivy /
dnevniki / kivy_18-02-26_0.txt
[INFO] [Kivy] v1.9.2-dev0
[INFO] [Python] v3.6.2 (privzeto, 15. oktober 2017, 09:18:13)
[GCC 7.2.0]
>>>

Vse, kar potrebujete, je rezultat v tej obliki; pričakuje se, da se številke ne bodo seštevale.


Pisanje kode

Ustvarili bomo preprosto aplikacijo, ki bo na zaslonu prikazala nekaj besedila.

Ustvarite datoteko python, ki bi jo poimenovali »main.py ". Ta datoteka bi imela naslednjo vsebino:

iz kivija.aplikacija za uvoz aplikacij
razred HelloApp (aplikacija):
 
podajo
če je __name__ == "__glavna__":
  HelloApp ().teči ()

Na videz je videti, da ne naredi ničesar, vendar bi preučili, kaj počne vsaka vrstica kode.

iz kivija.aplikacija za uvoz aplikacij

To uvozi razred aplikacije iz knjižnice kivy, ki pomaga ustvariti sam vmesnik aplikacije, poleg tega pa ima veliko drugih lastnosti, ki podpirajo izdelavo aplikacije.

razred HelloApp (aplikacija):
  podajo

S tem se ustvari razred HelloApp, ki podeduje aplikacijo, ki smo jo prej uvozili; tu ne delamo veliko, saj je vse, kar smo storili, uporaba ključne besede »pass«.

Torej, ne da bi vtipkali katero koli kodo, ima vse metode razreda App.

če je __name__ == "__glavna__":
  HelloApp ().teči ()

Nato preverimo, ali se skript Python zažene neposredno ali se uvaža. Če se izvaja neposredno, izvede metodo run () razreda App, ki je bil podedovan, sicer se ne zgodi nič.

Skoraj smo končali samo še eno datoteko. To je datoteka kv, ki bi jo uporabili za označevanje.

Datoteka kv deluje v jeziku kv, ki ima nekaj podobnosti v sintaksi s Pythonom.

Samo ustvarite novo datoteko brez imena in vnesite naslednje vrstice kode.

Oznaka:
   besedilo:
       "Dobrodošli v namigu za Linux"

Pogled na glavno.py, bi opazili, da smo zapomnili, da smo ustvarili razred HelloApp (), ki je podedoval aplikacijo in je bil to edini razred.

V datoteki kv se nato Label samodejno poveže z razredi, ustvarjenimi v datoteki python. »Oznaka« se uporablja za prikaz z uporabo modela škatle.

Vprašanje je; kako naša datoteka python ve, da ima ta datoteka oznako? To počne z imenom.

Ker ima naš razred HelloApp dve različni besedi, ki se razlikujeta z velikimi tiskanimi črkami, se pričakuje, da bo datoteka kv poimenovana s prvo besedo, vse z malimi črkami, naša datoteka pa zdravo.kv.

Če se naš razred imenuje LinuxApp ali GameApp, bi se naša kv datoteka imenovala linux.kv in divjad.kv.

Zdaj lahko zaženete svojo datoteko python:

python glavni.py

Morali bi dobiti izpis z napisom "Dobrodošli v namigu za Linux".

To je le vrh ledene gore, kaj lahko storite s knjižnico Kivy; lahko si ogledate celotno dokumentacijo tukaj, lahko pa si ogledate tudi druge primere.


Namestitev in uporaba Buildozerja

Če bi temu članku sledili od začetka, bi se spomnili, da smo morali pri namestitvi kivyja upoštevati veliko odvisnosti. Namestitev buildozerja po drugi strani ni tako zapletena.

Vse, kar bi počeli, je kloniranje datotek iz skladišča GitHub, ki ga namestimo in nato uporabimo.

klon git https: // github.com / kivy / buildozer.git
cd buildozer
sudo python2.7 nastavitev.py namestite

Tukaj python2.7 bi bila različica pythona, ki je nameščena v vašem sistemu; na primer, če imate python 3.5 nameščen uporabljate Python3.5. Čeprav nekateri trdijo, da imajo težave z uporabo buildozerja s Pythonom 3, lahko poskusite in če ne uspe, preklopite na Python 2.
Po namestitvi zaženete spodnjo kodo. Tako kot v prvem primeru Python2.7 lahko spremenite v katero koli različico Pythona, bi bilo smiselno uporabiti različico pythona, ki se uporablja za namestitev buildozerja.

python2.7-m buildozer init

To ustvari buildozer.spec, ki vsebuje nastavitvene nastavitve za našo aplikacijo. Čeprav lahko nadaljujete, ne da bi spremenili katero koli konfiguracijo, lahko datoteko preverite in spremenite stvari, kot so ime aplikacije, ime paketa itd.
Datoteka mora biti v tej obliki:

[aplikacija]
 
# (str) Naslov vaše prijave
title = app
 
# (str) Ime paketa
paket.ime = myapp
 
# (str) Domena paketa (potrebna za pakiranje android / ios)
paket.domena = org.preskus
.. .
.. .

Po tem lahko začnete sestavljati svojo aplikacijo za Android, tako kot prva dva primerka, lahko spremenite python2.7 na različico pythona, ki ste jo namestili na vaš računalnik.

python2.7 buildozer android odpravljanje napak za zagon

Če to počnete prvič, se prenesejo potrebne datoteke Android SDK, Android NDK in Android Ant, tako da lahko dobite skodelico kave, saj lahko traja nekaj časa, odvisno od tega, kako hitra je vaša internetna povezava.
Ko buildozer konča s sestavljanjem aplikacije, jo shrani v imenik bin.
To je vse za to vadnico; zdaj lahko na svoji napravi Android ustvarite preproste aplikacije za Android in zaženete nekaj skriptov.

Najboljše igre z ročnim sledenjem
Oculus Quest je pred kratkim predstavil odlično idejo ročnega sledenja brez krmilnikov. Z vedno večjim številom iger in dejavnosti, ki izvajajo podpor...
Kako prikazati prekrivanje zaslonskega menija v celozaslonskih aplikacijah in igrah za Linux
Igranje celozaslonskih iger ali uporaba aplikacij v celozaslonskem načinu brez motenj vam lahko odreže ustrezne sistemske informacije, ki so vidne na ...
Top 5 kartic za zajemanje iger
Vsi smo v YouTubu videli in oboževali pretakanje iger. PewDiePie, Jakesepticye in Markiplier so le nekateri izmed najboljših igralcev, ki so zaslužili...