Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Programmieren für Android (https://www.delphipraxis.net/183114-programmieren-fuer-android.html)

Luckie 12. Dez 2014 11:49

Programmieren für Android
 
Luckie will mal wieder in die Tasten hauen. Und zwar dies mal für Android.

Programmidee ist folgende: Es soll ein kleines Tool werden welches nicht mehr benötigte Dateien vom Handy löscht. Also zum Beispiel Gesendete und empfangen Median dateien von WhatsApp. Bilder die mit der Kamera gemacht wurden. Auch die Thumbnails. SMS Nachrichten (Am besten mit auswählen, welche Nachrichten man löschen will.) das alles mache ich bisher von Hand. Und das will ich automatisieren.

Da ich mir keine Delphi IDE, die Android unterstützt leisten kann, bin ich auf Lazarus gestoßen. aber wenn ich das richtig sehe, ist das nur eine IDE und man braucht noch freepascal. Gibt es das irgend einen Download, wo man alles in einem runterladen und in einem Rutsch installiere kann? Oder wie ist das übliche Vorgehen? Des weiteren brauche ich ja noch irgendwie das Android SDK. Gibt es da irgendwie Anleitung wie ich das installiere? Und dann wie teste ich das? Wie bekomme ich die App aufs Handy ohne den Play Store?

kann sein, dass die Antworten auf meine Fragen schon irgendwo im Forum stehen. Aber vielleicht bekommen wir das hier mal alles auf einen Blick (in einem Thread) zusammen gefasst. Also irgendwie eine zusammenfassende Anleitung.

Luckie 12. Dez 2014 11:59

AW: Programmieren für Android
 
Ok. Die Frage mit der IDE und freepascal hat sich beantwortet. Läd man hier http://www.lazarus.freepascal.org/ die IDE runter ist, ist freepascal gleich mit dabei.

mkinzler 12. Dez 2014 12:06

AW: Programmieren für Android
 
Auch mit dem ARM crosscompiler?

Das SDK kannst Du unter https://developer.android.com/sdk/index.html herunterladen.

Edit: http://wiki.lazarus.freepascal.org/Android_Programming

Der schöne Günther 12. Dez 2014 12:07

AW: Programmieren für Android
 
Zitat:

Zitat von Luckie (Beitrag 1283231)
Da ich mir keine Delphi IDE, die Android unterstützt leisten kann

Gratis ist also noch zu teuer?

http://www.appmethod.com/de/pricing

mkinzler 12. Dez 2014 12:09

AW: Programmieren für Android
 
Kostenlos ist aber nur C++ für Android und leider nicht für Delphi.

himitsu 12. Dez 2014 12:16

AW: Programmieren für Android
 
Zitat:

Zitat von Luckie (Beitrag 1283235)
Ok. Die Frage mit der IDE und freepascal hat sich beantwortet.

Oder das Android Studio.
Ist dann allerdings mehr C-ig, aber dafür genau darauf ausgelegt. :stupid:

Luckie 12. Dez 2014 12:18

AW: Programmieren für Android
 
Eben und ich will mich nicht gleichzeitig mit zwei Problemen rumschlagen müssen.

Ich habe hier jetzt eine Anleitung gefunden: http://wiki.lazarus.freepascal.org/Android_tutorial Das sieht aber reichlich aufwenig aus, wenn man unter Windows für Android programmieren will. Ich habe schon mit den Projekteinstellungen gespielt. Zielbetriebssystem: Android. Ziel-CPU-Familie: arm. Aber was muss ich da beim Zielprocessor auswählen? Da hab eich ARMV3 bis ARMV7.

Davon abgesehen bekomme ich die Fehlermeldung: Compiler "C:\Programme\lazarus\fpc\2.6.4\bin\x86_64-win64\fpc.exe" unterstützt nicht das Ziel arm-android

@himitsu: Was verstehst du unter "C-ig"?

Daniel 12. Dez 2014 12:22

AW: Programmieren für Android
 
Zitat:

Zitat von Luckie (Beitrag 1283231)
Es soll ein kleines Tool werden welches nicht mehr benötigte Dateien vom Handy löscht. Also zum Beispiel Gesendete und empfangen Median dateien von WhatsApp. Bilder die mit der Kamera gemacht wurden. Auch die Thumbnails. SMS Nachrichten (Am besten mit auswählen, welche Nachrichten man löschen will.) das alles mache ich bisher von Hand. Und das will ich automatisieren.

Bist Du sicher, dass eine normale App - egal, mit welchem Werkzeug erstellt - überhaupt die Rechte hat, o.g. Dinge zu tun? Ich weiß, dass das Rechte-System unter Android weit weniger restriktiv ist als unter iOS, aber auch dort ist jede App per Standard in ihrer Sandbox. Ich wäre besorgt, wenn eine App meine Photo-Library löschen könnte. In iOS beispielsweise kann ich sie nur /ergänzen/. Und ob Du Zugriff auf den Sms-Speicher haben wirst, wage ich ebenfalls zu bezweifeln.

Luckie 12. Dez 2014 12:25

AW: Programmieren für Android
 
Na ja. OK. Das mit dem SMS Speicher könnte nicht klappen. Aber Zugriff aufs Dateisystem sollte man doch bekommen können oder? Es gibt ja schließlich auch "Explorer" Apps für Android.

mkinzler 12. Dez 2014 12:26

AW: Programmieren für Android
 
Du benötigst einen crosscompiler für die ARM Plattform

Mit c-ig meint Frank wohl Java.

Luckie 12. Dez 2014 12:28

AW: Programmieren für Android
 
Wäre Laz4Android aus obigen Link so einer?

mkinzler 12. Dez 2014 12:35

AW: Programmieren für Android
 
Ja. Es scheint einer compliert zu werden.

Luckie 12. Dez 2014 12:38

AW: Programmieren für Android
 
Ok. dann quäle ich mich da mal durch. Vielen Dank schon mal.

mjustin 12. Dez 2014 12:59

AW: Programmieren für Android
 
Zitat:

Zitat von Luckie (Beitrag 1283246)
Na ja. OK. Das mit dem SMS Speicher könnte nicht klappen. Aber Zugriff aufs Dateisystem sollte man doch bekommen können oder? Es gibt ja schließlich auch "Explorer" Apps für Android.

Zugriff auf alle SMS zu bekommen ist leichter, als Zugriff auf alle Dateien. Für das Löschen von SMS aus der Inbox benötigt eine App nur die Berechtigung

Code:
<uses-permission android:name="android.permission.WRITE_SMS"/>
Dagegen lassen sich nur durch Rooten die privaten Verzeichnisse anderer Apps lesen (oder zwischen 'befreundeten' Apps, durch Nutzung von android:sharedUserId, wenn zwei APKs den gleichen Property-Wert verwenden).

On the Edge of the Sandbox: External Storage Permissions

Luckie 12. Dez 2014 13:11

AW: Programmieren für Android
 
OK. Und ich glaube nicht, dass es ein privates Verzeichnis ist, denn mit dem OI Dateimanger kann ich auch darauf zu greifen ohne das Handy gerootet zu haben.

Aber erst mal muss ich die IDE zum Laufen bringen. Habe jetzt das gefunden: http://sourceforge.net/projects/laz4android/ aber da bekomme ich immer die Fehlermeldung, dass eine ppu Datei älter als der Compiler sei, wenn ich als Ziel Android, arm und eine CPU auswähle. Und ich soll ein anderes Widget wählen. was auch immer damit gemeint ist.

mjustin 12. Dez 2014 13:21

AW: Programmieren für Android
 
Zitat:

Zitat von Luckie (Beitrag 1283260)
OK. Und ich glaube nicht, dass es ein privates Verzeichnis ist, denn mit dem OI Dateimanger kann ich auch darauf zu greifen ohne das Handy gerootet zu haben.


Über ein simples
Zitat:

adb root
kann man über den Android Debugger root werden. Könnte im OI ja automatisch beim Start des Debuggers geschehen sein :)

