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.
Talk about this page
Nobody has opened a bench for this page yet. Sign in to open one.
