AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi Firemonkey mobile - Android deployment
Thema durchsuchen
Ansicht
Themen-Optionen

Firemonkey mobile - Android deployment

Ein Thema von AnCorr · begonnen am 30. Mär 2017 · letzter Beitrag vom 2. Apr 2017
Antwort Antwort
Seite 1 von 2  1 2      
AnCorr

Registriert seit: 15. Mär 2010
45 Beiträge
 
#1

Firemonkey mobile - Android deployment

  Alt 30. Mär 2017, 20:16
Hallo,

nach langer Abwesenheit (auch vom Programmieren) habe ich mal wieder ein Problem bei dem ich nicht mehr weiterkomme, und eure Hilfe brauche.

Ich habe seit Jahren auf Linux einen Webserver laufen. Unter Anderem habe ich dort auch mein "Rezeptbuch" abgelegt.
Bisher habe ich mit die Rezepte immer per Internetbrowser angesehen. Das "Rezeptbuch" ist mittels PHP, HTML, Javascrip, CSS und einer MySQL Datenbank aufgebaut.
Ich moechte mir nun eine Windows/Android-App programmieren, mit der ich mir die Rezepte ebenfalls ansehen kann. Zum Einen moechte ich damit meine Programmierkenntnisse in Richtung Android erweitern, zum Anderen moechte ich in die Android-App auch die Moeglichkeit zur Erstellung einer Einkaufsliste einbauen.

Ich habe schon eine - unter Windows - komplett funktionierende Anwendung (Multi-Device-Anwendung).
Die Anwendung verwendet von dbexpress eine SQLConnection-Komponente und eine SQLQuery-Komponente.

Die Anwendung laesst sich auch kompilieren und auf eines meiner Android-Geraete uebertragen, tut dort aber nichts. Der Bildschirm bleibt schwarz und irgendwann meldet das System, dass die Anwendung "haengt".

Das Ganze haengt nur mit den Datenbankkomponenten zusammen. Nehme ich die Aufrufe zum Verbinden mit dem Datenbankserver und Einlesen der Rezeptdaten heraus (auskommentieren), laeuft die Anwendung (was dann noch an "Funktion" uebrigbleibt) auch unter Android.

Um dem Problem auf den Grund zu gehen, habe ich nun einfach mal eine neue Anwendung erzeugt, welche nur ein paar Controls wie Labels und Buttons hat, um zu sehen was sich auf dem Android-Geraet tut. -> Funktioniert natuerlich ohne Probleme.
Dann habe ich die dbexpress-Komponenten (siehe oben) hinzugefuegt (ohne jegliche Funktion). Auch dann funktioniert die App noch.
Ich kann die SQL-Connection-Komponente auch konfigurieren (per Programmcode) und auch die Query-Komponente mit SQL Strings fuettern. All das funktioniert noch. D. h., die App startet und zeigt die verwendeten Buttons und Labels.

Sobald ich aber einen Open- oder EcexSQL-Befehl absetze, oder die SQL-Connection-Komponente auf "Connected = true" setze, tut sich bei der Android App nichts mehr.

Ich denke, dass es daran liegt, dass die Dateien dbxmys.dll und libmysql.dll nicht auf die Android-Geraete uebertragen werden.

Ich habe diese in der "Deployment-Konfiguration" angegeben. Ausprobiert habe ich als Zielverzeichnisse schon ".\", "library\lib\armeabi-v7a" und "library\lib\armeabi".
Aber ich kann die Dateien auf den Geraeten (sind bis auf eines gerootet) nicht finden.
Ich habe noch eine andere Anwendung programmiert habe, welche zusaetzliche Dlls (BASS fuer Mp3) benoetigt. Bei dieser werden die Dlls auf die Geraete uebertragen.
Ich kann keinen Unterschied feststellen, wenn ich bei beiden Anwendungen die "Deployment-Konfiguration" vergleiche (was die zusaetzlichen Dlls anbelangt).

