Android tutorial

From Free Pascal wiki
Revision as of 23:33, 4 April 2014 by Chronos (talk | contribs)
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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

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

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

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\laz4android

Run build.bat (doubleclick) -> It will compile & bulid 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 default

Linking :

 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\android

Run "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\android

run "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

pause

Run "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

pause

By running this you will get a debug file here :

C:\Android\Projects\androidlcl\android\std.txt

Enjoy !

Links

Linux

Light bulb  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-jdk

Install 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.tgz


Now 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.bz2

Build FPC 2.7.1

Install latest FPC distribution package:

sudo apt-get install fpc

Download latest FPC trunk from SVN:

svn co http://svn.freepascal.org/svn/fpc/trunk/ ~/Android/fpcsrc

Build 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/fpc


Rebuild 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