Android tutorial/es

From Free Pascal wiki
Jump to navigationJump to search

Windows

Este es un tutorial rápido sobre como crear aplicaciones para Android con Lazarus.

Para este tutorial se asumen los siguientes programas que deben tener las versiones que se muestran a continuación:

JDK 1.6u45 SDK 22.2.1 NDK-r9 Laz4Android1.1-41139-FPC2.7.1

Adicionalmente ver:

http://wiki.lazarus.freepascal.org/Custom_Drawn_Interface/Android#Step_3_-_Create_the_Android_project_structure

http://wiki.lazarus.freepascal.org/Custom_Drawn_Interface/Android#Step_4_-_Creating_the_APK_package_in_Windows

Preparando una carpeta

Crear en C:\ una carpeta llamada "Android"

Instalar JDK (Java Development Kit)

1.6u45 (yo he instalado 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

Esto se debe instalar en C:\Program Files\Java\. o bien C:\Archivos de Programa\Java\. (Supongo que la instalación en español será así y no influirá a la hora de que lo encuentre laztoapk).

Instalando SDK

Ir a http://developer.android.com/sdk/index.html

DOWNLOAD FOR OTHER PLATFORMS > SDK Tools Only

installer_r22.2.1-windows.exe (Recommendado)

Instalar sdk (installer_r22.2.1-windows) en C:\Android\android-sdk

Copiar a "C:\Android\android-sdk\tools" el fichero "apkbuilder.bat" (lo podemos encontrar aquí:

https://github.com/ACSOP/android_sdk/raw/master/apkbuilder/etc/apkbuilder.bat )

Ahora actualizamos el SDK [WIN START > SDK Manager ]

añadimosandroid 4.0 (API 14)

añadimos android 2.2 (API 8]

Instalamos los paquetes.

Instalando NDK

http://developer.android.com/tools/sdk/ndk/index.html

Descargar únicamente el fichero android-ndk-r9-windows-x86.zip

Descomprimir android-ndk-r9-windows-x86.zip dentro de C:\Android\android-ndk-r9

Instalando Laz4Android

Descargarlo desde https://skydrive.live.com/?cid=89ae6b50650182c6&id=89AE6B50650182C6!149

(A fecha Marzo 2015 se puede descargar de http://sourceforge.net/projects/laz4android/?source=directory donde se encuentra en la versión laz4android1.5-47987-FPC3.1.1.exe). He traducido el tutorial a pesar de todo pero que sepais que ya ha trancurrido bastante tiempo desde que se escribió.

Descomprimir Laz4Android1.1-41139-FPC2.7.1.7z dentro de C:\Android\laz4android

Copiar

C:\Android\android-ndk-r9\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-*.exe

a

C:\Android\laz4android\fpc\2.7.1\bin\i386-win32\*

Editar el fichero C:\Android\laz4android\build.bat like this :

SET FPC_BIN_PATH=C:\Android\laz4android

Ejecutar build.bat (doble click) -> Esto compilará y reconstruirá Lazarus.

Reconstruir el IDE de Laz4Android

Ejecutar C:\Android\laz4android\lazarus.exe

Seleccionar "Arrancar IDE"

Seleccionar "Paquete" "Instalar/Desinstalar Paquetes"

Seleccionar customdrawn 0.0 > Instalar selección y pulsar salvar para reconstruir el IDE, continuar.

Compilando la demo "androidlcl"

Copia C:\Android\laz4android\examples\androidlcl en C:\Android\Projects\androidlcl

Ejecuta "C:\Android\laz4android\lazarus.exe"

Archivo > Abrir "C:\Android\Projects\androidlcl\androidlcltest.lpr"

Proyecto > Opciones del Proyecto > Opciones del Compilador > Seleccionar "Release TAndroid"

Rutas >

Libraries -Fl : 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

 SO Deseado (-T) -> Android
 Familia CPU deseada (-P) -> arm
 Procesador deseado (-Cp) -> (predeterminada)

Enlazado:

 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

Ejecutar "generate_debug_key.bat"

Utilizar como contraseña: "senhas"

Esto generará el fichero:

C:\Android\Projects\androidlcl\android\bin\LCLDebugKey.keystore


  • Editar con un editor de texto:

C:\Android\Projects\androidlcl\android\build_debug_apk.bat

Modificar las primeras 6 líneas para que se parezca a esto:

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


Tengo que cambiar el mio a esto en la versión 22 de SDK:

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


Y estas líneas:

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


Ejecutar "build_debug_apk.bat" respondiendo a las preguntas y entrar la contraseña "senhas" cuando se solicite

Esto generará:

C:\Android\Projects\androidlcl\android\bin\lcltest.apk [1.549 kb]


  • Crear un Dispositivo Android Virtual:

START > AVD Manager

New > AVD name > give a name

Device 5.1 WVGA

Target Android 4 API 14

Pulsar OK

Una vez creado seleccionar el dispositivo virtual creado y pulsar "start" > "Launch" y esperar unos pocos minutos.


  • Editar con un editor de texto:

C:\Android\Projects\androidlcl\android\adb_install.bat

Modificar tal como figura a continuación:

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

Ejecutar "adb_install.bat" . Esto instalará el "LCL Test" dentro de tu Dispositivo Virtual.


  • Depurando

Edita con un editor de ficheros el siguiente fichero de proceso por lotes (.bat):

C:\Android\Projects\androidlcl\android\adb_install.bat

como esto:

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

Al ejecutar esto obtendremos como salida un fichero de depurado:

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

¡ A disfrutarlo ! :)

Links

Preparar carpeta

Crear el directorio ~\Android

Instalar OpenJDK

sudo apt-get install openjdk-7-jdk

Instalar SDK (Software Development Kit)

Ir a http://developer.android.com/sdk/index.html

DESCARGAS PARA OTRA PLATAFORMA > SDK Tools Only

android-sdk_r22.6.2-linux.tgz (Recomendado)

Extraer SDK () dentro de ~\Android\android-sdk

tar -zxvf android-sdk_r22.6.2-linux.tgz


Ahora actualizar el SDK (Start ~\Android\android-sdk\tools\android)

añadir android 4.0 (API 14)

añadir android 2.2 (API 8]

Instalar los paquetes.

Instalar NDK (Native Development Kit)

http://developer.android.com/tools/sdk/ndk/index.html

Descargar únicamente el fichero android-ndk-r9d-linux-x86.tar.bz2

Extraer android-ndk-r9d-linux-x86.tar.bz2 dentro de ~\Android\android-ndk-r9

tar -jxvf android-ndk-r9d-linux-x86.tar.bz2

Construir FPC 2.7.1

Instalar el último paquete de distribución FPC disponible:

sudo apt-get install fpc

Descargar el FPC trunk más actual desde el SVN:

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

Construir el trunk de para ARM hacia ~/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

Reconstruir el IDE de Lazarus

Ejecutar ~\Android\lazarus

Selecciona "Start IDE"

Selecciona "Paquete" "Instalar/Desinstalar Paquetes"

Selecciona customdrawn 0.0 > Instalar la selección y pulsar salvar y reconstruir IDE , continuar

Enlaces