Nun meine Fragen:
Hat schon jemand eine Android App entwickelt, welche mittels dbxpress-Komponenten auf eine MySQL-Datenbank zugreift? Wenn ja, wo genau muessen welche Dateien mit ausgeliefert werden?
Ich habe (hier) schon eine Threads gesehen, wo "letztendlich" auf REST, SOAP oder Datasnap "ausgewichen" wird. Da es sich bei mir um meine "ganz persoenliche" Webseite/Datenbank mit etwa 400 Rezepten geht, moechte ich nach Moeglichkeit keine weitern "Server-/Client-Anwendungen/-Komponenten" ins Spiel bringen.

Ich habe mir diesbezueglich auch schon diverse Youtube-Videos angesehen, aber dabei werden immer nur Windows-Anwendungen gezeigt, welche ja bei mir auch schon wunderbar funktioniert. Wie dies aber ganz genau mit Firemonkey Mobile und Android funktioniert, habe ich leider nicht gefunden.

Meine Konfiguration:
Windows 7
Delphi 10 Seattle
(ich habe auch noch aeltere Delphi-Versionen, aber dort steht die Webbrowser-Komponente nicht fuer Android zur Verfuegung)
Diverse Android-Geraete mit den unterschiedlichsten Android-Versionen (Galaxy S1 Android 2.3.5 gerootet, Galaxy S2 Android 4.1.2 gerootet, Galaxy S5 Android 6.0.1 gerootet, Galaxy Note 10.1 2014 Android 5.1.0 gerootet, Galaxy S7 Edge Android 7.0 Samsung Stock-ROM)


Ich hoffe, ihr seid beim Lesen nicht eingeschlafen. Ich wollte euch gleich so viele Informationen wie moeglich geben.


Danke fuer's Durchlesen und eure Hilfe/Kommentare im Voraus!


AnCorr
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Firemonkey mobile - Android deployment

  Alt 31. Mär 2017, 06:51
Eine direkte Verbindung zu einer Datenbank ist bei mobilen Geräten nicht die richtige Lösung. Ich würde dies entkoppeln, in dem man eine Zwischenschicht einbaut ( z.B. Rest(ful)service).
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.126 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Firemonkey mobile - Android deployment

  Alt 31. Mär 2017, 10:55
Ich denke, dass es daran liegt, dass die Dateien dbxmys.dll und libmysql.dll nicht auf die Android-Geraete uebertragen werden.

Ich habe diese in der "Deployment-Konfiguration" angegeben. Ausprobiert habe ich als Zielverzeichnisse schon ".\", "library\lib\armeabi-v7a" und "library\lib\armeabi".
emmm... DLL? Android? OK.. Nicht das ich etwas falsches sagen, ich habe mit Android auf Intel-CPU keine Erfahrung. Aber normalerweise sind DLL's Intel-Code und Android hat i.d.R. eine ARM CPU...

Mavarik
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Firemonkey mobile - Android deployment

  Alt 31. Mär 2017, 10:57
Android hat selbst auf x86/x64 keine "Dll"s sondern "so"s.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.126 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Firemonkey mobile - Android deployment

  Alt 31. Mär 2017, 11:00
Android hat selbst auf x86/x64 keine "Dll"s sondern "so"s.
Dachte ich mir... Hast Du ein Android/Intel Device?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Firemonkey mobile - Android deployment

  Alt 31. Mär 2017, 11:10
Windows: Dll
Android(Linux): so
MacOS: dylib
Markus Kinzler
  Mit Zitat antworten Zitat
AnCorr

Registriert seit: 15. Mär 2010
45 Beiträge
 
#7

AW: Firemonkey mobile - Android deployment

  Alt 31. Mär 2017, 13:50
Hallo,

danke schon mal fuer die rege Anteilnahme, auch wenn es mich nicht direkt weiterbringt.

Ja, auf Android (Linux) gibt es keine Dlls. Ich bin davon ausgeganen, dass sich das RAD Studio darum kuemmert einen "Wrapper" dafuer zu erzeugen, oder was auch immer. Ich habe bei meinen stundenlangen Suchen im Internet (auch bei Stackoverflow) immer wieder nur gelesen, dass man die genannten Dlls mit "verteilen" muss.
Mittlerweile nehme ich auch an, dass dort mal wieder alles falsch verstanden wurde, und bei den Antworten dann nur noch auf das "Firemonkey", aber nicht mehr auf das "mobile Android" geachtetet wurde.
Es gibt somit scheinbar niemanden, der soetwas schon einmal funktionsfaehig umgesetzt hat.

