Difference between revisions of "LAMW"

From Lazarus wiki
Jump to navigationJump to search
m (fix add lamw icon)
(Add LAMW github page link)
 
(15 intermediate revisions by 3 users not shown)
Line 3: Line 3:
 
{{Platform only|Android|Android|Android}}
 
{{Platform only|Android|Android|Android}}
  
[[file:lamw_git_small_circle.png]]
+
[[File:lamw_git_small_circle.png|link=https://github.com/jmpessoa/lazandroidmodulewizard|LAMW]]
  
 
'''LAMW''': Lazarus Android Module Wizard is a wizard to create JNI Android loadable module (.so) and Android Apk using Lazarus/Free Pascal.
 
'''LAMW''': Lazarus Android Module Wizard is a wizard to create JNI Android loadable module (.so) and Android Apk using Lazarus/Free Pascal.
Line 11: Line 11:
  
 
: Native Android GUI
 
: Native Android GUI
 +
::: AppCompat and Material Design supported!
  
 
: RAD! Form designer and drag&drop component development model!
 
: RAD! Form designer and drag&drop component development model!
 +
::: More than 140 components!
 +
: Github Page: https://github.com/jmpessoa/lazandroidmodulewizard
  
  
Line 23: Line 26:
 
: arm-android/aarch64-android/i386-android/x86_64-android/jvm-android
 
: arm-android/aarch64-android/i386-android/x86_64-android/jvm-android
  
{{Note|Install here: "C:\laz4android2.0.12"  (not "Program Files" !!!)}}
 
  
 
; How to
 
; How to
  
 
: Install * [http://sourceforge.net/projects/laz4android/files/?source=navbar Laz4Android 2.0.12]
 
: Install * [http://sourceforge.net/projects/laz4android/files/?source=navbar Laz4Android 2.0.12]
 +
 +
{{Note|Install here: "C:\laz4android2.0.12"  (not "Program Files" !!!)}}
  
 
: Install * [https://github.com/jmpessoa/lazandroidmodulewizard/archive/master.zip LAMW]
 
: Install * [https://github.com/jmpessoa/lazandroidmodulewizard/archive/master.zip LAMW]
Line 39: Line 43:
 
::: amw_ide_tools.lpk (in "..../ide_tools" folder)
 
::: amw_ide_tools.lpk (in "..../ide_tools" folder)
  
; Go to '''Infrastructure'''.
+
; Go to [[#Infrastructure|Infrastructure]].
 
 
  
 
===LAMW Manager (Linux and Windows)===
 
===LAMW Manager (Linux and Windows)===
  
{{Note|All in One! LAMW Manage produces a complete Lazarus for Android environment by automating the step '''Infrastructure'''!}}
+
{{Note|All in One! LAMW Manage produces a complete Lazarus for Android environment by automating the step [[#Infrastructure|Infrastructure]]!}}
  
 
: Install * [https://github.com/dosza/LAMWManager-linux LAMW Manager Installer for Linux]
 
: Install * [https://github.com/dosza/LAMWManager-linux LAMW Manager Installer for Linux]
 
: Install * [https://github.com/dosza/LAMWManager-win LAMW Manager Installer for Windows]
 
: Install * [https://github.com/dosza/LAMWManager-win LAMW Manager Installer for Windows]
  
 +
===Install LAMW using fpcupdeluxe (Linux and Windows)===
  
 
+
:: [https://wiki.freepascal.org/LAMW_install_linux_fpcupdeluxe How to install on Linux (FPCUPdeluxe + LAMW)]
===Fpcupdeluxe (Linux and Windows and ...)===
+
:: [https://wiki.freepascal.org/LAMW_install_windows_fpcupdeluxe How to install on Windows (FPCUPdeluxe + LAMW)]
 
 
:: [https://github.com/jmpessoa/lazandroidmodulewizard/tree/master/docs/linux/tutorial_by_waynesherman How to: Linux + Fpcupdeluxe + LAMW]
 
 
 
  
 
===Do It Yourself! (Windows)===
 
===Do It Yourself! (Windows)===
  
 
: Install * [https://sourceforge.net/projects/lazarus/files/Lazarus%20Windows%2064%20bits/Lazarus%202.0.12/lazarus-2.0.12-fpc-3.2.0-win64.exe/download Lazarus 2.0.12]
 
: Install * [https://sourceforge.net/projects/lazarus/files/Lazarus%20Windows%2064%20bits/Lazarus%202.0.12/lazarus-2.0.12-fpc-3.2.0-win64.exe/download Lazarus 2.0.12]
 +
 +
{{Note|Install here: "C:\lazarus2.0.12"  (not "Program Files" !!!)}}
  
 
: Install * [https://github.com/jmpessoa/lazandroidmodulewizard/archive/master.zip LAMW]
 
: Install * [https://github.com/jmpessoa/lazandroidmodulewizard/archive/master.zip LAMW]
  
{{Note|Download LAMW and unzip it in some folder (ex. "C:\laz4android2.0.12\components")}}
+
{{Note|Download LAMW and unzip it in some folder (ex. "C:\lazarus2.0.12\components")}}
  
 
:: Packages installations order/sequence:
 
:: Packages installations order/sequence:
Line 72: Line 75:
 
: Install * [https://gitlab.com/freepascal.org/fpc/source/-/archive/main/source-main.zip FPC source code (trunk)]
 
: Install * [https://gitlab.com/freepascal.org/fpc/source/-/archive/main/source-main.zip FPC source code (trunk)]
  
:: Unzip it in some folder and point up the source path in next step
+
:: Download FPC source code and unzip it in some folder and point up the source path in next step
  
  
Line 79: Line 82:
 
{{Note|repeat the "Build and install" process  once for each architecture}}
 
{{Note|repeat the "Build and install" process  once for each architecture}}
  
::: (x) Armv7a + Soft (android 32 bits << tested!
+
::: (x) Armv7a + Soft (android 32 bits << tested!)
  
 
:::: Build
 
:::: Build
Line 85: Line 88:
 
:::: Install
 
:::: Install
  
::: (x) Aarch64 (android 64 bits << tested!
+
::: (x) Aarch64 (android 64 bits << tested!)
  
 
:::: Build
 
:::: Build
Line 91: Line 94:
 
:::: Install
 
:::: Install
  
{{Note|After "build" and "install" the cross-compilers and after to do  all '''Infrastructure''' go to '''Using LAMW''' and try to create your first [New] LAMW project!}}
+
{{Note|After "build" and "install" the cross-compilers and after to do  all [[#Infrastructure|Infrastructure]] go to [[#Using LAMW|Using LAMW]] and try to create your first [New] LAMW project!}}
  
 
:If you get an error "Fatal: Cannot find unit system used by fcllaz of package FCL" when trying "Run"  >> "Build"  your project then go to "fpc.cfg"  (ex. "C:\lazarus2.0.12\fpc\3.2.0\bin") and:
 
:If you get an error "Fatal: Cannot find unit system used by fcllaz of package FCL" when trying "Run"  >> "Build"  your project then go to "fpc.cfg"  (ex. "C:\lazarus2.0.12\fpc\3.2.0\bin") and:
Line 203: Line 206:
 
: From displayed dialog select "[LAMW] GUI Android Module" and "Ok"
 
: From displayed dialog select "[LAMW] GUI Android Module" and "Ok"
  
: Fill the form/dialog fields and "Ok" and "Save"
+
: Fill the form/dialog fields and "Ok"
  
 
{{Note|Path to Workspace" is your projects folder}}
 
{{Note|Path to Workspace" is your projects folder}}
  
 
{{Note|Accept "default" options! (but pay attention to the * signage)}}
 
{{Note|Accept "default" options! (but pay attention to the * signage)}}
 +
 +
: "Save"  unit1 as/where suggested
 +
 +
{{Note|Search your project folder... you will find many treasures there! (look for lazarus project in ".../jni" folder)}}
 
    
 
    
 
: From Lazarus IDE select "Run" >> "Build"
 
: From Lazarus IDE select "Run" >> "Build"
Line 214: Line 221:
  
  
: Configure you phone device to debug mode and plug it to the computer usb port
+
: Configure your phone device to [https://developer.android.com/studio/debug/dev-options debug mode] and plug it to the computer usb port
  
  
Line 221: Line 228:
 
:: '''Congratulations!''' You are now an Android Developer!
 
:: '''Congratulations!''' You are now an Android Developer!
  
 
+
==Other references==
==Others References==
 
  
 
[https://github.com/jmpessoa/lazandroidmodulewizard/blob/master/docs/AppHelloWorld.md Tutorial: My First "Hello Word" App]
 
[https://github.com/jmpessoa/lazandroidmodulewizard/blob/master/docs/AppHelloWorld.md Tutorial: My First "Hello Word" App]

Latest revision as of 01:29, 23 May 2023

English (en) polski (pl) русский (ru)

Android robot.svg

This article applies to Android only.

See also: Multiplatform Programming Guide

LAMW

LAMW: Lazarus Android Module Wizard is a wizard to create JNI Android loadable module (.so) and Android Apk using Lazarus/Free Pascal.


Features:

Native Android GUI
AppCompat and Material Design supported!
RAD! Form designer and drag&drop component development model!
More than 140 components!
Github Page: https://github.com/jmpessoa/lazandroidmodulewizard


Get Lazarus for Android

Laz4Android 2.0.12 (Windows)

All cross-android compilers already installed!
arm-android/aarch64-android/i386-android/x86_64-android/jvm-android


How to
Install * Laz4Android 2.0.12
Light bulb  Note: Install here: "C:\laz4android2.0.12" (not "Program Files" !!!)
Install * LAMW
Light bulb  Note: Download LAMW and unzip it in some folder (ex. "C:\laz4android2.0.12\components")
Packages installations order/sequence:
tfpandroidbridge_pack.lpk (in "..../android_bridges" folder)
lazandroidwizardpack.lpk (in ""..../android_wizard" folder)
amw_ide_tools.lpk (in "..../ide_tools" folder)
Go to Infrastructure.

LAMW Manager (Linux and Windows)

Light bulb  Note: All in One! LAMW Manage produces a complete Lazarus for Android environment by automating the step Infrastructure!
Install * LAMW Manager Installer for Linux
Install * LAMW Manager Installer for Windows

Install LAMW using fpcupdeluxe (Linux and Windows)

How to install on Linux (FPCUPdeluxe + LAMW)
How to install on Windows (FPCUPdeluxe + LAMW)

Do It Yourself! (Windows)

Install * Lazarus 2.0.12
Light bulb  Note: Install here: "C:\lazarus2.0.12" (not "Program Files" !!!)
Install * LAMW
Light bulb  Note: Download LAMW and unzip it in some folder (ex. "C:\lazarus2.0.12\components")
Packages installations order/sequence:
tfpandroidbridge_pack.lpk (in "..../android_bridges" folder)
lazandroidwizardpack.lpk (in ""..../android_wizard" folder)
amw_ide_tools.lpk (in "..../ide_tools" folder)
Install * FPC source code (trunk)
Download FPC source code and unzip it in some folder and point up the source path in next step


Go to Lazarus menu "Tools" >> "[LAMW] Android Module Wizard" >> "Build FPC Cross Android"
Light bulb  Note: repeat the "Build and install" process once for each architecture
(x) Armv7a + Soft (android 32 bits << tested!)
Build
Install
(x) Aarch64 (android 64 bits << tested!)
Build
Install
Light bulb  Note: After "build" and "install" the cross-compilers and after to do all Infrastructure go to Using LAMW and try to create your first [New] LAMW project!
If you get an error "Fatal: Cannot find unit system used by fcllaz of package FCL" when trying "Run" >> "Build" your project then go to "fpc.cfg" (ex. "C:\lazarus2.0.12\fpc\3.2.0\bin") and:
change:
#searchpath for units and other system dependent things
-FuC:\lazarus2.0.12\fpc\$FPCVERSION/units/$fpctarget
-FuC:\lazarus2.0.12\fpc\$FPCVERSION/units/$fpctarget/*
-FuC:\lazarus2.0.12\fpc\$FPCVERSION/units/$fpctarget/rtl
to:
#searchpath for units and other system dependent things
-FuC:\lazarus2.0.12\fpc\3.2.0/units/$fpctarget
-FuC:\lazarus2.0.12\fpc\3.2.0/units/$fpctarget/*
-FuC:\lazarus2.0.12\fpc\3.2.0/units/$fpctarget/rtl


And go to Lazarus IDE menu "Tools" >> "Options" >> "Environment" >> [FPC Source]
change:
$(LazarusDir)fpc\$(FPCVer)\source
to:
$(LazarusDir)fpc\3.2.0\source


Infrastructure

Light bulb  Note: Only for non-users of LAMW Manager!

Get Java JDK

Install * Java JDK 8

Get Android NDK

Install * r19c

Get Ant builder

Install * Ant
Simply extract the zip file to a convenient location...

Get Gradle builder

Install * Gradle 6.6.1
Light bulb  Note: Use the option "extract here" to produce the folder "gradle-6.6.1" in a convenient location...

Get Android SDK

Install * r25.2.5-windows
Install * r25.2.5-linux
Install * r25.2.5-macosx
How to
unpacked/install to a "sdk" folder
open a command line terminal and go to folder "sdk/tools"
run the command >> "android update sdk" to open a GUI "SDK Manager"
Go to [Tools] and keep "as is"
Android SDK Tools (installed)
(x) Android SDK Platform-Tools
(x) Android SDK Build-Tools 29.0.3 (and others more recent)
Go to [Android R] and uncheck all!
Go to [Android 10 API 29] uncheck all and check only
(x)SDK Platform
Go to [Extras] and check:
(x)Android Support Repository
(x)Google USB Drive (Windows only...)
(x)Google Repository
(x)Google Play Services
[Install 7 package!]


Using LAMW

Configure Paths

Lazarus IDE menu "Tools" >> "[LAMW] Android Module Wizard" >> "Paths Settings ..."
Light bulb  Note: MacOs: path to Java JDK auto setting!

Create and Run your first Android Apk

How to
From Lazarus IDE select "Project" >> "New Project"
From displayed dialog select "[LAMW] GUI Android Module" and "Ok"
Fill the form/dialog fields and "Ok"
Light bulb  Note: Path to Workspace" is your projects folder
Light bulb  Note: Accept "default" options! (but pay attention to the * signage)
"Save" unit1 as/where suggested
Light bulb  Note: Search your project folder... you will find many treasures there! (look for lazarus project in ".../jni" folder)
From Lazarus IDE select "Run" >> "Build"
Success! Your system is up to produce your first Android Apk!


Configure your phone device to debug mode and plug it to the computer usb port


From Lazarus IDE select "Run" >> "[LAMW] Build Apk and Run"
Congratulations! You are now an Android Developer!

Other references

Tutorial: My First "Hello Word" App