Java code online auslagern

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

03.03.2013, 10:08:38 via App

Hallo,
gibt es eine Möglichkeit ein Teil des Java Codes online auszulagern?
Kann mir daei jemand helfen?

Vielen Dank im Voraus

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

Antworten
Timo D.
  • Forum-Beiträge: 182

03.03.2013, 10:12:04 via Website

Ich denke nicht. Denn du hast ja meines Wissens nach keine Möglichkeit, etwas zur Laufzeit neu zu kompilieren. Was willst du genau machen?

Sichern Sie Ihr Smartphone gegen Diebstahl und erhöhen Sie die Chance, es wiederzufinden. Jetzt neu: Guardian - Anti-Diebstahl Guardian - Anti-Diebstahl Pro https://play.google.com/store/apps/details?id=de.tapps.guardian.pro Guardian - Anti-Diebstahl Trial https://play.google.com/store/apps/details?id=de.tapps.guardian.free

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

03.03.2013, 10:14:38 via App

Will versuchen code teile in der App zu ändern,ohne das ich jedesmal ein Update machen muss

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

Antworten
Timo D.
  • Forum-Beiträge: 182

03.03.2013, 10:26:23 via Website

Interessante Idee, aber das sollte auf keinen Fall gehen. Spätestens beim Upload hast du Probleme. Da musst du die Versionsnummer ändern, und das bedeutet, es ist ein Update. Du kannst leider nur bei Zugriff auf Dateien was machen, die nicht kompiliert werden müssen.

Sichern Sie Ihr Smartphone gegen Diebstahl und erhöhen Sie die Chance, es wiederzufinden. Jetzt neu: Guardian - Anti-Diebstahl Guardian - Anti-Diebstahl Pro https://play.google.com/store/apps/details?id=de.tapps.guardian.pro Guardian - Anti-Diebstahl Trial https://play.google.com/store/apps/details?id=de.tapps.guardian.free

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

03.03.2013, 10:30:46 via App

Danke für die Antwort.

Dann muss ich wohl den Programmteil in die App integrieren und kann nur mein Code per online XML etwas verändern.

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

Antworten
Nico
  • Forum-Beiträge: 159

03.03.2013, 10:38:04 via Website

Du kannst eine Skriptsprache verwenden und die Skriptdatei bei jedem Start neu herunterladen lassen.
Damit du deine APK möglichst wenig Updaten musst,
solltest du in die Scriptsprachen Funktionen einbinden wie z.B. getMethod um gezielt Java Funktionen ansteuern zu können.

MfG. Nico

Meine Apps

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

03.03.2013, 10:42:41 via App

Ich verstehe dich nicht ganz.
Welche skriptsprachen?
wie ansteuern?

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

Antworten
Nico
  • Forum-Beiträge: 159

03.03.2013, 10:53:28 via Website

Die Skriptsprache ist egal, such dir eine aus oder schreib eine eigene.
Bei einer Skriptsprache kann man in der Regel im Source Programmfunktionen Scriptfunktionen zuweisen.
Um nun ein Möglichst dynamischen Skript-Code zu erhalten musst du es schaffen Reflektion mit der Skriptsprache zu ermöglichen.
D.h. diesen Code variabel aufrufen zu können.

1ClassLoader cl = ClassLoader.getSystemClassLoader();
2 String zuladendeKlasse = "net.sonst.blah.class";
3 Class c = cl.loadClass(zuladendeKlasse);
4 Object instance = c.newInstance();
5
6 Method myMethod = c.getMethod("demoMethod",
7 new Class[] { String.class });
8 String returnValue = (String) myMethod.invoke(instance,
9 new Object[] { "1. Argument" });
10
11 System.out.println("Zurückgegebener Wert" + returnValue);

Dann viel Spaß damit.

— geändert am 03.03.2013, 10:54:16

MfG. Nico

Meine Apps

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

03.03.2013, 10:57:48 via App

Tut mir leid habe gerade keinen Plan wie ich das angehen soll.
Aber trotzdem Danke.
Werde mich in der Nächsten Zeit damit beschäftigen.

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

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

03.03.2013, 11:14:25 via App

Gibt es vlt. eine Anleitung?

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

Antworten
Nico
  • Forum-Beiträge: 159

03.03.2013, 11:55:58 via Website

Pascal
Gibt es vlt. eine Anleitung?

Ich hab dir ja schon geschrieben wie es funktioniert,
umsetzen musst du es schon selbst.

MfG. Nico

Meine Apps

Antworten
Timo D.
  • Forum-Beiträge: 182

03.03.2013, 12:04:09 via Website

Willst du das wirklich? Du musst jedes mal die Updates herunterladen. Also ist immer eine Internetverbindung die Voraussetzung, dass auch die akuelle App geladen wird. Außer du speicherst es irgendwie zwischen. Das ist doch auch für die Nutzer nicht wirklich vorteilhaft. Insbesondere bei geringem Datenvolumen immer unnötige Downloads zu haben, halte ich für nicht so sinnvoll. Wenn die App nicht unbedingt eine Internetverbindung benötigt, ist es unschön.

— geändert am 03.03.2013, 12:05:40

Sichern Sie Ihr Smartphone gegen Diebstahl und erhöhen Sie die Chance, es wiederzufinden. Jetzt neu: Guardian - Anti-Diebstahl Guardian - Anti-Diebstahl Pro https://play.google.com/store/apps/details?id=de.tapps.guardian.pro Guardian - Anti-Diebstahl Trial https://play.google.com/store/apps/details?id=de.tapps.guardian.free

Antworten
Nico
  • Forum-Beiträge: 159

03.03.2013, 12:28:02 via Website

Timo D.
Willst du das wirklich? Du musst jedes mal die Updates herunterladen. Also ist immer eine Internetverbindung die Voraussetzung, dass auch die akuelle App geladen wird. Außer du speicherst es irgendwie zwischen. Das ist doch auch für die Nutzer nicht wirklich vorteilhaft. Insbesondere bei geringem Datenvolumen immer unnötige Downloads zu haben, halte ich für nicht so sinnvoll. Wenn die App nicht unbedingt eine Internetverbindung benötigt, ist es unschön.

Da kennt sich wer wohl nicht aus,
Skript auf SD-Karte speichern beim ersten Mal starten.
-> bei weiteren Male starten MD5 Hash der Datei bilden
-> weitere Datei (="Check-Datei") auf dem Server zur Verfügung stellen mit dem aktuellen MD5 Hash der Skriptdatei
-> bei einem Start die Check-Datei herunterladen (32 Bytes ...) mit dem MD5 Hash der Skriptdatei vergleichen
-> bei einem unterschiedlichen Hash die Skriptdatei updaten...
-> es ist immer der aktuelle Skriptcode vorhanden
Gegebenenfalls kann man natürlich noch weitere Checks einfügen, wie z.B. dass die Check-Datei nur einmal am Tag heruntergeladen wird.
So und jetzt sag mal sind 32 Bytes pro Tag viel?!
So als Vergleich bei einer 500 MB = 524288000 Bytes Internet-Flat wären das 32/524288000 des gesamt Volumens oder gekürzt 1/16384000.
Selbstverständlich auch nur pro Tag sollte der User die App täglich benutzt.

MfG. Nico

Meine Apps

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

03.03.2013, 12:33:01 via App

Meine App benötigt sowieso eine Datenverbindung beim Starten.
Ich.werde natürlich nicht jedesmal die Updates neu herunterladen sondern immer neu prüfen,wie Nico das gesagt hat.

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

Antworten
impjor
  • Forum-Beiträge: 1.793

03.03.2013, 13:13:51 via App

was hast du für eine App, dass sie sowieso an Anfang eine Datenverbindung braucht?
Ich frag einfach mal aus Interesse...

Gruß

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

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

03.03.2013, 13:20:23 via App

Ich habe eine Action Bar mit List Navigation, beim Starten der App werden die Listeinträge aus dem Internet geholt
Je nachdem wie sich der Benutzer bei meiner App Anmeldet werden nur bestimmte Menüpunkte gezeigt.

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

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

03.03.2013, 13:22:03 via App

Danke für die Zahlreichen Antworten. Ich werde sehen, was sich diesbezüglich tun lässt.
Ihr habt mir sehr geholfen.

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

Antworten
Andy N.
  • Forum-Beiträge: 3.112

03.03.2013, 14:06:10 via Website

Das kann man aber doch auch umsetzen, ohne dass man Code nachlädt.

Aber wenn Du dennoch etwas nachladen musst, so gibt es glaub ich schon Libs um Lua einzubinden.

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

03.03.2013, 15:25:29 via App

Ich habe keine Idee wie ich es sonst machen soll

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

Antworten