Mittlerweile habe ich mich auch schon mal stundenlang mit REST auseinandergesetzt. Habe mir auf meine Synology Tomcat installiert und auch "sqlrest" installiert. Die Dokumentation ist sehr spaerlich und ich komme damit ueberhaupt nicht klar. Auch "Rester" habe ich ausprobiert, aber da scheitert es schon an der Datenbankanbindung. Obwohl meine Zugangsdaten in der config.php korrekt angegeben sind, erhalte ich beim Seitenaufruf nur "Authentication error".

Na ja, ich werde noch etwas weiter forschen. Vielleicht findet sich ja noch eine, mit "relativ akzeptablen Aufwand" zu implenentierende Loesung.


Gruss
AnCorr
  Mit Zitat antworten Zitat
Benutzerbild von MEissing
MEissing

Registriert seit: 19. Jan 2005
Ort: Egelsbach
1.384 Beiträge
 
Delphi 12 Athens
 
#8

AW: Firemonkey mobile - Android deployment

  Alt 31. Mär 2017, 16:00
dbExpress und auch FireDAC sind nicht dafür ausgelegt direkt von Android auf einen DB-Server zuzugreifen.

Es gibt zwei Ausnahmen (bei FireDAC): SQLite und InterBase (bedingt: da nur IBLite/IB ToGo vorgesehen sind... direktes TCP/IP auf einem IB-Server geht aber auch ("Kids! Don't do this at home!"))

Alternativen: UniDAC von DevArt
Matthias Eißing
cu://Matthias.Eißing.de [Embarcadero]
Kein Support per PN
  Mit Zitat antworten Zitat
AnCorr

Registriert seit: 15. Mär 2010
45 Beiträge
 
#9

AW: Firemonkey mobile - Android deployment

  Alt 31. Mär 2017, 16:54
dbExpress und auch FireDAC sind nicht dafür ausgelegt direkt von Android auf einen DB-Server zuzugreifen.

Es gibt zwei Ausnahmen (bei FireDAC): SQLite und InterBase (bedingt: da nur IBLite/IB ToGo vorgesehen sind... direktes TCP/IP auf einem IB-Server geht aber auch ("Kids! Don't do this at home!"))

Alternativen: UniDAC von DevArt
Die Komponente von Devart habe ich auch schon gefunden. Aber 200 Dollar nur fuer eine App, die ich wahrscheinlich gerade mal fuer mich und evtl. ein paar Freunde schreibe, scheint mir im Moment etwas viel.
Ich moechte die App ja nicht vermarkten. Dafuer ist das "Ganze drumherum" viel zu speziell auf meine Beduerfnisse zugeschnitten.
Danke trotzdem fuer die Information!


Gruss
AnCorr
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.126 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: Firemonkey mobile - Android deployment

  Alt 1. Apr 2017, 10:54
Mittlerweile habe ich mich auch schon mal stundenlang mit REST auseinandergesetzt. Habe mir auf meine Synology Tomcat installiert und auch "sqlrest" installiert. Die Dokumentation ist sehr spaerlich und ich komme damit ueberhaupt nicht klar. Auch "Rester" habe ich ausprobiert, aber da scheitert es schon an der Datenbankanbindung. Obwohl meine Zugangsdaten in der config.php korrekt angegeben sind, erhalte ich beim Seitenaufruf nur "Authentication error".

Na ja, ich werde noch etwas weiter forschen. Vielleicht findet sich ja noch eine, mit "relativ akzeptablen Aufwand" zu implenentierende Loesung.
Eigentlich brauchst Du keine Frendkomponenten dafür...

"Einfaches" REST kannst Du auf dem Server in wenigen Zeilen erzeugen - zur "Not" schau dir mal SuperObjects an... Und auf der Kilent Seite ist es ähnlich.

Das einzige was dann ein bisschen Tipparbeit ist, ist CRUD umzusetzen.

Mavarik
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz