Android SDK

Rund um die LCL und andere Komponenten
Antworten
Warfley
Beiträge: 12
Registriert: So 8. Mai 2011, 09:21

Android SDK

Beitrag von Warfley »

So laut diesem Artikel hier:
http://wiki.lazarus.freepascal.org/Android_Interface" onclick="window.open(this.href);return false;
Müsste ja das Android SDK mit Lazarus verwenden?

Also ich habe ein Android Handy(HTC Desire) und einen Android 2.3 Emulator.
Habe vorhin mein SDK mit allen Komponenten geupdatet, und in Lazarus ein Neues Projekt vom Typ Programm geschrieben.

Der Code ist bisher noch nicht allzu weit:

Code: Alles auswählen

program Project1;
 
{$mode objfpc}{$H+}
 
uses   Classes, SysUtils, androidutil;
  { you can add units after this };
 
{$R *.res}
 
begin
end.
So nun meine frage wie verwende ich nun die Java klassen in Pascal?

PS könnte mir vllt jm
http://wiki.lazarus.freepascal.org/Setu ... le_For_ARM" onclick="window.open(this.href);return false;
Für einen ganz normalen Windows user übersetzen?

carli
Beiträge: 657
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: Android SDK

Beitrag von carli »

Lies dir den Artikel noch mal genau durch: http://wiki.lazarus.freepascal.org/Android_Interface" onclick="window.open(this.href);return false;

Da steht doch alles schwarz auf weiß drin.
As of 2011 and Android 2.3 it is possible to write purely native Android apps without a line of java code. However, this manual still does not cover these possibilities.

As of August 2010 (and Android 2.2), the Android platform can only execute Java Android applications, but these applications can load native libraries and can also run native executables. Therefore, to create Pascal applications in Android one can use one of these methods:
method 1> Write the Pascal application as a library connected to the Java application via JNI
method 2> Write the Pascal application as an executable and connect it to Java via pipes or sockets
Also auf Deutsch: Entweder du nimmst das JNI oder du kommunizierst mit Java über sockets.

mschnell
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: Android SDK

Beitrag von mschnell »

Re Android 2.3:

http://developer.android.com/sdk/androi ... ights.html" onclick="window.open(this.href);return false; :

Native input and sensor events

Applications that use native code can now receive and process input and sensor events directly in their native code, which dramatically improves efficiency and responsiveness.

Native libraries exposed by the platform let applications handle the same types of input events as those available through the framework. Applications can receive events from all supported sensor types and can enable/disable specific sensors and manage event delivery rate and queueing.


Re: FPC Crosscompiler für ARM:

Ein FPC Programm für Android solltest Du damit schon erstellen können. Das hat dann aber keine Benutzeroberfläche.

Wenn Du eine GUI willst: In der SVN -Version von Lazarus gibt es bereist einen "Android" Widget Type. Der ist aber noch nicht einmal Alpha. Da kannst Du mitarbeiten :D : Siehe http://wiki.lazarus.freepascal.org/Android_Interface" onclick="window.open(this.href);return false; .

-Michael

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Android SDK

Beitrag von pluto »

Auch eine nette Idee auf ein Android Lazarus zu verwenden. Müsste das nicht schon kompatibel sein?
Android ist doch auch "nur" ein Linux oder? Oder vertausche ich da jetzt was?
MFG
Michael Springwald

mschnell
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: Android SDK

Beitrag von mschnell »

Android ist ein Aufsatz auf Linux, so wie KDE/GTK oder Gnome/QT, deckt aber nicht nur das User-Interface ab, sondern auch diverse "Telefon" - Features wie Wählen und SMS senden und empfangen, GPS Positions-Erkennung, SIM-Karte, Kamera, Netzwerk, USB, Bluetooth, SD-Speicherkarte, etc. Und das alles auf sehr hohem (Hardware-fernen) Niveau. Und alles als Java-Function Calls Architektur- und Prozessor-unabhängig realisiert. Die User-Interface API ist vermutlich völlig anders als was man von GTK oder QT kennt.

Ein Free-Pascal-Programm für ARM bekommt man sicher leicht ans laufen, aber das arbeitet dann im Hintergrund, ohne dass man was davon sieht.

