JVM und Android
JVM und Android
Verwendet jemand von euch das JVM Target von FPC oder Lazarus für die Android Entwicklung?
Wie sind eure Erfahrungen?
Ich selber werde bisher nicht richtig warm mit der Idee "Java Zeug" mit Lazarus FPC machen zu wollen.
Geht es euch auch so, oder könnt ihr Vorteile aufzeigen gegenüber der Verwendung von Eclipse oder Netbeans für solche Sachen?
Wie sind eure Erfahrungen?
Ich selber werde bisher nicht richtig warm mit der Idee "Java Zeug" mit Lazarus FPC machen zu wollen.
Geht es euch auch so, oder könnt ihr Vorteile aufzeigen gegenüber der Verwendung von Eclipse oder Netbeans für solche Sachen?
-
- Lazarusforum e. V.
- Beiträge: 3177
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: JVM und Android
Ich habe das vor einiger Zeit mal angetestet. Für mich sieht das ganze ein wenig seltsam aus. Geht/ging mir da so ähnlich wie dir.theo hat geschrieben:Wie sind eure Erfahrungen?
Vorteil:theo hat geschrieben:Ich selber werde bisher nicht richtig warm mit der Idee "Java Zeug" mit Lazarus FPC machen zu wollen.
Geht es euch auch so, oder könnt ihr Vorteile aufzeigen gegenüber der Verwendung von Eclipse oder Netbeans für solche Sachen?
- Man kann die gewohnte Sprache Pascal verwenden
- Kein GUI-Designer
- Keine brauchbare Projektverwaltung. Lazarus beschränkt sich auf den Quelltext bzw. arbeitet auf Dateieben; bei Android braucht man für ein Lauffähiges Programm aber wesentlich mehr Dateien, die man mit entsprechenden IDEs komfortabel organisieren und bearbeiten kann (Meta- oder Beschreibungsdateien).
- Beispiel-Code muss erst nach Pascal umgesetzt werden
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Re: JVM und Android
Danke für die Antwort.
Erste Variante: FPC kennt das Target JVM. D.h. "hinten" kommen Java Class Files raus.
Die RTL dazu liest sich etwas so:
Da sehe ich im Moment nur ein "akademisches Interesse". Warum soll man das als Pascaler verwenden, wenn noch nicht mal eine TStringList da ist?
Ich meine, wenn man sowieso die "fremde" Klassenbibliothek verwenden muss, dann lieber gleich Java.
Die zweite Variante ist die, dass Lazarus eine für ARM kompilierte Shared Library erzeugt, welche von Java gewrappt wird und so als App fungiert.
Dazu gibt es den normalen Formulardesigner. Nachteil: Das geht nur mit dem Widget Type "customdrawn", also etwas systemfremd.
Mich überzeugen beide nicht.
(Bitte allfällige Missverständisse korrigieren!)
Man muss unterscheiden. Es gibt ja afaik mindestens zwei total verschiedene Ansätze.Socke hat geschrieben: Nachteile:
- Kein GUI-Designer
Erste Variante: FPC kennt das Target JVM. D.h. "hinten" kommen Java Class Files raus.
Die RTL dazu liest sich etwas so:
Code: Alles auswählen
47 JLMath = class sealed external 'java.lang' name 'Math' (JLObject)
48 public
49 const
50 E = jdouble(2.718281828459045);
51 PI = jdouble(3.141592653589793);
52 public
53 class function sin(para1: jdouble): jdouble; static; overload;
54 class function cos(para1: jdouble): jdouble; static; overload;
55 class function tan(para1: jdouble): jdouble; static; overload;
56 class function asin(para1: jdouble): jdouble; static; overload;
Ich meine, wenn man sowieso die "fremde" Klassenbibliothek verwenden muss, dann lieber gleich Java.
Die zweite Variante ist die, dass Lazarus eine für ARM kompilierte Shared Library erzeugt, welche von Java gewrappt wird und so als App fungiert.
Dazu gibt es den normalen Formulardesigner. Nachteil: Das geht nur mit dem Widget Type "customdrawn", also etwas systemfremd.
Mich überzeugen beide nicht.
(Bitte allfällige Missverständisse korrigieren!)
Re: JVM und Android
Ich entnehme der schwachen Beteiligung an dieser Diskussion, dass niemand wirklich hinter der Idee FPC/Lazarus für Java /Android steht.
Richtig?
Richtig?
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: JVM und Android
Ich hab noch kein lauffähiges Programm damit hinbekommen find die Idee aber Reizvoll.
Man kann eine Bibliothek für alle Plattformen verwenden und hat auch nur eine zu testen u.s.w. allein schon wenn man sich bei Android und iOS Apps nur noch um die unterschiedliche Benutzerschnittstelle kümmern muss find ich das schick.
Man kann eine Bibliothek für alle Plattformen verwenden und hat auch nur eine zu testen u.s.w. allein schon wenn man sich bei Android und iOS Apps nur noch um die unterschiedliche Benutzerschnittstelle kümmern muss find ich das schick.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
Re: JVM und Android
Die Variante FPC Target JVM habe ich hinbekommen, aber die reizt mich nicht. LCL Android klappt bei mir nur mit dem alten Virtualbox Snapshot.Christian hat geschrieben:Ich hab noch kein lauffähiges Programm damit hinbekommen find die Idee aber Reizvoll.
Eigene Versuche mit neuerem FPC/Lazarus sind bei mir insofern fehlgeschlagen, dass die App auf dem Emulator beim Start abkackt.
Gut, ich habe nicht alle Energie da reingesteckt, ist auch eine bisschen wackelig das Ganze.
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: JVM und Android
Und ich dacht schon es liegt an mir. Ist hier das selbe.
Ich find die Variante mit JVM aber reizvoller, die variante mit nativem Code ist immer vom prozessor abhängig und ich denke das ist dem Nutzer auf Android schlecht vermittelbar bzw man muss viel mehr Aufwand treiben um alle Telefone und Tablets zu unterstützen.
Ich find die Variante mit JVM aber reizvoller, die variante mit nativem Code ist immer vom prozessor abhängig und ich denke das ist dem Nutzer auf Android schlecht vermittelbar bzw man muss viel mehr Aufwand treiben um alle Telefone und Tablets zu unterstützen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
Re: JVM und Android
Naja, aber damit kann man auch nicht normal arbeiten. Wenn ich solchen Code schreiben will, dann nehme ich gleich Java:Christian hat geschrieben: Ich find die Variante mit JVM aber reizvoller,
Code: Alles auswählen
program sort;
{$mode delphi}
{$modeswitch unicodestrings}
uses
{$ifdef java}jdk15{$else}androidr14{$endif};
function test : string;
var
sa : array of JLObject;
L : JUList;
i : integer;
begin
SetLength(sa, 3);
sa[0] := JLString(string('2'));
sa[1] := JLString(string('3'));
sa[2] := JLString(string('1'));
L := JUArrays.asList(sa);
JUCollections.sort(L);
Result := '';
for i := 0 to L.size() - 1 do
Result := Result + string(L.get(i)) + string(' ');
end;
begin
jlsystem.fout.println(test);
if test<>'1 2 3 ' then
raise JLException.create;
end.
-
- Beiträge: 768
- Registriert: Mo 4. Mai 2009, 13:24
- OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
- CPU-Target: x86_64-linux-qt/gtk2
- Kontaktdaten:
Re: JVM und Android
Ich habe es geplant und lese interessiert mit. Customdrawn muss auf Android nicht unbedingt negativ auffallen, da die GUI neuer und weniger standardisiert ist.theo hat geschrieben:Ich entnehme der schwachen Beteiligung an dieser Diskussion, dass niemand wirklich hinter der Idee FPC/Lazarus für Java /Android steht.
Richtig?
-
- Beiträge: 489
- Registriert: Sa 5. Apr 2008, 09:37
- OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
- CPU-Target: 32Bit /64 Bit
- Wohnort: Nähe Freiburg i.Br.
Re: JVM und Android
Christian >> Ich hab noch kein lauffähiges Programm damit hinbekommen find die Idee aber Reizvoll.
ich erinnere mich schwach
Vieleicht kriegst du es bis zum nächsten Treffen hin
Bis dahin bleib ich bei Eclipse
ich erinnere mich schwach

