Android tutorial
(Android only)
Windows
This is a quick tutorial on how to create android apps with Lazarus.
In this tutorial assume used versions JDK 1.6u45 + SDK 22.2.1 + ndk-r9 + Laz4Android1.1-41139-FPC2.7.1
Prepare folder
Create on C:\ a folder called "Android"
Install JDK
1.6u45 (i have installed 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
It will be installed in to C:\Program Files\Java\.
Install SDK
For Laz4Android3.2 install Android Studio.
Go to http://developer.android.com/sdk/index.html
DOWNLOAD FOR OTHER PLATFORMS > SDK Tools Only
installer_r22.2.1-windows.exe (Recommended)
Install sdk (installer_r22.2.1-windows) into C:\Android\android-sdk
Copy at "C:\Android\android-sdk\tools" the file "apkbuilder.bat" (can be found here
https://github.com/ACSOP/android_sdk/raw/master/apkbuilder/etc/apkbuilder.bat )
Now update the SDK [WIN START > SDK Manager ]
add android 4.0 (API 14)
add android 2.2 (API 8]
Install packages.
Install NDK
For Laz4Android3.2 NDK is in Android Studio with cmake.
http://developer.android.com/tools/sdk/ndk/index.html
Download only the file android-ndk-r9-windows-x86.zip
Unzip android-ndk-r9-windows-x86.zip into C:\Android\android-ndk-r9
Install Laz4Android
Download it from https://skydrive.live.com/?cid=89ae6b50650182c6&id=89AE6B50650182C6!149
New version can download from here:1
Unzip Laz4Android1.1-41139-FPC2.7.1.7z into C:\Android\laz4android
Copy
C:\Android\android-ndk-r9\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-*.exe
to
C:\Android\laz4android\fpc\2.7.1\bin\i386-win32\*
Edit the file C:\Android\laz4android\build.bat like this :
SET FPC_BIN_PATH=C:\Android\laz4androidRun build.bat (doubleclick) -> It will compile & build lazarus.
Rebuild Laz4Android IDE
Run C:\Android\laz4android\lazarus.exe
Select "Start IDE"
select "Package" "Install/Uninstall Packages"
select customdrawn 0.0 > install selection and hit save and rebuild IDE , continue
Compile the demo "androidlcl"
Copy C:\Android\laz4android\examples\androidlcl at C:\Android\Projects\androidlcl
Run "C:\Android\laz4android\lazarus.exe"
File > open "C:\Android\Projects\androidlcl\androidlcltest.lpr"
Project > project options
Compiler options > select "Release TAndroid"
Paths >
Libraries -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
Target file name : android\libs\armeabi\liblclapp.so
Code generation
Target OS -T android
Target CPU -P arm
Target processor defaultLinking :
Enable strip symbols (-Xs)Other : -dANDROID -Xd -CpARMV6 -FLlibdl.so
Ide macro values : macro name : LCLWidgetType macro value : customdrawn
Now Run > Compile this will generate this library : C:\Android\Projects\androidlcl\android\libs\armeabi\liblclapp.so [5.073 kb]
Deployment
- Edit with a text editor
C:\Android\Projects\androidlcl\android\generate_debug_key.bat
Modify the first 6 lines like this :
REM Adjust these paths to yours
SET 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
SET APP_NAME=lcltest
SET ANDROID_HOME=C:\Android\android-sdk
SET APK_SDK_PLATFORM=C:\Android\android-sdk\platforms\android-8
SET APK_PROJECT_PATH=C:\Android\Projects\androidlcl\androidRun "generate_debug_key.bat"
Use as password : "senhas"
This will produce the file :
C:\Android\Projects\androidlcl\android\bin\LCLDebugKey.keystore
- Edit with a text editor
C:\Android\Projects\androidlcl\android\build_debug_apk.bat
Modify the first 6 lines like this :
REM Adjust these paths to yours
SET 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
SET APP_NAME=lcltest
SET ANDROID_HOME=C:\Android\android-sdk
SET APK_SDK_PLATFORM=C:\Android\android-sdk\platforms\android-8
SET APK_PROJECT_PATH=C:\Android\Projects\androidlcl\androidI had to change mine to this on sdk version 22:
SET APK_BUILD_TOOLS=C:\development\android-sdk\build-tools\22.0.1
SET PATH=C:\development\android-sdk\tools;C:\development\android-sdk\platform-tools\;C:\Program Files\Java\jdk1.7.0_79\bin;%APK_BUILD_TOOLS%
SET APP_NAME=androidlcl
SET ANDROID_HOME=C:\development\android-sdk
SET APK_SDK_PLATFORM=C:\development\android-sdk\platforms\android-22
SET APK_PROJECT_PATH=C:\Android\Projects\androidlcl\android
and these lines:
REM Convert the java bytecode to dalvik bytecode
::REM For older SDKs: call dx --dex --verbose --output=%APK_PROJECT_PATH%\bin\classes.dex %APK_PROJECT_PATH%\bin\classes
::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
call 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\classesrun "build_debug_apk.bat" answer at the questions and give the password "senhas" when asked
This will generate
C:\Android\Projects\androidlcl\android\bin\lcltest.apk [1.549 kb]
- Create an Android Virtual Device
START > AVD Manager
New > AVD name > give a name
Device 5.1 WVGA
Target Android 4 API 14
Hit OK
Once created select the virtual device and hit "start" > "Launch" wait a couple of minutes.
- Edit with a text editor
C:\Android\Projects\androidlcl\android\adb_install.bat
Modify like this :
REM Adjust these paths to yours
SET 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
adb uninstall com.pascal.lcltest
adb install bin\lcltest.apk
pauseRun "adb_install.bat" . This will install the "LCL Test" into your Virtual device
- Debugging
Edit with a text editor the file
C:\Android\Projects\androidlcl\android\adb_install.bat
like this :
REM Adjust these paths to yours
SET 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
adb logcat > std.txt
pauseBy running this you will get a debug file here :
C:\Android\Projects\androidlcl\android\std.txt
Enjoy !
Links
- [http://forum.lazarus.freepascal.org/index.php/topic,22414.msg141964.html? Original forum topic]
- Lazarus and Android PDF tutorial with images
Linux
Note: Work in progress...
This is a quick tutorial on how to create android apps with Lazarus.
In 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
Prepare folder
Create directory ~\Android
Install OpenJDK
sudo apt-get install openjdk-7-jdkInstall SDK
Go to http://developer.android.com/sdk/index.html
DOWNLOAD FOR OTHER PLATFORMS > SDK Tools Only
android-sdk_r22.6.2-linux.tgz (Recommended)
Extract SDK () into ~\Android\android-sdk
tar -zxvf android-sdk_r22.6.2-linux.tgzNow update the SDK (Start ~\Android\android-sdk\tools\android)
add android 4.0 (API 14)
add android 2.2 (API 8]
Install packages.
Install NDK
http://developer.android.com/tools/sdk/ndk/index.html
Download only the file android-ndk-r9d-linux-x86.tar.bz2
Extract android-ndk-r9d-linux-x86.tar.bz2 into ~\Android\android-ndk-r9
tar -jxvf android-ndk-r9d-linux-x86.tar.bz2Build FPC 2.7.1
Install latest FPC distribution package:
sudo apt-get install fpcDownload latest FPC trunk from SVN:
svn co http://svn.freepascal.org/svn/fpc/trunk/ ~/Android/fpcsrcBuild FPC trunk for ARM to ~/Android/fpc:
make crossinstall CPU_TARGET=arm OS_TARGET=linux \
CROSSBINDIR=~/Android/android-ndk-r9/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/arm-linux-androideabi/bin OPT=-dFPC_ARMEL INSTALL_PREFIX=~/Android/fpcRebuild Lazarus IDE
Run ~\Android\lazarus
Select "Start IDE"
select "Package" "Install/Uninstall Packages"
select customdrawn 0.0 > install selection and hit save and rebuild IDE , continue
Links
From the Free Pascal wiki, page "Android tutorial", as it stood on 2024-05-21 after a change by Matthius, 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.