Android Client mit Server - Kommunikation

  • Antworten:12
  • Bentwortet
Alex
  • Forum-Beiträge: 28

17.07.2017, 16:02:13 via App

Hallo,

Ich hätte mal eine ganz allgemeine Frage.

Was ist denn der Beste weg eine Client Server Applikation mit einer Android PP zu verwirklichen, die auch Daten- und Energiesparsam ist?

Java EE Server mit REST um zum Client zu gelangen oder andere Vorschläge?

Danke

Mit freundlichen Grüßen

Alex

Antworten
swa00
  • Forum-Beiträge: 3.704

19.07.2017, 10:26:09 via Website

Hallo Alex,

vom Datenvolumen ist eine direkte Socket-Verbindung immer am sparsamsten.
Ein Simpler Http-Request hat schon min 1500 kB Overhead, auch wenn du noch keine Daten durch die Gegend geschoben hast

— geändert am 19.07.2017, 10:26:26

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten
Alex
  • Forum-Beiträge: 28

19.07.2017, 10:30:48 via App

Gut kann ich einen Java EE Server mit einem Socket ansprechen?

Antworten
swa00
  • Forum-Beiträge: 3.704

19.07.2017, 10:47:01 via Website

Hallo Alex,

Java ist eher da als kontraproduktiv anzusehen

Das würde ich auch nicht bei reinen (Fork) Socket Verbindungen empfehlen.

Also ein Deamon ohne UI auf reiner C/C++ basis, dann hast du auch das Optimale.

— geändert am 19.07.2017, 10:52:52

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten
Alex
  • Forum-Beiträge: 28

19.07.2017, 10:50:25 via App

Ok, ich kann kein Stück C oder Ähnliches. Weshalb ist Java kontraproduktiv? Java EE Server sind doch sehr sehr mächtig!?

Antworten
swa00
  • Forum-Beiträge: 3.704

19.07.2017, 10:54:25 via Website

Du weichst von deiner Fragestellung ab :-)

Was ist denn der Beste weg eine Client Server Applikation mit einer Android PP zu verwirklichen, die auch Daten- und Energiesparsam ist?

Und genau darauf habe ich dir geantwortet :-)

Es ging nicht um die Mächtigkeit von Java EE

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten
Alex
  • Forum-Beiträge: 28

19.07.2017, 11:00:13 via App

swa00

Hallo Alex,

Java ist eher da als kontraproduktiv anzusehen

nein ich meinte das hier ^^, warum ist Java hier kontraproduktiv?

Antworten
swa00
  • Forum-Beiträge: 3.704

19.07.2017, 11:06:01 via Website

Java ist nun mal eine Virtuelle Umgebung , die einen sagen wir mal "Rattenschwanz" besitzt.

Beispiel : ein Socket wird durch Systemnahe interrupts gesteuert .
Das macht zwar auch Java - aber es gelangt erst über X Umwege ans Ziel .

Ergo viel resourcenverbrauch und Zeitverlust.

Und da du oben nach der Effizienz gefragt hast, kann man von einem Umweg nur abraten.
Ergo : direkt eine in C geschriebene Binary ist damit der effizienteste Weg.

Man kann es auch noch übertreiben und direkt Assembler anwenden , macht aber heut kaum ein Mensch

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

19.07.2017, 11:06:14 via App

Hallo Alex,
du hast nach dem Besten Weg gefragt, dieser geht wahrscheinlich wirklich direkt über Sockets auf "primitiver" Ebene d.h. ohne Java App overhead etc..

Aber das programmiert so kaum jemand.

Du hättest lieber nach dem gängigsten Weg fragen sollen ;). denn dieser ist wirklich die Rest Api auf einem passenden Backend.
Muss nicht zwingend ein Java Server sein, vereinfacht aber die Programmierung da man Objekte wiederverwenden kann.

Und das "bisschen" Daten das du einsparst kostet in der Entwicklung geschätzt das 10 fache da du über Sockets erstmal ein Protokoll implementieren müsstest.

LG Pascal //It's not a bug, it's a feature. :) ;)

swa00

Antworten
Alex
  • Forum-Beiträge: 28

19.07.2017, 11:16:48 via App

Danke euch beiden!

Assembler kann ich ein wenig ^^ würde ich aber nie mehr anrühren seit ich Java und c# kenne :)

Meine Frage ist damit beantwortet!

Antworten
swa00
  • Forum-Beiträge: 3.704

19.07.2017, 11:20:07 via Website

@Pascal

Aber das programmiert so kaum jemand.

Dann heisse ich ab heute "Kaum" :-)
(Mein Tagesgeschäft)

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

19.07.2017, 11:27:59 via App

Du programmierst Apps auf Android über Sockets zum Server?
Kann man machen aber mir wäre das viel zu aufwändig, die Kommunikation immer selber zu handeln...
Ich denke da ist aber auch viel Gewöhnung und Übung dabei. Habe es über diese Methode erst einmal (Bei einer Desktop Anwendung) gemacht und das hat mir gereicht da zu aufwändig ;)

Zudem wenn man sich den Store anschaut dann hat nutzt ein hoher Anteil eine WebApi für Apps. Bei Socketa wirds zum Problem soblad der Anwender hinter einem Http Proxy sitzt (silly)

— geändert am 19.07.2017, 11:29:33

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
swa00
  • Forum-Beiträge: 3.704

19.07.2017, 11:33:43 via Website

Aufwendig ohne Frage. Da kann ich dir nicht widersprechen :-)

Meistens gehört bei mir dann Beides dazu , der C++ Deamon auf Server Seite und die App

Und dann gibt es schön brav Blockheader, MessageID, Blocklength, Handshake etc etc.
Aber wenn du das mal dann stehen hast, geht die Post ab .

Die Belohnung der Arbeit kommt dann mit dem Durchsatz..

Dafür bist Du und Enrico wieder besser in den anderen Dingen :-)

— geändert am 19.07.2017, 11:41:02

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten