Sign in Join
Wiki copytemporary

Android tutorial/ru: what changed

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

OldNewLine
11*(Android only)*
22
33# Windows
44
55Это краткое руководство по созданию приложений для Android с помощью Lazarus.
66
77В этом уроке предполагается использование версий JDK 1.6u45 + SDK 22.2.1 + ndk-r9 + Laz4Android1.1-41139-FPC2.7.1
88
99## Подготовка папки
1010
1111Создайте на диске C:\\ папку под названием "Android"
1212
1313## Установка JDK
1414
15151.6u45 (я установил jdk-6u45-windows-x64.exe) arm-linux-androideabi/bin <http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html#jdk-6u45-oth-JPR>
1616
1717Он должен был установлен в C:\Program Files\Java\\.
1818
1919## Установка SDK
2020
2121- Заходим по адресу <https://developer.android.com/studio>
2222- Находим раздел "Command line tools only" --\> загружаем SDK Commandline Tools для:
2323 - [Windows](https://dl.google.com/android/repository/commandlinetools-win-6514223_latest.zip)
2424 - [Mac](https://dl.google.com/android/repository/commandlinetools-mac-6514223_latest.zip)
2525 - [Linux](https://dl.google.com/android/repository/commandlinetools-linux-6514223_latest.zip)
2626
2727- Устанавливаем sdk (installer_r22.2.1-windows) в папку C:\Android\android-sdk
2828- Копируем в папку "C:\Android\android-sdk\tools" файл "apkbuilder.bat" (может быть найден [здесь](https://github.com/ACSOP/android_sdk/raw/master/apkbuilder/etc/apkbuilder.bat))
2929- Теперь обновляем SDK \[WIN "Старт" --\> SDK Manager \]
3030- Добавляем android 4.0 (API 14)
3131- Добавляем android 2.2 (API 8\]
3232- Устанавливаем пакеты.
3333
3434## Установка NDK
3535
3636- Переходим для загрузки [последних стабильных х64 версий](https://developer.android.com/ndk/downloads) или [не поддерживаемых версий](https://developer.android.com/ndk/downloads/older_releases)
3737- Загружаем только файл android-ndk-r9-windows-x86.zip
3838- Распаковываем android-ndk-r9-windows-x86.zip в папку C:\Android\android-ndk-r9
3939
4040## Установка Laz4Android
4141
4242Загружаем его отсюда <https://skydrive.live.com/?cid=89ae6b50650182c6&id=89AE6B50650182C6!149>
4343
4444Новая версия может быть загружена отсюда:[1](http://sourceforge.net/projects/laz4android/)
4545
4646Распаковываем Laz4Android1.1-41139-FPC2.7.1.7z в C:\Android\laz4android
4747
4848Копируем:
4949
5050C:\Android\android-ndk-r9\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-*.exe
5151
5252в
5353
5454C:\Android\laz4android\fpc\2.7.1\bin\i386-win32\\*
5555
5656Редактируем файл C:\Android\laz4android\build.bat таким образом:
5757
5858```dos
5959SET FPC_BIN_PATH=C:\Android\laz4android
6060```
6161
6262Запускаем build.bat (doubleclick) -\> Он скомпилирует и пересоберет lazarus.
6363
6464## Rebuild Laz4Android IDE
6565
6666Run C:\Android\laz4android\lazarus.exe
6767
6868Select "Start IDE"
6969
7070select "Package" "Install/Uninstall Packages"
7171
7272select customdrawn 0.0 \> install selection and hit save and rebuild IDE , continue
7373
7474## Compile the demo "androidlcl"
7575
7676Copy C:\Android\laz4android\examples\androidlcl at C:\Android\Projects\androidlcl
7777
7878Run "C:\Android\laz4android\lazarus.exe"
7979
8080File \> open "C:\Android\Projects\androidlcl\androidlcltest.lpr"
8181
8282Project \> project options
8383
8484Compiler options \> select "Release TAndroid"
8585
8686Paths \>
8787
8888Libraries -Ll : C:\Android\android-ndk-r9\platforms\android-8\arch-arm\usr\lib;C:\Android\android-ndk-r9\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\lib\gcc\arm-linux-androideabi\4.6
8989
9090Target file name : android\libs\armeabi\liblclapp.so
9191
9292Code generation
9393
94-` Target OS -T android`\
95-` Target CPU -P arm`\
96-` Target processor default`
94+```
95+ Target OS -T android
96+ Target CPU -P arm
97+ Target processor default
98+```
9799
98100Linking :
99101
100-` Enable strip symbols (-Xs)`
102+```
103+ Enable strip symbols (-Xs)
104+```
101105
102106Other : -dANDROID -Xd -CpARMV6 -FLlibdl.so
103107
104108Ide macro values : macro name : LCLWidgetType macro value : customdrawn
105109
106110Now Run \> Compile this will generate this library : C:\Android\Projects\androidlcl\android\libs\armeabi\liblclapp.so \[5.073 kb\]
107111
108112## Deployment
109113
110114- Edit with a text editor
111115
112116C:\Android\Projects\androidlcl\android\generate_debug_key.bat
113117
114118Modify the first 6 lines like this :
115119
116120```dos
117121REM Adjust these paths to yours
118122SET PATH=C:\Android\android-sdk\tools;C:\Android\android-sdk\build-tools\17.0.0;C:\Android\android-sdk\platform-tools\;C:\Progra~1\Java\jdk1.6.0_45\bin
119123SET APP_NAME=lcltest
120124SET ANDROID_HOME=C:\Android\android-sdk
121125SET APK_SDK_PLATFORM=C:\Android\android-sdk\platforms\android-8
122126SET APK_PROJECT_PATH=C:\Android\Projects\androidlcl\android
123127```
124128
125129Run "generate_debug_key.bat"
126130
127131Use as password : "senhas"
128132
129133This will produce the file :
130134
131135C:\Android\Projects\androidlcl\android\bin\LCLDebugKey.keystore
132136
133137- Edit with a text editor
134138
135139C:\Android\Projects\androidlcl\android\build_debug_apk.bat
136140
137141Modify the first 6 lines like this :
138142
139143```dos
140144REM Adjust these paths to yours
141145SET PATH=C:\Android\android-sdk\tools;C:\Android\android-sdk\build-tools\17.0.0;C:\Android\android-sdk\platform-tools\;C:\Progra~1\Java\jdk1.6.0_45\bin
142146SET APP_NAME=lcltest
143147SET ANDROID_HOME=C:\Android\android-sdk
144148SET APK_SDK_PLATFORM=C:\Android\android-sdk\platforms\android-8
145149SET APK_PROJECT_PATH=C:\Android\Projects\androidlcl\android
146150```
147151
148152I had to change mine to this on sdk version 22:
149153
150154```dos
151155SET APK_BUILD_TOOLS=C:\development\android-sdk\build-tools\22.0.1
152156SET PATH=C:\development\android-sdk\tools;C:\development\android-sdk\platform-tools\;C:\Program Files\Java\jdk1.7.0_79\bin;%APK_BUILD_TOOLS%
153157SET APP_NAME=androidlcl
154158SET ANDROID_HOME=C:\development\android-sdk
155159SET APK_SDK_PLATFORM=C:\development\android-sdk\platforms\android-22
156160SET APK_PROJECT_PATH=C:\Android\Projects\androidlcl\android
157161
158162and these lines:
159163
160164REM Convert the java bytecode to dalvik bytecode
161165::REM For older SDKs: call dx --dex --verbose --output=%APK_PROJECT_PATH%\bin\classes.dex %APK_PROJECT_PATH%\bin\classes
162166::REM For older SDKs: call java -Djava.ext.dirs=%ANDROID_HOME%\platform-tools\lib\ -jar %ANDROID_HOME%\platform-tools\lib\dx.jar --dex --verbose --output=%APK_PROJECT_PATH%\bin\classes.dex %APK_PROJECT_PATH%\bin\classes
163167call java -Djava.ext.dirs=%ANDROID_HOME%\platform-tools\lib\;%APK_BUILD_TOOLS%\lib\ -jar %APK_BUILD_TOOLS%\lib\dx.jar --dex --verbose --output=%APK_PROJECT_PATH%\bin\classes.dex %APK_PROJECT_PATH%\bin\classes
164168```
165169
166170run "build_debug_apk.bat" answer at the questions and give the password "senhas" when asked
167171
168172This will generate
169173
170174C:\Android\Projects\androidlcl\android\bin\lcltest.apk \[1.549 kb\]
171175
172176- Create an Android Virtual Device
173177
174178START \> AVD Manager
175179
176180New \> AVD name \> give a name
177181
178182Device 5.1 WVGA
179183
180184Target Android 4 API 14
181185
182186Hit OK
183187
184188Once created select the virtual device and hit "start" \> "Launch" wait a couple of minutes.
185189
186190- Edit with a text editor
187191
188192C:\Android\Projects\androidlcl\android\adb_install.bat
189193
190194Modify like this :
191195
192196```dos
193197REM Adjust these paths to yours
194198SET PATH=C:\Android\android-sdk\tools;C:\Android\android-sdk\build-tools\17.0.0;C:\Android\android-sdk\platform-tools\;C:\Progra~1\Java\jdk1.6.0_45\bin
195199
196200adb uninstall com.pascal.lcltest
197201adb install bin\lcltest.apk
198202
199203pause
200204```
201205
202206Run "adb_install.bat" . This will install the "LCL Test" into your Virtual device
203207
204208- Debugging
205209
206210Edit with a text editor the file
207211
208212C:\Android\Projects\androidlcl\android\adb_install.bat
209213
210214like this :
211215
212216```dos
213217REM Adjust these paths to yours
214218SET PATH=C:\Android\android-sdk\tools;C:\Android\android-sdk\build-tools\17.0.0;C:\Android\android-sdk\platform-tools\;C:\Progra~1\Java\jdk1.6.0_45\bin
215219
216220adb logcat > std.txt
217221
218222pause
219223```
220224
221225By running this you will get a debug file here :
222226
223227C:\Android\Projects\androidlcl\android\std.txt
224228
225229Enjoy !
226230
227231## Links
228232
229233- \[<http://forum.lazarus.freepascal.org/index.php/topic,22414.msg141964.html>? Original forum topic\]
230234- [Lazarus and Android PDF tutorial with images](http://sourceforge.net/projects/laztoapk/files/Lazarus%20and%20Android.pdf/download)
231235
232236# Linux
233237
234238> **Note:** Work in progress...
235239
236240This is a quick tutorial on how to create android apps with Lazarus.
237241
238242In this tutorial assume used versions are Ubuntu 13.10, OpenJDK 1.7.0_51, SDK 22.2.1, ndk-r9, Laz4Android1.1-41139-FPC2.7.1
239243
240244## Prepare folder
241245
242246Create directory ~\Android
243247
244248## Install OpenJDK
245249
246250``` bash
247251sudo apt-get install openjdk-7-jdk
248252```
249253
250254## Install SDK
251255
252256Go to <http://developer.android.com/sdk/index.html>
253257
254258DOWNLOAD FOR OTHER PLATFORMS \> SDK Tools Only
255259
256260android-sdk_r22.6.2-linux.tgz (Recommended)
257261
258262Extract SDK () into ~\Android\android-sdk
259263
260264``` bash
261265tar -zxvf android-sdk_r22.6.2-linux.tgz
262266```
263267
264268Now update the SDK (Start ~\Android\android-sdk\tools\android)
265269
266270add android 4.0 (API 14)
267271
268272add android 2.2 (API 8\]
269273
270274Install packages.
271275
272276## Install NDK
273277
274278<http://developer.android.com/tools/sdk/ndk/index.html>
275279
276280Download only the file android-ndk-r9d-linux-x86.tar.bz2
277281
278282Extract android-ndk-r9d-linux-x86.tar.bz2 into ~\Android\android-ndk-r9
279283
280284``` bash
281285tar -jxvf android-ndk-r9d-linux-x86.tar.bz2
282286```
283287
284288## Build FPC 2.7.1
285289
286290Install latest FPC distribution package:
287291
288292``` bash
289293sudo apt-get install fpc
290294```
291295
292296Download latest FPC trunk from SVN:
293297
294298``` bash
295299svn co http://svn.freepascal.org/svn/fpc/trunk/ ~/Android/fpcsrc
296300```
297301
298302Build FPC trunk for ARM to ~/Android/fpc:
299303
300304``` bash
301305make crossinstall CPU_TARGET=arm OS_TARGET=linux \
302306CROSSBINDIR=~/Android/android-ndk-r9/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/arm-linux-androideabi/bin OPT=-dFPC_ARMEL INSTALL_PREFIX=~/Android/fpc
303307```
304308
305309## Rebuild Lazarus IDE
306310
307311Run ~\Android\lazarus
308312
309313Select "Start IDE"
310314
311315select "Package" "Install/Uninstall Packages"
312316
313317select customdrawn 0.0 \> install selection and hit save and rebuild IDE , continue
314318
315319## Links
316320
317321- [Android Programming with Lazarus through Custom Drawn Interface](http://pascalgeek.blogspot.cz/2013/10/android-programming-with-lazarus.html)
318322
319323---
320324*From the Free Pascal wiki, page "Android tutorial/ru", as it stood on 2020-06-26 after a change by Zoltanleo, 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).*

Back to history