mkinzler 12. Dez 2014 13:33

AW: Programmieren für Android
 
Das öftet nur ein root Shell über adb und sollte nicht für installierte Apps gelten und auch nicht dauerhaft. Das Rooten des Devices ist je nach Gerät erheblich schwerer.
Da er och kein SDK installiert hatte, ist adb im Rootmodus auch eher unwahrscheinlich.

Fotos sind z.B. in einem normalen Verzeichnis gespeichert, welches frei zugänglich ist.

pelzig 12. Dez 2014 14:56

AW: Programmieren für Android
 
Wie wär's denn ganz konkret mit einem Lastenheft?

- Lazarus?
- Adroid/Linux/iOS/Windows? (Welches OS denn genau?)
- Online- oder Offline-Daten bearbeiten (neu, ändern oder löschen)?

Falls Daten ändern:
- lokal (PC/Handy) während der Entwicklung?
- global (PC/Handy/Cloud)

Der TE könnte seine Fragestellung doch etwas eingrenzen, da er wohl kein absoluter Anfänger mehr ist :?

MfG

mjustin 12. Dez 2014 16:51

AW: Programmieren für Android
 
Zitat:

Zitat von mkinzler (Beitrag 1283263)
Das öftet nur ein root Shell über adb und sollte nicht für installierte Apps gelten und auch nicht dauerhaft. Das Rooten des Devices ist je nach Gerät erheblich schwerer.