Man könnte es z.B. als HTTP-Server auslegen und mit dem Android-Browser unter 127.0.0.1 ansprechen.-

Aber ein Programm mit Oberfläche, wie man es von Lazarus gewohnt ist,. bekommt man so leicht nicht hin. Man könnte auf Android QT installieren (da gibt es was) und das Programm sozusagen neben der Android-Oberfläche zeigen (keine Ahnung wie das dann aussieht).

Wenn ein FPC-Programm auf richtige Android GUI oder die "Telefon" Features zugreifen will, muss man über einen Java "Stub" gehen, der das Interface zum Java-Framework liefert.

-Michael
Zuletzt geändert von mschnell am Fr 20. Mai 2011, 09:30, insgesamt 2-mal geändert.

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Android SDK

Beitrag von pluto »

Wenn ein FPC-Programm auf richtige Android GUI oder die "Telefon" Features zugreifen will, muss man über einen Java "Stub" gehen, der das Interface zum Java-Framework
Ist ja Ärgerlich. Gibt es keine richtigen Anwendungen z.b. so eine Art Konsolen Anwendungen? Oder Libs die man nutzen kann?

Die Art und weise, wie man mit Java drauf zugreifen könnte würde mir nicht gefallen.
MFG
Michael Springwald

carli
Beiträge: 657
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: Android SDK

Beitrag von carli »

pluto hat geschrieben:
Wenn ein FPC-Programm auf richtige Android GUI oder die "Telefon" Features zugreifen will, muss man über einen Java "Stub" gehen, der das Interface zum Java-Framework
Ist ja Ärgerlich. Gibt es keine richtigen Anwendungen z.b. so eine Art Konsolen Anwendungen? Oder Libs die man nutzen kann?

Die Art und weise, wie man mit Java drauf zugreifen könnte würde mir nicht gefallen.
Die Android-API ist nunmal für Java gemacht.
Aber wenn jemand die API erst mal komplett gewrappt hat, muss man sich nie mehr um Java kümmern.

Socke
Lazarusforum e. V.
Beiträge: 3178
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: Android SDK

Beitrag von Socke »

carli hat geschrieben:Aber wenn jemand die API erst mal komplett gewrappt hat, muss man sich nie mehr um Java kümmern.
Wärs da nicht einfacher -- sofern möglich -- den Aufruf-Mechanismus anstatt jede einzelne Funktion zu kapseln, so wie die rundll.exe das unter Windows macht (Funktionsnamen und Parameter übergeben und das wird dann aufgerufen)?
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

carli
Beiträge: 657
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: Android SDK

Beitrag von carli »

Socke hat geschrieben:
carli hat geschrieben:Aber wenn jemand die API erst mal komplett gewrappt hat, muss man sich nie mehr um Java kümmern.
Wärs da nicht einfacher -- sofern möglich -- den Aufruf-Mechanismus anstatt jede einzelne Funktion zu kapseln, so wie die rundll.exe das unter Windows macht (Funktionsnamen und Parameter übergeben und das wird dann aufgerufen)?
Weder noch - es würde halt einfach alles über eine Pipe gehen.

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Android SDK

Beitrag von pluto »

Wäre das denn nicht so eine Art dll bzw. so Datei? Die macht das doch so. Oder meinst du es noch anders?
MFG
Michael Springwald

Socke
Lazarusforum e. V.
Beiträge: 3178
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: Android SDK

Beitrag von Socke »

carli hat geschrieben:Weder noch - es würde halt einfach alles über eine Pipe gehen.
Das Prinzip wäre aber das selbe, da es kein ABI gibt, das beachtet werden müsste.
pluto hat geschrieben:Wäre das denn nicht so eine Art dll bzw. so Datei? Die macht das doch so. Oder meinst du es noch anders?
Bibliotheken sind nur eine Möglichkeit Programmcode für ein Betriebssystem ausführbar zu machen. Wenn das über Pipes geht, wie carli schreibt, wirds wahrscheinlich eher ein eigenes Programm sein oder ein Daemon (=Programm).
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Antworten