Skripting unter Android (vorzugsweise Python)?

S

Sempervivum

Fortgeschrittenes Mitglied
9
Hallo Android-Entwickler,
was das Entwickeln unter Android betrifft, bin ich völlig unvorbelastet. Ich brauche jedoch eine kleine App bzw. ein Skript, das zwei Buttons hat und einige GET-Requests an eine IP schickt. (Unter der IP verbirgt sich eine Kamera, die mit den Buttons ferngesteuert werden soll.)
Unter Windows würde ich dafür ein kleines Python-Skript schreiben, dass das erledigt. Unter Android finde ich diverse Entwicklungsumgebungen für Python. Aber ist es möglich, einfach nur Python zu installieren und ein Skript mit der Endung "py" zu starten wie unter Windows?
Ich habe kurz in das Tutorial von Beeware hinein geschnuppert. Damit ist es möglich, richtige Apps zu entwickeln aber der Einstieg scheint ein wenig aufwändig zu sein.
Beste Grüße - Ulrich
 
@Sempervivum

Hallo Ulrich

Phyton in Android Activities einbinden wäre absolut overloaded und Resourcenverschwendung.
Da Android auf einer VM läuft und du mittels UI steuern magst, ist die Verwendung eigentlich Quatsch , weil du jede menge Bridges bauen müsstest. ( Also mehr Aufwand als notwendig)

Ich vermute auch , dass du ohne deine erwähnten Vorkennnisse auch nicht ans Zeil kommen wirst, da jede Menge Kniffe zur berücksichtigen wären. Ich persönlich würde es nicht tun, obwohl ich einige Jahrzehnte dies hauptberuflich mache.
(Zumal du je nach Android Version sonder-Permissions benötigen würdest - Es gibt zu viele Fallstricke)


Es gibt aber schon jede Menge Turtorials zu deinem Vorhaben :

Kurzanleitung meinerseits:
AndroidStudio installieren, Default Activity Projekt benutzen, Knöpfe im Layout einfügen , drauf reagieren (onClickListener) und mit der Library OkHttp3 den Request an die IP rausschicken.

Und einen Core gibt es z.b. hier:
Using OkHttp | CodePath Android Cliffnotes
 
Zuletzt bearbeitet:
Hallo Stefan und vielen Dank für die schnelle Antwort.
OK, dann würde Python die Sache also nicht einfacher sondern komplizierter machen.
Gibt es denn eine andere Skriptsprache, die an Android angepasst ist oder ist Skripting etwas, was es dort gar nicht gibt?
Beste Grüße - Ulrich
 
Hallo Ulrich,

es gibt leider keine Scriptsprache, die einen Http Request absetzt. Das sind in i.d.R alles Core Libraries die auf der Java VM ablaufen
.
Tiefer wirst du ohne vollständig gerootetes Gerät nicht kommen - dann aber in der Lage sein, System Calls abzusetzen.
Dann kannst du deine Phyton Scripts auf Systemebene ausführen.
Aber auch da bezweifle ich , dass du die Phyton Engine ohne Weiteres installiert bekommst

Du kannst Dir aber eine kleine App mit einem WebView basteln, die dann eine Html/js Seite aufruft.
Hosten kannst du dann das Ganze wieder Intern auf deinem Rechner / Server

Android WebView Example Tutorial - JournalDev

Das wäre dann die "Aldi" Lösung
 
Zuletzt bearbeitet:
Vielen Dank für die weiteren Erklärungen. Offenbar ist das, was ich mir vorgestellt hatte, nicht machbar: "Mal eben" ein kleines Skript schreiben, das die Sache erledigt.
Ich hatte da schon eine HTML-Datei mit ein wenig Javascript, die ich mehr als Provisorium betrachtet hatte. Nachdem ich dort ein CORS-Problem beseitigt habe, funktioniert diese ganz zufriedenstellend, im Samsung-Browser ohne Webserver. Dann werde ich dabei wohl bleiben.
Beste Grüße - Ulrich
 
@Sempervivum

Hallo Ulrich,
es gibt zwei Wege das CORS - Problem zu beheben :

a) Wenn du die Seite lokal in der App mitführst , dann nur in den Asset Foldern - im Data directory geht das nicht.
Aufruf des Webviews (Bsp) : mWebView.loadUrl("file:///android_asset/htdocs/......html");

b) wenn du einen eigenen HTTP Server in der App aufbaust dann bitte den Resonse Header erweitern. (Access-Control-Allow-Origin:*)
c) Wenn du die Seite auf einem Rechner hast und im internen LAN aufrufst, dann auch CleartypeText auf "true" in der Manifest und eine network_securitry xml in den Resourcen beifügen.
 
Zuletzt bearbeitet:

Ähnliche Themen

J
Antworten
5
Aufrufe
1.430
jogimuc
J
S
Antworten
0
Aufrufe
911
So80s
S
founder
Antworten
3
Aufrufe
1.000
swa00
swa00
Zurück
Oben Unten