Hatte zu kurz gegoogelt - adb root etc. funktioniert nur wenn das Geräte bereits gerootet wurde. Die Sandbox (private App-Verzeichnisse anderer Apps auslesen) kann man daher mit einem nicht gerooteten Gerät nicht. Der OI zeigt daher sicher nur die öffentlich zugänglichen Verzeichnisse an.

D-User 12. Dez 2014 17:08

AW: Programmieren für Android
 
soweit ich das gesehen hatte, war hier der cross-build im Gegensatz zum
ungepimpten Lazarus etwas vereinfacht, habs aber noch nicht ausprobiert:

http://www.pilotlogic.com/sitejoom/i...ld-for-android

Luckie 12. Dez 2014 18:39

AW: Programmieren für Android
 
Danke. Werde ich mir auch noch mal angucken.

Namenloser 12. Dez 2014 23:07

AW: Programmieren für Android
 
Zitat:

Zitat von Daniel (Beitrag 1283245)
Zitat:

Zitat von Luckie (Beitrag 1283231)
Es soll ein kleines Tool werden welches nicht mehr benötigte Dateien vom Handy löscht. Also zum Beispiel Gesendete und empfangen Median dateien von WhatsApp. Bilder die mit der Kamera gemacht wurden. Auch die Thumbnails. SMS Nachrichten (Am besten mit auswählen, welche Nachrichten man löschen will.) das alles mache ich bisher von Hand. Und das will ich automatisieren.

Bist Du sicher, dass eine normale App - egal, mit welchem Werkzeug erstellt - überhaupt die Rechte hat, o.g. Dinge zu tun? Ich weiß, dass das Rechte-System unter Android weit weniger restriktiv ist als unter iOS, aber auch dort ist jede App per Standard in ihrer Sandbox. Ich wäre besorgt, wenn eine App meine Photo-Library löschen könnte. In iOS beispielsweise kann ich sie nur /ergänzen/. Und ob Du Zugriff auf den Sms-Speicher haben wirst, wage ich ebenfalls zu bezweifeln.

Sollte schon gehen, es gibt schließlich auch eine Android-Version von Total Commander, mit der man die Dateien managen kann. Die wird ganz normal als App installiert. Allerdings wird man solche Daten wie SMS-Nachrichten eher nicht im Dateisystem finden bzw. darauf zugreifen können. Fotos gehen aber z.B. durchaus.

hathor 13. Dez 2014 08:58

AW: Programmieren für Android
 
Auch wer XE7 nicht hat, kann sich hier Infos holen:
Über 300 Seiten - Mobile Application Development (iOS and Android)
http://docs.embarcadero.com/products...torials_en.pdf

Für XE6:
http://docs.embarcadero.com/products...torials_en.pdf

Luckie 3. Feb 2015 11:17

AW: Programmieren für Android
 
Ich bin jetzt schon mal weiter. Nach dieser Anleitung wiki.lazarus.freepascal.org/Android_tutorial hab eich es schonmal geschafft, dass das Testprojekt unter Lazarus kompiliert. Nur das erstellen der apk Datei funktioniert nicht. Die build_debug_apk.bat hab eich entsprechende angepasst. Pfad zum JDK und zu den android-sdk\build-tools.

Allerdings bekomme ich beim Ausführen zum Schluss immer fehlermeldungen vom JDK:
Code:
UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.RuntimeException: C:\Android\Projects\androidlcl\android\bin\classes:
file not found
        at com.android.dex.util.FileUtils.readFile(FileUtils.java:51)
        at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.j
ava:169)
        at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java
:144)
        at com.android.dx.command.dexer.Main.processOne(Main.java:632)
        at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
        at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
        at com.android.dx.command.dexer.Main.run(Main.java:246)
        at com.android.dx.command.dexer.Main.main(Main.java:215)
        at com.android.dx.command.Main.main(Main.java:106)
1 error; aborting
Das System kann den angegebenen Pfad nicht finden.

THIS TOOL IS DEPRECATED. See --help for more information.

Failed to create 'C:\Android\Projects\androidlcl\android\bin\lcltest-unsigned.apks': Das System kann den angegebenen Pfad nicht finden
C:\Android\Projekte\androidlcl\android\bin\lcltest-unaligned.apk konnte nicht gefunden werden
Unable to open 'bin\lcltest-unaligned.apk' as zip archive
Ich habe aber keien Ahnung warum und wie ich das behebe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:23 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