Vieleicht kriegst du es bis zum nächsten Treffen hin

Bis dahin bleib ich bei Eclipse

-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: JVM und Android
Ich interessiere mich aus anderen Gründen für "Custom Drawn". Leider habe ich die SVN-Version noch nie ans Laufen bekommen. Nachdem ich nach meinen ersten Versuchen einen Patch an die "Macher" gegeben habt, kann ich immerhin eine Application mit einem leeren Formular laufen lassen. Sobald ich aber irgendeine Komponente darauf platziert habe, kann ich das Projekt übersetzen, aber bei der Ausführung bekomme ich einen Range-Check Fehler (vor meinem Patch war das auch bei leerem Formular der Fall.
Ich habe mir den Code angeschaut und es ist tatsächlich ein Bug: z.B. wird bei einem Integer das Bit 31 anders als als Voreichen verwendet. (z.B. werden Handle, die bei Linux eigentlich Pounbter sind, in Integer Variablen gehalten). Mit Cardinal würde das ohne Range Check Fehler funktionieren.
Anscheinend testen die mit abgeschaltetem Range check. Finde ich weniger toll.
-Michael
Ich habe mir den Code angeschaut und es ist tatsächlich ein Bug: z.B. wird bei einem Integer das Bit 31 anders als als Voreichen verwendet. (z.B. werden Handle, die bei Linux eigentlich Pounbter sind, in Integer Variablen gehalten). Mit Cardinal würde das ohne Range Check Fehler funktionieren.
Anscheinend testen die mit abgeschaltetem Range check. Finde ich weniger toll.
-Michael
Re: JVM und Android
Bei mir läuft das.mschnell hat geschrieben:Ich interessiere mich aus anderen Gründen für "Custom Drawn". Leider habe ich die SVN-Version noch nie ans Laufen bekommen.
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: JVM und Android
Toll !
Danke für die Mitteilung.
Ich bekomme nicht heraus, warum es bei mir anders ist als bei allen anderen. Liegt das vielleicht an SUSE 32 Bit ?
Da ich die Fehler eindeutig sehen kann und der Range-Check-Error tatsächlich berechtigt ist, ist die einzige Möglichkeit, dass bei9 mir die Daten (vermutlich die Werte der Handles) anders sind oder dass nur bei mir die Rangecheck-Überprüfung eingeschaltet ist.
Wenn ich wieder im Büro bin, schicke ich Dir einen Bericht, wo da was schiefgeht.
Gruß und Dank,
-Michael
Danke für die Mitteilung.
Ich bekomme nicht heraus, warum es bei mir anders ist als bei allen anderen. Liegt das vielleicht an SUSE 32 Bit ?
Da ich die Fehler eindeutig sehen kann und der Range-Check-Error tatsächlich berechtigt ist, ist die einzige Möglichkeit, dass bei9 mir die Daten (vermutlich die Werte der Handles) anders sind oder dass nur bei mir die Rangecheck-Überprüfung eingeschaltet ist.
Wenn ich wieder im Büro bin, schicke ich Dir einen Bericht, wo da was schiefgeht.
Gruß und Dank,
-Michael
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: JVM und Android
@khh ich bin gerade dabei mit html5 doch etwas wärmer zu werden. Man muss auf den mobilen Browsern einiges beachten dann lassen sich aber durchaus plattfomunabhängige programme mit schreiben. Fängt mir gerad an zu gefallen... mal sehn.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 724
- Registriert: Do 27. Sep 2012, 00:07
- OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
- CPU-Target: x86_64-win64
- Wohnort: Hamburg
Re: JVM und Android
Ich habe alle drei Varianten getestet und funktioniert bei mir gut (Samsung Glaxy Y, Android 2.35):
-LCLTest funktioniert wunderbar, Vorteil ist mann kann das Programm komplett auf PC-Entwickeln, testen, debuggen. Für Android braucht man nur kleine Anpassungen (Tasten..) vornehmen.
-Native Android GUI von Felipe (SchachChess) verwendet Android-Gui das ist schonmal vorteil. Nachteil ist Testen ist wahrscheinlich nicht so einfach.
-ZenGL für Grafik/Spiele sehr gut wie bei LCLTest kann mann komplett für"s PC entwickeln wenn es fertig ist anschließend für Android kompilieren.
Nachteile kann ich noch nicht nennen weil ich die mitgelieferten Beispielprogramme gestestet habe. Momentan exprementiere ich mit ZenGL and LCL sagt mir auch zu.
Ich habe auch mit Java+Eclipse einige Beispiele und Tutorials gemacht. Es bringt nicht viel Spaß weil der Entwicklungsprozeß zu langsam ist. Emulatorstart ist Langsam, Eclipse ist Zumutung. Vielleicht braucht man einfach einen High-End Rechner. Mit meinen 1.7GHZ, 1GBRam Maschinen macht es überhaupt nicht Spaß.
Für irgendwelche einfache Rechnenprogramme wie Taschenrechner, Zinsrechner oder Nachschlagewerke wie Mathelexikon würde ich einfache HTML und Javascript verwenden. Man muß das nicht mal als Apk-Packen. Mann kan einfach alles in ein Ordner werfen und ein Verknüpfung von Index.html-Datei auf Desktop (Home-Bildschirm) erstellen.
-LCLTest funktioniert wunderbar, Vorteil ist mann kann das Programm komplett auf PC-Entwickeln, testen, debuggen. Für Android braucht man nur kleine Anpassungen (Tasten..) vornehmen.
-Native Android GUI von Felipe (SchachChess) verwendet Android-Gui das ist schonmal vorteil. Nachteil ist Testen ist wahrscheinlich nicht so einfach.
-ZenGL für Grafik/Spiele sehr gut wie bei LCLTest kann mann komplett für"s PC entwickeln wenn es fertig ist anschließend für Android kompilieren.
Nachteile kann ich noch nicht nennen weil ich die mitgelieferten Beispielprogramme gestestet habe. Momentan exprementiere ich mit ZenGL and LCL sagt mir auch zu.
Ich habe auch mit Java+Eclipse einige Beispiele und Tutorials gemacht. Es bringt nicht viel Spaß weil der Entwicklungsprozeß zu langsam ist. Emulatorstart ist Langsam, Eclipse ist Zumutung. Vielleicht braucht man einfach einen High-End Rechner. Mit meinen 1.7GHZ, 1GBRam Maschinen macht es überhaupt nicht Spaß.
Für irgendwelche einfache Rechnenprogramme wie Taschenrechner, Zinsrechner oder Nachschlagewerke wie Mathelexikon würde ich einfache HTML und Javascript verwenden. Man muß das nicht mal als Apk-Packen. Mann kan einfach alles in ein Ordner werfen und ein Verknüpfung von Index.html-Datei auf Desktop (Home-Bildschirm) erstellen.