Sign in Join
Wiki copytemporary

Android - Android with FPCUPDeluxe/de: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Android - Android with FPCUPDeluxe/de

OldNewLine
1+> **Warning:** , der Artikel ist Beta
2+
3+# Android und Lazarus unter Linux Mint
4+
5+## Voraussetzungen
6+
7+Ein eingerichtetes FPCUPDeluxe [[fpcupdeluxe/de|FPCUPDeluxe]]
8+
9+Wer unter Linux mit Lazarus nach Android kompilieren möchte muss einiges an Einstellungen vornehmen. Ich habe es ausschließlich unter Linux Mint 19.3 Cinnamon 64bit getestet. Zuerst in einer Virtualbox Version.
10+
11+### Quellen:
12+
13+- <https://forum.lazarus.freepascal.org/index.php/topic,40750.msg281604.html#msg281604>
14+- <https://forum.lazarus.freepascal.org/index.php/topic,38777.msg264419.html#msg264419>
15+- <https://wiki.lazarus.freepascal.org/LAMW>
16+
17+- <https://www.lazarusforum.de/viewtopic.php?f=55&t=13084&sid=acf2a30469fbf7adf21fce15edd5a3e5>
18+- <https://www.lazarusforum.de/viewtopic.php?f=13&t=13072&p=116113&hilit=android#p116113>
19+- <https://www.lazarusforum.de/viewtopic.php?f=3&t=12766&p=113313&hilit=android#p113313>
20+
21+- <https://www.lazarusforum.de/download/file.php?id=5482>
22+
23+Ich habe mich dazu entschieden das Modul LAMW zu verwenden, es läuft auch unter Linux und nimmt einem beim Einrichten der Lazarus IDE sehr viel Arbeit ab! Liste von Android Versionen:
24+
25+- <https://de.wikipedia.org/wiki/Liste_von_Android-Versionen>
26+
27+### Voraussetzungen:
28+
29+Die in fpcupdeluxe derzeit verwendete LAMW (LazarusAndroidModulWizard) Version benötigt folgende Voraussetzungen:
30+
31+``` bash
32+# adb
33+sudo apt-get install adb
34+```
35+
36+<s> Pakete installieren:
37+
38+``` bash
39+sudo apt-get install libx11-dev libgtk2.0-dev libgdk-pixbuf2.0-dev libcairo2-dev libpango1.0-dev libxtst-dev libatk1.0-dev libghc-x11-dev freeglut3 freeglut3-dev
40+sudo apt-get install git subversion make build-essential gdb zip unzip unrar wget
41+```
42+
43+</s>
44+
45+Solten per default bei Mint installiert sein.
46+
47+``` bash
48+# Java Pakete
49+sudo apt-get install openjdk-8-jdk
50+# sudo apt-get install android-tools-adb ant
51+```
52+
53+Ist nur nötig, wen man nicht openjdk als Standard hat.
54+
55+``` bash
56+# Open JDK aus Standard
57+sudo update-java-alternatives --set /usr/lib/jvm/java-1.8.0-openjdk-amd64
58+```
59+
60+Einen Ordner anlegen, für die Android spezifischen Pakete. Keine **Leerzeichen** im Pfad verwenden, dies erspart Ärger.
61+
62+``` bash
63+mkdir -p ~/Programme/android
64+```
65+
66+<s> Folgende Programme downloaden und in den Ordner `~/Programme/android` entpacken:
67+
68+- Verschiedene Versionen von Gradle findet man hier (ich nahm 4.4.1, sonst anpassen):
69+- Verschiedene Versionen von Gradle findet man hier (ich nahm 6.2.2, sonst anpassen):
70+ - <https://gradle.org/releases/> Dort binary only wählen. <s>\
71+ Nachdem dem Entpacken `gradle-x.x.x` in `gradle` umbennen</s>\
72+ Wichtig, Pfade weiter unten müssen an die Version angepasst werden, zB. Export !
73+
74+</s>
75+
76+## SDK-Manager downloaden und einrichten
77+
78+- Android SDK downladen:
79+ - <http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz> Den Inhalt nach **~/Programme/android** entpacken.\
80+ <s>Nachdem dem Entpacken `android-sdk-linux` in `sdk` umbennen</s>
81+
82+Android SDK-Manager starten:
83+
84+``` bash
85+~/Programme/android/android-sdk-linux/tools/android
86+```
87+
88+Es ist die neuste Version Android 10 (API29) vorausgewählt.
89+
90+<s>Die 3 Hakchen SDK Tools, SDK Platform-tools und SDK Build-tools drin lassen.</s> Zusätzlich noch die Build-tools 27.0.3 anwählen (werden für 28 und 29 zusätzlich benötigt)
91+
92+Folgendes installieren:
93+
94+- "Tools" --\> "Android SDK Build-tools - 27.0.3"
95+- "Extras" --\> "Android Support Repository"
96+- "Extras" --\> "Google Play service"
97+- "Extras" --\> "Google Repository"
98+
99+Folgendes entfernen:
100+
101+- "Android R" --\> \[alles entfernen\]
102+
103+## NDK einrichten
104+
105+Bei Android 10 (API29) benötigt man nur die SDK Plattform. Die anderen Haken entfernen. Die Systemimages werden nur benötigt wenn man zum Testen einen Emulator anlegen möchte. Ich möchte erst mal auf einen alten Handy testen. \[Wer eine ältere Version nehmen möchte muss die dem entsprechende SDK Plattform wählen bzw. die passenden Build-tools nehmen. Zum Beispiel SDK Plattform von API 25 mit SDK Buil-tools 25.0.3. Es muss dann aber auch die passende NDK Datei ausgesucht werden. Für API 25 funktionierte bei mir android-ndk-r10e-linux-x86_64. \]
106+
107+das Aktuelle NDK downloaden:
108+
109+- <https://developer.android.com/ndk/downloads>
110+
111+Momentan ist es **android-ndk-r21-linux-x86_64**. Den Inhalt nach **~/Programme/android** entpacken. <s>Den Ordner anschließend in **ndk-bundle** umbenennen.\
112+<s> <s> Jetzt im Terminal folgende Links anlegen:
113+
114+``` bash
115+ln -sf ~/Programme/android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin ~/Programme/android/ndk-toolchain
116+ln -sf ~/Programme/android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9 ~/Programme/android/sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9
117+ln -sf ~/Programme/android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9 ~/Programme/android/sdk/ndk-bundle/toolchains/mipsel-linux-android-4.9
118+```
119+
120+Am Ende bei `~/.bashrc` folgendes einfügen: </s>
121+
122+<s>Wen nicht vorhanden, folgende Datei im Home-Ordner anlegen: `~/.profile` ?????????
123+
124+Die Datei editieren, und a, Ende folgendes einfügen:</s>
125+
126+```text
127+export ANDROID_SDK_ROOT="${HOME}/Programme/android/sdk"
128+# export GRADLE_HOME="${HOME}/Programme/android/gradle-4.4.1"
129+# export GRADLE_HOME="${HOME}/Programme/android/gradle-6.2.2"
130+export PATH="${PATH}:${HOME}/Programme/android/ndk-toolchain"
131+export PATH="${PATH}:${GRADLE_HOME}/bin"
132+```
133+
134+Anschliessend speichern und beenden.
135+
136+**PC neustarten !** </s></s>
137+
138+## FPC/Lazarus Crosscompiler bauen
139+
140+### Lazarus mit FPCUPDeluxe bauen
141+
142+Zuerst eine Trunk mit FPCUPDeluxe bauen. Fur ARM und i386 kann man auch die **stable** verwenden. Siehe hier:
143+
144+- [[fpcupdeluxe/de|FPCUPDeluxe]]
145+
146+Nun fpcupdeluxe starten. Ich empfehle für den Android Crosscompiler zusätzlich ein eigenes Lazarus zu installieren. Nach der Installation von Lamw wurden bei mir die Einstellungen der Lazarus IDE durcheinander gewürfelt. Die Cross Compiler für arm und i386 lassen sich mit den stable Versionen installieren. Der Cross Compiler für aarch64 nur mit der trunk. Ich habe mich deshalb hier für die trunk Versionen entschieden. Achtung: das neue Lazarus in ein anderes Verzeichnis als das schon vorhandene installieren. Wen **trunk** nicht geht, kann man alternativ **trunk.git** probieren. Wen alles versagt, zu einem späteren Zeitpunkt probieren.
147+
148+<s>In Lazarus unter Tools, Options, General die Sprache auf deutsch umstellen. Lazarus neu starten. Folgende Versionen wurden bei mir installiert:</s>
149+
150+### LAMW mit fpcupdeluxe installieren
151+
152+Als nächstes noch lamw (falls noch nicht vorhanden) installieren: LAMW Manager :"Ein Installationsprogramm zum Generieren der Lazarus IDE \[und aller erforderlichen Komponenten!\], angefertigt um für Android zu entwickeln! zu lamw:
153+
154+- Weitere Infos: <https://wiki.lazarus.freepascal.org/LAMW>
155+
156+In FPCUPDeluxe folgendes einstellen:
157+
158+- Im Reiter **Modules**
159+ - **lamw** anwählen
160+ - <span class="kbd">Install module</span> drücken, somit wird das Modul installiert.
161+
162+### Cross-Compiler bauen:
163+
164+- Im Reiter **Cross** noch folgende CheckBoxen anwählen:
165+ - Bei ARM:
166+ - CPU: **arm**
167+ - OS: **android**
168+
169+- - Bei i386:
170+ - CPU: **i386**
171+ - OS: **android**
172+
173+- Button <span class="kbd">Install compiler</span> drücken, somit wird der Cross-Compiler gebaut.
174+
175+## Lazarus einrichten
176+
177+### Lazarus auf deutsch
178+
179+- Lazarus mit dem neuen Desktop-Icon (Lazarus_fpcupdeluxe) starten.
180+- *"Tools --\> Options --\> General --\> Language"* Lazarus auf deutsch stellen, mit <span class="kbd">Ok</span> bestätigen und Lazarus neu starten.
181+
182+Lazarus sollte jetzt deutsch sein.
183+
184+### LAMW einrichten
185+
186+- "Werkzeuge --\> \[LAMW\] Android Module Wizard --\> Paths Settings \[Jdk,Sdk,Ndk\]"
187+ - "Path to Java JDK" --\> /usr/lib/jvm/java-11-openjdk-amd64
188+ - "Path to Ant bin:" --\> /home/tux/android/fpcupdeluxe/ccr/lamw-ant/apache-ant-1.10.8/bin
189+ - <s>"Path to Ant bin:" --\> /usr/bin</s>
190+ - <s>"Path to Gradle" --\> /home/tux/Programme/android/gradle-4.4.1
191+ - "Path to Gradle" --\> /home/tux/Programme/android/gradle-6.2.2</s>
192+ - "Path to Gradle" --\> /home/tux/fpcupdeluxe_android.alt/ccr/lamw-gradle/gradle-6.2.1
193+ - <s>"Path to Android NDK" --\> /home/tux/Programme/android/sdk/ndk-bundle</s>
194+ - "Path to Android NDK" --\> /home/tux/Programme/android/android-ndk-r21d
195+ - "NDK Version" --\> 11
196+ - <s>"Path to Android SDK" --\> /home/tux/Programme/android/sdk</s>
197+ - "Path to Android SDK" --\> /home/tux/Programme/android/android-sdk-linux
198+
199+## Erstes Project
200+
201+Als nächstes
202+
203+- "Datei --\> Neu --\> Project --\> LAMW\[GUI\]Android Module"
204+ - "Path to Workspace" --\> /home/tux/android_test
205+ - "Architekture/Instructions" --\> ARMv7a+VFPv3
206+ - "Apk Builder: --\> "Gradle
207+
208+<span class="kbd">Ok</span> drücken
209+
210+Projekt will sich speichern, mit "speichern" bestätigen.
211+
212+### Erster Start
213+
214+- "Start" --\> \[LAMW\] Build Android Apk and Run\
215+ Warnung mit "ja" bestätigen.
216+
217+Das erste Kompilieren geht recht lange, da noch vieles für den Crosscompiler übersetzt werden muss.
218+
219+## Project Einstellungen ändern
220+
221+Nachträglich Build ändern:
222+
223+- Projekt --\> Projekteinstellungen... --\> \[LAMW\] Android Project Options --\> Build
224+
225+---
226+*From the Free Pascal wiki, page "Android - Android with FPCUPDeluxe/de", as it stood on 2020-08-24 after a change by Mathias, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
227+Category: Code Snippets
228+Category: Code Snippets/Multiplatform

Back to history